Мой путь от нуля до адекватного Junior Python Developer

Всем привет! С новым 2020 годом и вот это все… Новогодние каникулы хороши тем, что есть легальная индульгенция на то, что можно делать то что нравится вопреки приоритетам, разрешить себе забыть про работу и заняться чем-то интересным.

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

Почему Python?

Первый вопрос почему же он? Мы, в New.HR и GeekJob.ru видим свой опыт и тренд: количество питонистов растет, количество PHP разработчиков, переходящих в Go и Python так же растет. Я вспоминаю конец 90х, когда был моден Perl, а PHP был новомодным языком, который был хайповым и модным для “юнцов”. К 2005–2007 году это был уже чуть ли не стандарт де факто языков для веб разработки. Писать на нем было не то чтобы гордо, но точно не стыдно и было очень бодрое активное сообщество. Perl был стабилен, но вновь прибывшие учили PHP, а Perl разработчики постепенно уходили кто на пенсию, кто в другие языки (тот же PHP, кстати).

И вот на дворе 2020 год. Perl сдох, на PHP написано очень много ресурсов, но постепенно части этих ресурсов переписываются на Go и/или Python. Рунет (и не только) пестрит курсами и видеоуроками по Python. Этот язык сейчас пихают везде, как и JS, от микроконтроллеров до гиковых игрушек и конструкторов.

Молодые специалисты, входящие в IT, учат Python. Они же при этом даже никогда не писав на пхп, сразу же его обкакивают, говоря что он плохой и очень гордятся тем, что знают питон. Эти мысли они вкладывают своим поклонникам, кто смотрит их блоги и весь этот круговорт только усиливает позиции питона. Более того, питон преподают в учебных заведениях, а это еще один сильный буст в копилку пиара этого языка.

У меня за плечами уже 19 лет разработки и я вижу как маховик снова проворачивается. Это , конечно, мое имхо и мои прогнозы, но если так будет происходить и дальше, то недалек тот день, когда PHP специалисты так же уйдут на пенсию/переучатся, а новые кадры все будут в Python и/или Go. И мне, как СТО, нужно прогнозировать рынок труда и кадры и заранее понимать стоимость найма. А найм тем дороже, чем меньше разработчиков на конкретный стек. И пока еще с PHP рынком все еще ок, тем не менее тренд виден — PHP идет на спад.

В подтверждение статистика с PyPL, но можно так же заглянуть на тиоби и другие рейтинги:

И вот еще

Тренд очевиден. Еще сильнейшая популярность у языка из за его распространенности в научной среде, отчего так много математических и ML библиотек именно на нем.

В общем почему именно Python — я вроде бы ответил. Сейчас у меня основные языки PHP (он мне реально нравится, особенно версия 7.4 и я считаю его идеальным для веб разработки) и JavaScript(Node.js). На ноде у меня написано несколько сервисов, но по прошествии полугода я постепенно перевожу логику из ноды в PHP, на это есть свои причины, но речь сейчас не об этом.

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

Как учить

Мое мнение что Python сегодня — это следующая альтернатива PHP. И те, кто проходит курсы Django, не имея опыта разработки ничем не отличаются от WordPress разработчиков. Мое имхо, если с нуля сразу вводить в фреймворк Django — на выходе получается не очень качественный специалист, которого еще нужно доучивать. Но, я не спорю, что этот человек уже сможет что-то делать руками.

Я попробовал пройти первым делом курс Django и понял что это путь к говнокоду, так как много “магии” и непонятностей, которые будет обходиться из за незнания всех нюансов костылями и велосипедами.

Поэтому я решил начать с изучения Flask, как более “голый”, и далее написать свой фреймворк (в качестве учебного проекта) похожий на Flask, чтобы понять всю магию. Мне очень важно чтобы я умел пользоваться языком без фреймворков. Это мое имхо и моя идеология. Если я не смогу на голом/ванильном языке написать веб сервис — меня это пугает. Но, повторюсь, это мой вей.

Что касается синтаксиса и каких-то особенностей языка. Я прошел бесплатный курс от Mail.ru, который концентрированно дает много полезных вещей:

Погружение в Python
Offered by Moscow Institute of Physics and Technology. Python – простой, гибкий и невероятно популярный язык, который используется практически во всех областях современной разработки. С его помощью можно создавать веб-приложения, писать игры, заниматься анализом данных, автоматизировать задачи систе…

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

Так же я , первым делом, почитал что есть по теме WTF Python. Такие вот трюки с языками мне лично интересны (я люблю фокусы) и это позволяет узнать о языке то, что не опишут ни в одном учебнике и не расскажут на курсах.

Что почитать по теме WTF Python:

satwikkansal/wtfpython
What the f*ck Python? Contribute to satwikkansal/wtfpython development by creating an account on GitHub.
Что за чёрт, Python
Недавно мы писали о забавных, хитрых и странных примерах на JavaScript. Теперь пришла очередь Python. У Python, высокоуровневого и интерпретируемого языка, мног...
Fun Python#8: Невероятный пайтон
WTF Python? Задачки с собеседованийЧасто ругают JavaScript за непонятную магию, не менее чаще ругают PHP, но вотPython сейчас переживает пик популярности и его все любят несмотря ни на что.Расскажу свой небольшой опыт, что у меня вызвало удивление в виде вопросов ссобеседования. Округления x =…

Свой самописный фреймворк

И так, пройдя курсы я сразу же решил написать свой аналог который называется MyFlask. Детали реализации и код в следующей статье…

Как написать свой web-framework на Python
Пишем свой FlaskИ так, это продолжение темы про то, как изучить Python за выходные (новогодниевыходные, если что). Выучить Python за выходныеМой путь от нуля до адекватного Junior PythonDeveloperВсем привет! С новым 2020 годом и вот это все… Новогодние каникулы хороши тем,что есть легальная ин…