5 ноября 2012 г.

[CLOSED] Книги для всех! Ликвидация товара :-)


BREAKING NEWS!

Не прошло и двадцати минут, как все книжки нашли нового хозяина! Весь фонд ушел в компанию "Сайтодром".



В рамках борьбы за свободное место на моих книжных полках, акция - книги для всех! Взамен прошу либо очень мало, либо вовсе ничего. Хочешь книгу - спеши оставить комментарий с номером книги из списка! Все суммы могут подвергаться безжалостному торгу :-)

Список книг внутри поста. Большинство книг - технические либо менеджерские, однако в конце списка есть несколько представителей худлита.


22 октября 2012 г.

Learning in progress

Я долго пропадал на просторах интернетов. Дело в том, что в последние несколько месяцев я плотно "подсел" на занимательную штуку под названием MOOC. И время было потрачено не зря, черт возьми! Что есть MOOC? Massive open online course. Это случилось аккурат после окончания самого первого моего курса - по разработке и анализу алгоритмов. Я был надолго потерян для такой бесцельной траты свободного времени, как написание новых заметок в этот блог и даже записался в community Teaching Assistant на одном из курсов :-) Однако, пришло время подвести промежуточные итоги и немного рассказать о пройденных мной курсах.

В хронологическом порядке.

1. Design of Computer Programs, Programming Principles
Курс на Udacity

Вообще, данный курс предназначен скорее для новичков в мире программирования, для тех, кто лишь недавно закончил что-нибудь вроде Computer Science 101. Т.е. уже не является совсем чайником, но в то же время все еще далек от профессиональной разработки ПО. Зачем я на него записался? Ладно, признаюсь: я чайник хотел попробовать Python, пускай и в лабораторных условиях. Это причина номер раз. Была еще одна - курс вел Peter Norvig, крутейший дядька IT индустрии, протыкавший перфокарты, когда многие из нас еще были на стадии спецификаций и абстрактных юзер стори своих родителей.

Минимум теории, максимум кодирования. То, что надо. Свое место нашлось как объяснению базовых принципов построения приложений для новичков, так и рассмотрению языковых конструкций языка Python для таких как я. Лекций, как таковых, не было. Их заменяют последовательности коротких видеороликов, посвященных одному или нескольким аспектам разработки или язка, за каждым из которых следует небольшое задание, как правило с привлечением кодирования. Надо заметить, что такой подход не характерен для курсов на других опробоваванных мной платформах. Честно говоря, до сих пор не могу определиться какой из подходов мне нравится больше: классический с лекциями и практикой или новый с фактическим их переплетением воедино. Кстати, это не значит, что домашних заданий не было. Они были и представляли собой реализацию простых программ, как правило игр типа "камень-ножницы-бумага", "покер" и прочее.


27 апреля 2012 г.

Design and Analysis of Algorithms I: результаты

На этой неделе закончилась первая часть онлайн курса Design and Analysis of Algorithms университета Стэнфорда, доступная через платформу Coursera. В среду я нашел время для финального экзамена (потратил два из трех возможных часов, все же попытка только одна), сдал на 29,5 из 30 (ботан!), оставил фидбэк организаторам и теперь готов рассказать как это было :)

А было на удивление хорошо. Это был мой первый опыт онлайн обучения на какие-то серьезные темы, требующие большего включения и работы головой, чем ставшие уже привычкой просмотры разнообразных докладов конференций и небольших онлайн тренингов. Поэтому были некоторые опасения насчет финального результата - вдруг все это будет просто тратой времени? Скажу сразу - не оправдались.

Итак, весь курс занял 5 недель плюс еще одна, в течении которой можно было сдать финальный экзамен. Ведущий курса - преподаватель Стэнфорда Tim Roughgarden. Учебный процесс достаточно простой:

  • каждую неделю появляется порция видеолекций общей продолжительностью в среднем два часа (их можно скачать либо смотреть онлайн), некоторые видео - опциональные, т.е. в заданиях не будет по ним вопросов
  • лекции могут содержать в себе простые вопросы для студентов, для поддержания интерактивности - ответы на них ни на что не влияют, но помогают погрузиться в тему
  • домашнее задание делится на две части: теоретическую и практическую
  • теоретическая часть - набор из 5 вопросов по материалам лекций, оценивался в максимум 8 баллов, представлен в виде теста с вариантами ответов (возможно несколько правильных), вопросы были как чисто теоретические так и требующие некоторых вычислений на бумажке, две попытки
  • практическая часть - оцениваемый в 6 баллов programming assignment, который можно выполнить с помощью любой технологии; скачиваем файл с входными данными и обратно представляем ответ в требуемом формате, пять попыток
  • по домашнему заданию были дедлайны - две недели со времени публикации задания или к концу курса, но лишь за половину возможных баллов
  • результирующая оценка курса = 40% теоретических задач + 30% практических + 30% финальный экзамен = максимум 100 баллов; если набрал больше 70 - получаешь сертификат об успешном окончании курса (я набрал 92,5 :-Р)
Далее, о содержании курса и несколько примеров из теоретических домашних заданий - прекрасная возможность проверить не заржавели ли знания у вас в голове :). Оставляйте ответы в комментах, правильные появятся через несколько дней. Практические задания можно посмотреть на гитхабе: https://github.com/ddudnik/algo-class-assignments. В начале каждого файла решения есть полное описание задачи, а в папке resources можно найти все входные данные. Код приведен на Ruby, для первых двух недель есть и на Javа для самопроверки. Я решил не терять замечательной возможности не только изучить материал курса, но и заодно немного изучить Ruby :-)

Итак, чему удалось научиться?

22 марта 2012 г.

IT Spring 2012: впечатления и немного статистики

На прошедших выходных в Минске состоялась конференция для айтишников IT Spring 2012, какбэ намекая, что весна уже здесь и от нее никому не спрятаться. Так как основные скандалы и интриги конференции уже были раскрыты, а очерки давным давно написаны, то я ограничусь лишь однострочными впечатлениями, чтобы вам не пришлось еще раз долго перечитывать уже сказанное другими людьми, да еще и в моем исполнении.

  • Начало конференции повергло меня в уныние и начало вселять ужас тотальным исчезновением заявленных докладчиков...
  • ...однако очень скоро это исправилось, пришлось даже немного загрузить мозг интересным выступлением Дмитрия Безуглого о системном мышлении
  • Очень рад встрече со старыми и новыми знакомыми (всем привет!)
  • Александр Калугин собрал аншлаг и породил жэстачайшые споры в твиттере, а теперь и на dev.by (признаюсь, сам тоже негодовал из-за некоторых тезисов, но разговоры в кулуарах помогли разобраться)
  • Башня с зефиром - это вам не это (с) +1 Кириллу Голубу за доклад и интерактив с публикой
  • Отличный вечер в Раковском броваре!
  • Утро второго дня. Сергей Бережной зарядил всех энергией вместо кофе из-за постоянной нехватки последнего
  • Захватывающий троллинг, всепоглощающее желание сбегать за попкорном, квинтэссенция тех самых "скандалов и интриг" конференции - доклад Дениса Петелина о том, как же все плохо с образованием белорусских айтишников, попытка ответить на вопрос "Что же все таки с этим делать?" с одной стороны и большие сомнения в истинности заявленной проблемы с другой. Что до меня, то я, скорее, склоняюсь к первым, но, в то же время, с предложенными методами лечения не особо согласен: качественный скачок должен случиться не столько в области образования, сколько в изменении самой компании Епам, которая явно бьется головой о потолок белорусского рынка аутсорсинга.
  • ... прошу прощения за неоднострочность предыдущего пункта :-)
  • Работа в больших компаниях/корпорациях мне не подходит, доклад об интервью (в целом очень позитивный) помог окончательно это осознать. Главное, чтобы стрела не попала мне в колено :-)
  • Последнее: незабываемое впечатление от гвоздя программы: четырехмерного куба собственной персоной!

Но, как говорится, это еще не все. Звоните Читайте дальше прямо сейчас, и вы получите небольшую порцию статистики активности в твиттере участников конференции по тэгу #itspring! Зачем? Слишком много благоприятных факторов собралось в одной точке: активность в твиттере действительно была в отличие от прошлогоднего SEF.by, последнее время я увлеченно колупаю Ruby с целью изучения, а также у меня выдался свободный вечер :-)


15 марта 2012 г.

В ожидании весны

Календарная весна с нами уже две недели, однако впереди ждет еще одна - специально для нас, айтишников.

17-18 марта в Минске состоится конференция IT Spring 2012, собравшая под своими знаменами весьма впечатляющую армию докладчиков - настоящих экспертов в своих областях. Аудитория тоже ожидается нешуточная, по сообщениям организаторов билеты закончились еще в начале марта, а большая их часть была выкуплена еще раньше. Один из этих билетов попал и в мои руки, несмотря на долгие раздумья. Не смог я «пройти мимо» заявленной программы конференции, которая, надо признать, выглядит гораздно интереснее, нежели оная с прошлогоднего SEF.by. Итак, кого будем смотреть и слушать?

  • «Особенности управления продуктовой ИТ-компанией» Юрия Гурского или Асхата Уразбаева о премудростях Lean под названием Value Stream Mapping (заодно, узнаем что это за зверь :-)
  • «Ключевые архетипы системного мышления и анализ ситуаций в продуктовой и проектной деятельности с их применением» Дмитрия Безуглого (название доклада, конечно, немаленькое и не сразу понятное, но Дмитрия обычно интересно послушать)
  • Какой-то из докладов Александра Кольцова, Юрия Шиляева или Виктории Придатко. Пока не знаю, какой все-таки выбрать. Если первые два, скорее всего, будут любопытно прослушать, то доклад «HR - лицо компании. Какое лицо, такие и кандидаты» Виктории запросто может привести к маленькому локальному холивару :-)
  • «Коммуникация с заказчиков в нелетную погоду» Александра Калугина и, скорее всего, следующий за ним «Учимся на ошибках. Подробно о ретроспективе в Agile» Николая Фролова.
  • «Введение в эмоциональный интеллект для айтишников» Михаила Завилейского
  • Воскресную часть конференции начнем выступлением Сергея Бережного «Инженерный подход в общении с заказчиком»
  • ... а продолжим однозначно «Большим квадратом работы с людьми» от Александра Орлова и Вячеслава Панкратова
  • закончим конференцию докладами «Блеск и нищета регламентов» Григория Печенкина и «Модель CAPI - от предпринимательства к профессиональному менеджменту» Ирины Бинецкой (старик Адизес форевер!)

Дальше, конечно же, афтерпати и поезд домой в Гродно с хорошим настроением :-) Конечно же, все происходящее (до поезда) будет траслироваться в twitter, так что посматривайте за хэш-тэгом #itspring

P.S. Обнаружил пропажу Сергея Архипенкова из ряда докладчиков, а так хотелось его послушать. Очень жаль, что не получится.

13 марта 2012 г.

Сдвиг парадигмы

Весна, леди и джентльмены! Время проснуться, сбросить «тяжелые» зимние одежды, расчехлить велосипед и ... размять пальцы, вдоволь постучав по клавиатуре. Последним и займемся. Тем более, что молчание, мягко говоря, затянулось.

Чем же себя оправдать? Надо придумать что-то эдакое, от чего все угрызения совести пропадут вместе с растаявшим снегом. И чтобы выглядело по-умному. С чего же начать? Куча работы по очень важному проекту? Хм, тебя раскусят за несколько наносекунд. Работы, конечно, достаточно, но не сверх нормы. Все же мы контролируем работу, а не она нас. Праздники? Ну было парочку, в твиттер они ведь не мешали писать. Зима, холодно, пришлось носить варежки, а в них ой как неудобно набирать текст двумя большими пальцами? Что же, с кем-нибудь может и прокатит, но не с айтишной аудиторией.

Однако, спасательный круг все-таки есть. Два слова: сдвиг парадигмы. По-моему, звучит просто отлично. Никто и не подумает, что ты просто лентяй, желающий скрыть этот малоприятный факт :-)

20 июля 2011 г.

Анализируй это!

В разработке ПО часто и много приходится анализировать самые разнообразные вещи. Программист анализирует кусок кода на предмет его совместимости с другим куском, архитектор анализирует только что придуманную им архитектуру модуля на предмет покрытия всех выставленных требований. Менеджер проекта анализирует планы работы или риски, которые могут-таки материализоваться и придется как-то выходить из создавшейся ситуации. И, конечно же, аналитик проводит анализ требований и старается составить всеобъемлющую спецификацию, к которой комар носа не подточит.

Все это очень хорошо, все при деле. Однако, на мой взгляд, есть одно большое НО. Зачастую мы забываем проанализировать конкретные потребности пользователя. Заметьте, не требования, которые он сам нам выставил, а именно его потребности, как человека, который каждый день будет использовать ваше приложение. Какая разница? Она есть. Требование к приложению (особенно функциональное) может звучать так (утрированно): «У нас тут есть вот такие документы и продукты, надо бы их между собой связать, да еще и с возможностью удобного поиска и сортировки». В это же время, потребностью пользователя может быть нечто другое: «Хочу пораньше уйти домой, поэтому мне надо просто выбрать кучу документов с одной стороны, кучу продуктов с другой, нажать красную кнопку и завтра утром получить отчеты в нужной мне и удобной для анализа форме». Или, например, что-нибудь такое: «Во всех документах есть свои нюансы. Было бы очень круто, если бы программа подсвечивала мне только те из них, которые мне нужны в данный момент». Другими словами, придумать можно много чего. Особенно если организация большая и пользователей много.

Чтобы зарубить на корню возражения и проклятия в мой адрес, скажу: да, я знаю про существование специальных людей, специалистов по взаимодействию пользователя с приложением, специалистов по юзабилити и построению интерфейсов пользователя. Они все замечательные и очень нужные люди. Однако на данный момент специфика нашей работы (по крайней мере в наших региональных белорусских широтах) такова, что подобных специалистов на проекте чаще всего просто нет. Причин тому может быть много, очень разных, но большинство их них сосредоточено в плоскости (не)понимания существующей проблемы. Начиная от непонимания начальством полезности таких специалистов (зачем тратить еще кучу денег на их содержание?) до банальной нехватки бюджета ввиду, например, жадности или излишней осторожности заказчика.

7 июля 2011 г.

Книга месяца: «Исповедь оратора», Скотт Беркун

Проснувшись сегодня утром, я максимально строго сказал себе «Хватит лентяйничать! Пора бы написать о новой книге месяца! И вообще...». По крайней мере, так это выглядело в моей голове. На деле же получилось что-то вроде «Бла-бла-бла... И вообще...» :-) Однако кружка утреннего чая все же сыграла свою немаловажную роль. Так что, встречайте. Книга второго летнего месяца - «Исповедь оратора» Скотта Беркуна.

На самом деле, не только кружка чая с печеньками послужили катализатором к написанию этого обзора. Главным «ускорителем» стала сама книга. Более того, я ее еще даже не дочитал! Но рассказать о ней хочется уже сейчас.

Скотт Беркун - отличный автор книг и статей, настоящий профессионал в IT-индустрии. По крайней мере, я всегда представлял его именно таким. Даже не подозревая, что он силен и активен во многих других сферах жизни. Оказалось, что и за пределами нашего небольшого мира существует много интересного :-) (например, сам автор книги часто выступает на совсем неайтишных конференциях и когда-то проводил экскурсии по улицам Нью-Йорка) Данная книга - подтверждение этому.

Итак, о чем же она?

28 июня 2011 г.

О чем нужно обязательно подумать, развивая сотрудников

Стоило уехать увлеченно крутить педали, как тут же в сети появились видеозаписи нескольких достаточно интересных докладов. Один из них я даже успел посмотреть :-) Михаил Заборов рассказывает о не чуждой мне теме развития сотрудников. Дело это не всегда однозначное и однозначно нелегкое :-) Нужно думать о многих вещах и очень легко ошибиться. Поэтому рекомендую к просмотру данный доклад, пускай он поможет избежать уже известных граблей.



О чем нужно обязательно подумать, развивая персонал from Stas Fomin on Vimeo.