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 года назад, точно так же на пару недель занырнул в обработку естественно языка, тоже на питоне, подходы, кстати местами перекликаются. В Машинном Обучении тоже рассматривались методы обработки текста.

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