2016-08-11

Риддл. Трилогия Тайна Происхождения

Совершенно случайно увидел рекомендацию на Амазоне и 3,000,000 копий очень заинтриговало. В итоге не ошибся. Восхитительная трилогия (Ген Атлантиды, Чума Атлантиды, Зов Атлантиды) от А. Дж. Риддла. Это как фанфик по современной популярной фантастике, без хардкора, без претензий на космооперу, здесь вы вспомните про Звездные врата и Прометея, про Mass Effect, про еще дюжину названий книг, фильмов, игр. Давно я не читал такого концентрированного экшена: три книги проглотил за два дня. Таинственные артефакты павшей цивилизации, таинственные службы, суперагент который выживал в невозможных ситуациях, путешествия во времени, путешествия в космосе, генная инженерия, чума, выкасившая пол человечества и не поддающаяся никакому сдерживанию, терраформирование таинственные пришельцы которые воюют с еще более танственными другими пришельцами, а посреди космической войны попали наш предки. Все это вертится вокруг реальных событий, но им дается зловещая интерпретация в лучших традициях теорий заговора. В книгах есть решительно всё, количество роялей в кустах поражает и от этого еще более захватывающе. Повторюсь это не Hard SciFi, поэтому много вещей может показаться неостаточно достоверными, но все это пожертвовано ради насыщенного непрерывного действи, все три книги описывают считанные дни.

2016-08-09

Руководство по Java 8 от Шилдта


Продолжаю листать учебники по Java. В отличии от цикла Head First, Шилдт написал классическое серьезное руководство. Шилдта выгодно отличает от всех остальных книг то, что он освещает возможности, добавленные в Java 8. В частности, лямбды, а это – на минуточку, game-changer, меняющий очень многое в языке, стандартной библиотеке и вообще в подходе к решению типовых задач на низком уровне.

Книга написана для тех, кто уже знаком с программированием вообще и ООП в частности. Руководство для начинающих почти полностью входит в полное руководство, за исключеним задач. Поэтому, если вы торопитесь, берите 700-страничное руководство для начинающих, если под рукой нужен обстоятельный справочник, то берите полное, 1500-страничное.

Последний раз, когда щупал джаву, мы сидели на 6-й и только только начинали смотреть на 7-ю. Поэтому обновил для себя возможности 8-й. Хотя и вижно было что книга постоянно дописывалась, и на восьмую было уделено не так много места.

2016-07-31

Программист – прагматик

Очень странная книга. Обо всем и ни о чем. Ощущение, что технические вещи, попытались пересказать чрезмерно упрощенным языком для людей далеких от профессии. С одной стороны все советы дельные, с другой – язык которым они донесены очень странный, плюс на это наложился перевод, который был сделан явно до появления устоявшейся терминологии. Зачастую приходилось угадывать о чем идет речь.

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

Декларируется, что книга для начинающих, я бы сказал для тех, кто уже имеет несколько лет опыта в профессии и пощупал реальные вещи.

Хотя это и не полный отстой вида "Как пасти котов", но читать эту книгу сейчас сродни статье Go to statement considered harmful Дейкстры – индустрия согласилась и пошла дальше. По конкретным техническим вопросам лучше почитать специализированные книги: Dependency Injection и The Art of Unit Testing.

2016-07-13

Изучаем SQL

Продолжаю тему рекомендаций, на этот раз SQL. Опять же, намеренно язык я не изучал. Знакомство с базами данных начал с Access, и еще в школе внезапно понял нормальные формы. В старших классах купил тоненький учебник "SQL в примерах и задачах" Астаховой. Сам учебник очень смутно помню, но судя по отзывам это переработанный и адаптированный старый добрый учебник "Понимание SQL" Грабера.

Я намеренно не стал смотреть талмуд Дейта. Помимо Грабера для изучения рекомендуют учебник Бьюли. С него я и решил начать. Язык изучается на примере безнадежно устаревшей MySQL 4. Справедливости ради даются отсылки к Oracle и MSSQL, но почему-то совершенно обделен вниманием PostgreSQL. Рассмотрены все необходимые конструкции SQL92. Огорчило, что очень мало внимания уделено консистентности данных.

В книге не хватает информации про:
1. ACID
2. нормальные формы и денормализацию данных
3. транзакции и уровни изоляции
4. движок базы данных и оптимизатор
5. структуры данных которые используются для хранения данных/индексов
6. оконные функции из SQL:2003.

Итог, минимально необходимая информация есть, но явно недостаточная для полноценной работы с современными базами данных. Придется читать другие книги.

P.S. если вы читали какую-то книгу по базам-данных/SQL не сильно привязанную к какой-то конкретной базе данных (я знаю про Кейта), а если по новым версиям SQL то вообще круто. Если эта книга показалась вам очень хорошей, оставьте комментарий.

2016-07-11

Цикл Head First по Java


Столкнулся с проблемой порекомендовать книгу по Java. Изучал я, как сейчас помню, на ИНТУИТе. В самом начале карьеры я блуждал в потемках: на огромное количество вопросов приходилось искать ответы, зачастую, методом тыка. Сейчас с позиции опыта решил почитать доступные книги. Решил посмотреть на цикл Head-First Something. Я думал что это тоненькие брошюрки, а оказались здоровенные талмуды по 600 страниц каждый. Не смотря на несерьезный стиль изложения, освещены очень много важных вопросов, ответы на которые сэкономили бы мне очень много времени, если бы я прочитал эти в самом начале. Все три книги можно рассматривать как единый цикл, все ссылаются другна друга и все примеры приведены для Java. Книги являются учебниками, а не справочниками, с отличными примерами и заданиями. Однозначный must-read для новичков.

2016-06-11

За фасадом империи

Отличная книга, очень многие факты после прочтения предстали для меня в совершенно новом свете. Сами факты не перевернули мою картину мира, а встраивались как кусочки мозаики в большую картину. А картина про то, что модель управления, которая за тысячелетие сложилась у нас словами Никонова имманентно антиинновационна и обречена догонять. Коллективизм, как одно из проявлений этой модели работает как механизм отрицательного отбора. Такое общество обречено на вечное отставание, поскольку порывы и открытия совершают талантливые и гениальные одиночки, а не серая, но обширная масса. А талантливый одиночка всегда индивидуалист. У него сложный характер. Он не любит подчиняться тупым требованиям. Он уникален. И потому в коллективистском обществе подлежит закатыванию в асфальт.

2016-05-11

Введение в Машинное Обучение

Друг очень рекомендовал курс "Введение в Машинное Обучение" от Школы Анализа Данных Яндекса, и, поскольку моя работа напрямую связана с анализом данных, мне стало очень интересно пройти этот курс.

Это мой первый серьезный курс, который я, в отличие от предыдущих попыток, не дропнул после первой же недели из-за невозможно унылых лекторов и запредельного матана. На удивление Воронцов и Соколов отличные лекторы, сами лекции вполне доступны, даже не смотря на математическую нотацию при объяснении методов.

В описании курса было заявлено 3-4 часа в неделю, на протяжении 7 недель. По факту это выливалось в потерянные субботы на протяжении двух месяцев. Очень серьезная инвестиции собственного времени. Больше всего времени уходило, на решение домашних заданий. Особенно, когда возникали какие-то проблемы с питоном (уровня перепутал знак функции или невнимательно переписал формулу). Очень не хватало опыта работы с инструментами (ipython, jupyter), с библиотеками (pandas, numpy, scikit-learn). Непосредственно работа с данными была простая как дверь: загружаем данные, вызываем библиотечный метод, делаем прогноз. Тем более, что описание было представлено в лабораторной.

Была даже лабораторная, которая просто взорвала мозг описанием того, как собственноручно реализовать один из алгоритмов. После получаса бесплодных попыток осмыслить алгоритм, я сдался и начал его реализовывать в лоб, буквально как написано. Каково было мое удивление, когда задание было принято с первой попытки.

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

Итог: если вы работаете с данными и пытаетесь строить прогнозы, но, при этом, не знакомы с машинным обучением, то этот курс просто обязателен к изучению. Для промышленного применения придется подтянуть матчасть, но с возможностями и подходами вы будете знакомы. 

2016-01-17

Общаться с ребеноком. Как?

На кодефесте 2014 Бобук выступил с интересным докладом "Ненасильственное управление творческими коллективами". Один из тезисов: "Программисты - это дети", поэтому настольной книгой любого руководителя в Яндексе является сабжевая книга Гиппенрейтер. Книга выдержала пол дюжины изданий и стала классикой. Очень интересна и читается на одном дыхании.

Десять уроков:
1. Безусловное принятие
2. Когда можно помогать
3. Как помогать
4. Мотивация
5. Активное слушание
6. 12 ошибочных ответов: приказы, угрозы, нравоучения, готовые решения, доказательства, критика, похвала, высмеивание, догадки, выспрашивание, уговоры, отшучивание
7. Как говорить о своих чувствах
8. Как решать конфликты (win-win)
9. Правила и дисциплина (4 зоны: зеленая, желтая, оранжевая и красная)
10. Про истинные прицины негативных эмоций

Отдельные вещи мне встречались не раз во многих книгах: Кови, Талант переоценен, Как нельзя хвалить детей, Поток. В этой книге все эти идеи собраны и простые ситуации разобраны на пальцах. Не смотря на название, книга может быть полезна не только в общении с детьми. После прочтения, я сильно задумался о своём общении со студентами. Поищу в книжном магазине и подарю одной семье. Книга абсолютно стоит несколькольких часов, которые вы потратите на чтение.

2016-01-10

Java Puzzlers

По диагонали проглядел книгу в которой рассматриваются "особые случаи". Книга написана для Java 5 и издана до того как я вообще познакомился с джавой. 95 загадок, может дюжину-другую я разгадал потому что сталкивался на практике. Все советы относятся к двум категориям: читайте доки/спеки и не надо умничать. Отдельный совет используйте стандартное форматирование - это позволит избежать нескольких выносящих мозг ситуаций.

Я бы не советовал тратить на книгу время, максимум краем глаза. Посмотрите лучше это эпичнейшее видео ruby-wat (нужно некоторое время на загрузку). Или вот groovy версия. Смотреть живое видео гораздо веселее чем читать.