среда, 13 марта 2013 г.

Курс Advanced Python. Взгляд со стороны слушателя.

Итак, я часто использую питон.  Много применяю и на windows и на ubuntu, и, одно время на MacOS. Я согласен с тем, что питон несовершенен. По большому счету, когда говорят что он просто плохой, медленный, неоптимизированный, и т.п. - это в определенной степени правда. 
Но я его люблю, потому что он очень человечный, удобный, и не смотря на явные слабые места - очень мощный и эффективный, широко применяемый в продакшне. И еще больше люблю Python комьюнити и энтузиастов. Для меня так же важно то, что он стандартный почти для всех юниксов. 
Поэтому пытаюсь вникать в его устройство и правильно применять. Я много изучал Python самостоятельно, достиг результата. Могу эффективно использовать сильные стороны, и обойти слабые. Но нет предла совершенству и Поэтому я решил пройти курс Advanced Python от Андрея Светлова. И прошел его. Этот пост - краткий отчет о прошедшем курсе.
Так же всем, кто интересуется тематикой Python, очень рекомендую блог Андрея


Курс проходил впервые, и, обошлось конечно, не без подводных камней. Но учитывая открытость Андрея к диалогу и то, что он прислушивался к пожеланиям аудитории, я бы сказал, что всё прошло вполне замечательно. Да, еще пару слов об авторе. Андрей Светлов разработчик с отличным опытом и просто хороший человек, некоторое время назад стал Python Core Developer и с тех пор принисмает активное участие в развитии языка и всячески способствует популяризации Python.



Первое, что я хотел бы отметить, это то, что мы довольно сильно отклонились от первоначального плана занятий. Однако, в последствии, все таки пожалуй наверстали незаслуженно пропущенные моменты. Думаю, в повторном заходе, автор курса сможет уже лучше понять логистику курса, и вероятнее всего, план будет соблюден точнее. Вот моя mind map, которую я нарисовал в конце курса, из нее можно понять, каие темы мы затрагивали (конечно это просто ассоциативная карта, а вовсе не конспект, который я вел отдельно)




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

Я уже умел программировать на Python и до начала курса, и спользовал его в разных целях и в продакшне и для экперементирования. Что же мне этот курс дал? Вот мое саммари на эту тему:

  • Понимание многих проблем питона и как с этим быть
  • Правильное отношение к многопоточности и GIL
  • Много интересных и полезных знаний о том, как делать хороший асинхронный код на питоне
  • Танцы с бубном вокруг юникода, и почему Армин считает юникод сломанным в Pyhton 3.X
  • Взаимодействие с юникс подсистемой, включая сигналы, сокеты, файлы и нэйтивные вызовы с CTypes.
  • Кое-что новое из Python 3.X в духе yield from...
  • Усовершенствовал свой уровень сокетного программирования как на Python так и на С. В 2008-м году я писал сокетное приложение на питоне и столкнулся с некоторыми нюансами, на которые ответы, пожалуй, нашел только сейчас.
  • Улучшил свой кругозор в отношении библиотек, и распрастраненного в мире набора инструментов
  • Познакомился с замечательными ребятами из Python community
  • Получил некоторые представления о процессе разработки самого питона, как говориться, с кем поведешься, так тебе и надо...
  • Упорядочил знания о написании native extensions используя C, C++, Cython и CTypes и что делать с GIL из нэйтивного кода
  • Попробовал профиллировать код на питоне
  • Получил Больше знаний об  интраспекции и понимание устройства питона
  • Более четко осознал свои слабые места в знании Python и программрования в общем.
Немного позже выложу тут описание того, чего бы мне хотелось еще получить от этого курса, но в этот раз не получил. Однако сначала нужно это правильно сформулировать, на текущий момент не готов высказать мысли.

Учитывая, что я параллельно много работаю над собой в плане углубления понимания алгоритмов, структур данных,  машинного обучения, некоторых разделов исскуственного интеллекта, одновременно с курсом я использовал в качестве справочников и чтива несколько книг, которые рекомендую всем, кто имеет дело с Python и интересуется какми-то из затронутых в книках тематиками.

Вот они:


Python Algorithms: Mastering Basic Algorithms in the Python Language (Expert's Voice in Open Source)
Data Structures and Algorithms Using Python 
Python for Data Analisys 
Natural Language Processing with Python
Python Essential Reference (4th Edition) и The Python Standard Library by Example



P. S. Огромное спасибо Андрею, и вообще ребятам, занимающимся тематикой. Это и приятно и очень полезно. А так же спасибо всем, с кем рука об руку я прошел этот курс. Мне очень приятно было познакомиться с вами. Вот наша группа, вернее те, чьи контакты у меня есть (надеюсь никого не обижу упоминанием):

  • Виталий Пономар
  • Oleksandr Korobov
  • Ludmila Lukashevskaya
  • Тарас Ляпун
  • Dmitriy Tarasiuk
  • Denis Rutkovsky
  • Aleksey Golikov
  • Volodymyr Hotsyk
  • Olexandr Shalakhin
  • Aleksandr Zavatskiy
  • Тарас Буник
  • Taras Marchuk
  • Олег Барановский
  • Василь Діжак
  • Vasyl Nakvasiuk
  • Андрей Светлов

- думаю, что для рекрутеров эти люди могли бы оказаться находкой )



Комментариев нет:

Отправить комментарий