Pull to refresh

Изучение Python с нуля (моя история)

Здравствуйте, хотел поделиться своей истории о моем изучении Python с уровня “знаю пару тегов HTML”, до простого приложения на Django за 4 месяца.

  • Цель 1 — помочь ссылками, материалами, тем, кто соберется изучать программирование и первым языком возьмет Python. Показать, что это не так сложно, как кажется.
  • Цель 2 — собрать в комментариях ссылки на полезные и интересные материалы по этой теме.


0. А получится ли у меня?


С самого начала я сомневался в том, что у меня получится сделать что-то большее чем Hello World. Мне казалось, что программирование это сверх сложно и сверх магия. К тому же есть работа, хобби, семья, что будет отвлекаться от полноценного изучения.

Зря боялся и вам не советую. Программирование наверное никогда не станет моей основной профессией, но это отличный способ творческой реализации. Это шахматы и Civilization в одном флаконе.

Все проще чем кажется и гораздо интереснее.

1. Литература


Марк Лутц “Программирование на Python” — его советуют читать на многих форумах и курсах. Мне он показался излишне подробным и нагруженным для новичка. Читать много, программировать мало. Гораздо полезнее его читать после овладевания Python минимума.

Марк Саммерфилд “Программирование на Python 3” — динамично, с отличными примерами и заданиями. Без излишнего углубления, которое только все усложняет в начале. Я рекомендую начать именно с этой книги, она поможет быстро вникнуть, не пугая сложностями.

Все остальные книги оказались мене полезными и информативными. Вообще, хорошую литературу по этой теме трудно просто так взять и купить в магазине или в цифровой версии.

2. Что читать в интернете


http://pythonworld.ru/ — простым и понятным языком рассказывается об азах языка, часто использовал, как шпаргалку.

Учебник на wikisource — неплохой мини учебник. Единственное, неудобный шрифт для чтения.

3. Курсы обучения за деньги


Так сложилось, что мне удалось одновременно проходить курсы по программированию на Python сразу в двух местах в г. Москва. Тут нашелся явный победитель. Рекомендую почитать Марка Саммерфилда перед тем, как идти на курсы. Это поможет вам не отвлекаться на простые и понятные вещи, которые вы в состоянии изучить сами.

Школа Программирования — обучение проходило в формате двух часового вебинара два раза в неделю, вечером во вторник и днем в субботу. Обучение без отвлечения на ненужные темы, даются главные основы плюс несколько примеров вариации, отлично подготовленные, интересные и интерактивные домашние задания, в конце каждой лекции высылается весь учебный материал и видео лекции. Длиться все 4 недели. За это время поэтапно рассказывается обо всех основных вещах, примеры работы основных и самых популярных библиотек, в том числе и начальные знания Django. Отличный курс для старта обучения, с этими знаниями уже можно самостоятельно разбираться и учиться.

Пример домашнего задания на третьей неделе обучения, пример присланной лекции — здесь.


Учебный Центр «Специалист» при МГТУ им. Н.Э.Баумана — звучало очень сильно, обещали многое. Занятия проходили по воскресеньям с 10 до 17. Если кратко — пожалел, что заплатил деньги. Обучение не системное, много воды и ненужной информации. Говоря откровенно, я большему научился самостоятельно из униги за месяц до курсов. Больше половину аудитории — студенты начальных курсов хороших Московских ВУЗов, помогал им разбираться, многие так и не осили в конце да же азов. Тексты лекции из Школы Программирования расходились, как пирожки. А главное то, что в Школе Программирования мы прошли за один курс то, что здесь разбирается на протяжении 3 (каждый по месяцу) и за каждый платить надо отдельно. Выложить какие-то материалы не могу, потому что их не присылали и не радовали.

Если интересно, вот тут (документ GoogleDocs) мой подробный отчет и сравнение обоих центров.

4. Бесплатные курсы


Из всех бесплатных курсов, которые я смог найти, единственное, что мне показалось стоящик, было — codecademy.com. Как минус — нужно минимально владеть английским языком (хотя может это и плюс). В курсе реально с самого начала и азов дойти до решения простых задач. Все обучения разбито на множество кратких интерактивных уроков.

5. Где брать задачи?


  • Проект Эйлера — сборник интересных задач. Здесь можно развить умение оставлять правильные алгоритмы. Для некоторых задач мой первый алгоритм работал 3-4 часа, но после вдумчивого изучения — 2-3 минуты. После того, как решить задачу, можно посмотреть, как решили ее другие люди (в том числе и на других языках программирования). Задачи на английском языке, но существует сайт с переводом задач.
  • http://www.checkio.org/ — игра, в которой нужно проходит уровни, а в качестве прохождения решать задачи на Python. Удобная среда программирования встроенная прямо в игру. Интересные задания. Нужно обладать хотя бы минимальными знаниями англйиского языка.
  • http://www.pythonchallenge.com/ — интересный квест, здесь нужно будет не только составлять алгоритмы, но и подумать над тем, как пройти квест дальше. Самый интересный преокт в плане прохождения из этих трех.


6. Что в итоге?


Я действительно удивлен тем, что это оказалось и проще и интереснее, чем я думал в начале.

Через месяц, я смогу написать первое приложение (нет, не Django) которое проверяет работоспособность моих сайтов, наличие чужих ссылок и оповещает меня об этом в Твиттере и по СМС. И да, я знаю, что там “говнокод”. Но это первая моя программа вообще в жизни + обучению пользованию git https://github.com/idoziru/site_cheker

Еще через два месяца я смог создать свое первое приложение на Django. Но главное, что теперь у меня достаточно знания для самостоятельного развития и обучения. Самое трудное — это добраться до этой точки.

Еще через месяц я подключился к двум проектам на GitHub и принимаю в них участие. Задачи решаю конечно пока простые, но взамен получаю советы и обучение.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.