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-02-29

Зимний ПВД

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


Ходили мы на опушку за Лесной Поляной через ручей. Глубину снега вы можете легко оценить, хотя он был натоптанный и, если не сходить с тропы, не провалишься. Погода была довольно теплая, безветренная, градусов 5-10 ниже нуля. Пока одна группа валила сухостой и рубила дрова на ночь, другая группа ставила палатки и готовила мясо. К вечеру собрались вокруг костра и отведали блюдо.
Часть народа отправилась по-домам, а мы разбились по палаткам. Когда я постелил спальник с ковриком, осознал всесь масштаб проблемы: не смотря на то, что в палатке постоянно топилась печка и сверху было жарко, лежали мы на снегу и коврик мой не справлялся. Из положения я вышел тем, что разделся, свернул куртку и штаны и положил между ковриком и спальником в те места, которыми я продавливал коврик: бедра и лопатки. В общем, худо-бедно переночевал.
Утром пошел большими хлопьями снег. Мы попили чай и отправились по-домам. Было интересно, особенно послушать про оборудование для походов.

P.S. Долго искал защиту на ботинки от снега, безуспешно пытаясь объяснить в магазинах что мне надо – оказалось, это называется гамаши от снега. Испытания прошли более чем успешно, в походе, если у вас обычные ботинки, просто незаменимы. В штанах на лямках и гамашах прекрасно ходил по-колено в снегу.  Если пойду еще раз в зимний поход, то обязательно возьму коврик потолще.