Мой путь от нуля до адекватного 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 Python Developer Всем привет! С новым 2020 годом и вот это все… Новогодние каникулы хороши тем, что есть легальная ин…