Qpwo16

На Пикабу
Дата рождения: 30 ноября
1505 рейтинг 41 подписчик 17 подписок 5 постов 2 в горячем
Награды:
5 лет на Пикабу
9

Список менторов-программистов

https://it-volki.notion.site/b369c1ad87f84165954165289be5a0c...


Часто попадаются посты вида "помогите стать программистом". Судя по комментариям к таким постам, пикабушники не то чтобы очень сильно помогают :)


Так вот есть люди, которые 1) уже внутри индустрии (вероятно с многолетним опытом) и 2) сами изъявляющие желание кому-нибудь помогать.


P. S. Меня в этом списке нет, но я тоже из числа таких людей

452

Подробный план самообучения на бэкенд-разработчика (Python или Ruby) "c нуля до профи"

Предварительный замечания:

- план отражает мой личный опыт и не претендует на истину в последней инстанции

- целью плана является трудоустройство на позицию junior backend разработчика (Python или Ruby)

- план предполагает, что вы уже определились с выбором желаемого языка программирования и направлением, которым хотите заниматься. Здесь это именно веб-разработка в части бэкенда. Выбор направления выходит за рамки этого плана.

- что выбрать Python или Ruby? Если у вас нет никакого опыта программирования, то Python. Ruby выбираем только в том случае, если а) у вас есть хоть какой-то опыт программирования б) вы уже попробовали Ruby и вам понравилось.

- перед началом плана прочитайте все уровни и определитесь, на каком находитесь вы. С этого уровня и начинайте.

- нужно ли строго придерживаться того порядка изучения, который предложен в плане? Нет, это не обязательно. Очевидно, что нет смысла изучать фреймворки, если вы еще не выучили язык. Или изучать продвинутые понятия ООП, если нет понятия об основах. Но в то же время, например, базы данных я поместил в Уровень 2 совершенно произвольно. Можно их начать изучать хоть с самого начала.

- нужно ли все указанные книги прочитывать от корки до корки, а курсы проходить от начала до конца? Нет. Читайте то, что вам заходит сейчас. Бросайте книгу/курс, если вам стало скучно.

Уровень 0.

Отсутствует опыт программирования. Совсем.

На этом уровне главная задача - научиться азам программирования и основам выбранного языка. Освоить синтаксис и основные конструкции.

Ну и побочная задача - понять, насколько это интересно, действительно ли хочется посвятить этому какую-то значительную часть жизни.

Книги и курсы для начинающих:

Бесплатные курсы на stepik:

https://stepik.org/course/58852/promo

https://stepik.org/course/67/promo

Книги:

Легкий способ выучить Python. Зед Шоу

Изучаем Python. Марк Лутц

Python на примерах. А. Васильев

Ruby:

https://stepik.org/course/87996/promo

https://rubyschool.us/

На всякий случай напомню, что просто читать книги без практики абсоютно бесполезно. Делайте примеры и упражнения из книг, придумывайте свои задачи. Чем больше практики, тем лучше.

Внимание! Начинаем учить английский и не заканчиваем на всех уровнях. Первоначальная цель: научиться читать технические тексты и документацию. Следующая цель: разговорный язык уровня B1 (лучше B2).

Уровень 1.

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

На этом этапе мы уже твёрдо убеждены, что хотим быть профессиональным разработчиком и готовы копать в глубину. На этом уровне нас ждёт настоящий хардкор.

Главная задача - изучить принципы ООП, научиться писать чистый код.

Побочная задача - освоить профессиональные инструменты разработчика: IDE/редактор (в том числе дебаггинг), Линукс, Git. Помимо самого языка изучаем его инфраструктуру: пакетные менеджеры, виртуальные окружения. Стандарты оформления кода, линтеры, статические анализаторы.

Что делаем:

- устанавливаем линукс в качестве второй ОС (ну или единственной, если прям в омут с головой). Если вы богатенький буратино, то просто купите себе Мак. Профессиональная разработка бэкенда на Питон/Руби не ведётся на Windows. Просто смиритесь с этим. Я рекомендую не заморачиваться с выбором дистрибутива, а просто установить Ubuntu.

- начинаем изучать Git: https://git-scm.com/book/ru/v2 и заводим аккаунт на Github

- КЛЮЧЕВОЙ ПУНКТ. Мы учимся применять на практике теорию, о которой пойдет речь дальше. Делаем маленькие (МАЛЕНЬКИЕ!) проектики. Это должны быть библиотеки и/или консольные программы, чтобы не заморачиваться с GUI или вебом (он нас ждёт на следующем уровне). Придумывайте себе задачи сами, можно погуглить идеи. Это может быть текстовая игра/квест, хранилище паролей, список дел, и т.п. Проекты обязательно ведём в Git и выкладываем на Github.

- разбираемся, что такое виртуальное окружение и используем его

python:

* venv https://docs.python.org/3/library/venv.html

* virtulenv https://virtualenv.pypa.io/en/latest/

* pyenv https://realpython.com/intro-to-pyenv/

ruby:

* rvm https://rvm.io/

* rbenv https://github.com/rbenv/rbenv

- используем пакетные менеджеры

python:

* pip

* poetry

ruby:

* gem

* bundler

- используем линтеры и учимся оформлять код в соотсветствии со стандартами

python:

* flake8

ruby:

* rubocop

- в python привыкаем ставить type hints и использовать mypy

Теория на этом уровне

Теории будет много. Прежде всего, это углубление в язык.

Для Python читаем книгу "Python. К вершинам мастерства" Лучано Рамальо.

Для Ruby читаем "Metaprogramming Ruby" Paolo Perrotto и "Ruby. Объектно-ориентированное проектирование" С. Метц

Далее теория по ООП. Читаем книги:

- "Чистый код" Роберт Мартин

- книги по паттернам проектирования

* Паттерны объектно-ориентированного проектирования. Э. Гамма, Р. Хельм, Р. Джонсон, Дж. Влиссидес. Это легендарная книга, в которой появилось само понятие паттернов проектирования. Авторов еще называют "бандой четырех" (Gang of Fourth, сокращенно GoF). Это первоисточник по данной теме, все остальные книги вторичны. Недостаток: академический стиль изложения.

* Шаблоны корпоративных приложений. Мартин Фаулер. Еще одно академическое издание. Сложно читается, читать всё не нужно, но можно брать что-то для себя.

* Любый другие книги по паттернам, в т.ч. применительно к вашему языку.

* начать можно с сайта https://refactoring.guru/ru/design-patterns/

- погуглить как можно больше материалов про SOLID. Начать можно с https://habr.com/ru/post/348286/

В целом, все материалы по паттернам надо воспринимать как сборник рецептов. Главное в них - это научится использовать на практике.

Уровень 2.

Изучаем разработку веб-приложений: базы данных, фреймворки. Делаем проекты. Начинаем рассылать резюме

Главная задача на этом уровне - научиться делать веб-приложения и сколотить из них портфолио.

Итак, для начала сосредоточимся на базах данных. Учить всё на Postgresql, это самая популярная СУБД.

Что надо знать:

- азы реляционной теории. Не нужно слишком глубоко здесь закапываться. Надо понять основные идеи. На уровне того, что есть "отношения" (это типа "таблицы"), которые состоят из "кортежей" (это типа строки таблиц), и есть еще "атрибуты" (это как бы заголовки столбцов). А между таблицами есть связи.

- язык SQL вплоть до извлечения данных из нескольких таблиц (join) включительно

По Postgresql есть документация на русском: https://postgrespro.ru/docs/postgresql/14/

Есть и бесплатный курсы: https://postgrespro.ru/education/

Ключевой пункт: изучаем фреймворки. Для python это Django, для ruby это Ruby on Rails.

Как изучать фреймворки и по каким источникам? Я думаю, одним из лучших источников является официальная документация. Кроме этого есть книги и курсы на ютубе. Не буду указывать никакие ссылки, всё гуглится без проблем.

Пара книжек по Django, которые лично мне помогли больше всего:

- Django 3.0. Практика создания веб-сайтов на Python. Владимир Дронов

- Two Scoops of Django. D.R. Greenfiled, A.R. Greenfiled

Список книг по Ruby on Rails:

https://blog.railwaymen.org/8-ruby-on-rails-books-you-should...

https://programmingzen.com/rails-books/

Примеры книг на русском: https://progerlib.ru/ruby-books

Самое главное: изучать нужно на практике, только так. Ваши источнки, будь то официальная документация или ютуб-канал, нужно читать/смотреть только до тех пор, пока вы не ухватили идею, как всё это работает. Должно быть ощущение "Ага, я понял!"

После этого придумываем маленькие (МАЛЕНЬКИЕ!) веб-проекты и начинаем делать. Книги, документацию и ютуб используем как справочные материалы. Всё выкладываем на Гитхаб.

Составляем резюме, в котором в качестве "опыта работы" у нас будут наши "пет-проекты". (как правильно составить резюме погуглите, это выходит за рамки данного плана). Веерно рассылаем куда только можно.

На этом этапе возможна следующая ситуация. Вам в ответ на ваше резюме придет предложение выполнить тестовое задание. Выполняем и добавялем его в коллекцию своих "пет-проектов". Плюс, получаем фидбэк от профессионалов, которые ваше тестовое задание оценивали. Становимся сильно лучше, как программисты :) Приглашают на собес - идём, собесы также дают взрывной рост навыков.

Вероятно, на этом этапе вы еще не сможете трудоустроится. Но может быть и так, что сможете :)

Полезные общеразвивающие книги:

- "Совершенный код". С. Макконелл

- "Программист-прагматик". Э. Хант, Д. Томас

- "Программист-фанатик". Чед Фаулер

- "Человек эпохи IT". Сомнез

Уровень 3.

Осваиваем деплой на реальные сервера

Главная задача - задеплоить наши проекты, которые мы делали на предыдущем уровне.

Для этого надо освоить:

- docker, docker-compose. Пожалуй самая сложна тема на данном уровне, но её освоение даёт огромное преимущество соискателю, плюс сильно облегчает жизнь разработчику. Вот несколько вводных статей с Хабра для начала:

* https://habr.com/ru/post/272145/

* https://habr.com/ru/company/ruvds/blog/438796/

* https://habr.com/ru/post/310460/

* https://habr.com/ru/company/ruvds/blog/450312/

- понятие о CI/CD на примере Github Actions

- думаю, понадобится научиться на элементарном уровне настравивать nginx

Как здесь действовать? Есть разные облачне сервисы типа heroku и pythonanywhere, куда можно деплоить. Но мне всегда нравилось купить самый дешевый VPS и деплоить туда. В любом случае, ваша задача в том, чтобы ваш веб-сервис был доступен в интернете по ссылке (думаю, домен второго уровня покупать смысла нет, достаточно что-то типа blalbal.herokuapp.com).

Заворачивайте ваши проекты в docker-compose.

Настройте https, сделайте, чтобы ваш пет-проект выглядел "как настоящий". Ссылку обязательно добавить в резюме! Это серьёзно повысит ваши шансы на трудоустройство.

Настройте CI/CD-пайплайн с помощью Github Actions. После этого ваш проект будет и с точки зрения разработки выглядеть почти профессионально. Еще плюсцы к вашему резюме.

По идее, если у вас будет 1-3 таких проекта, вас уже должны взять джуном без проблем. Если пока не берут, продожаем усиленно рассылать резюме и терпеливо ждём своего часа )

Уровень 4. Устроились на работу, что дальше?

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

Довольно часто бывает, что первая работа не самая удачная. Это нормально, потому что стояла задача заскочить в это поезд. Но когда вы уже в нём, то можно оглядеться и оценить ситуацию. Подходите к работе прагматично. Тут действительно классные дружелюбные ребята, с которым приятно работать? Или сборище мрачных снобов-мудаков? Или (что довольно часто бывает) просто нет никакой команды, и ты один сидишь со своими задачами и только google да stackoverflow твои лучше друзья и наставники?

Не надо бояться искать и выбирать. Работа - это не семья, начальник - не папа с мамой, а коллеги - не братья. Если работа говно - меняем без лишних сентименов.

Если что-то не получается - это не твои проблемы, а проблемы тех, кто тебя нанял. Потому что либо они решили сложные задачи подешевке свалить на джуна, либо не могут организовать эффективное обучение или взаимодействие с командой.

Вообще, на данном уровне главные проблемы которые возникают - это проблемы психологического характера. Поэтому гуглим всё что можно по теме "синдром самозванца" и излечиваемся :)

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

Всем удачи!

Создал чат в телеграме: https://t.me/+k7E2Wp80WpBjNjky

Показать полностью
94

Помогу желающим стать backend-разработчиком на Python или Ruby

Всем привет!

Еще до того, как на Пикабу все начали помогать друг другу, я немного помогал желающим войти в IT. Вот и сейчас предлагаю бесплатно стать ментором или разово проконсультировать. Моя специализация - бэкенд разработка на Python и Ruby.

Кому могу быть полезен: в первую очередь тем, у кого нет еще коммерческого опыта. Также если человек устроился на первую работу, а там происходит какая-то херня (сам был в такой ситуации), то объясню, что это действительно херня, а не "сам виноват, я плохой программист, видимо это не моё" и вот это всё.

Чем могу помочь:

- составить план развития, подскажу что и как учить

- выходить из затыков

- ревьювить код и подсказывать, что улучшить

- говорить, что ты крутой/крутая чувак/чувиха и у тебя всё получится

Пишите на backend_dev_study@rambler.ru. Расскажите в письме о 1) своём бэкграунде 2) о своих целях.

P.S. Понятия не имею, сколько будет откликов. Просто скажу, что постараюсь ответить всем.

Показать полностью

Ответ на пост «9 лет Навальному»2

Напомнило. Ветер в ивах. Кеннет Грэм

– Собственно говоря, – бодро заметил председатель административной комиссии по делам о незначительных правонарушениях, – в этом предельно ясном случае я вижу только одну проблему: изыскать сидящему перед нами закоренелому преступнику и неисправимому негодяю достаточно суровое наказание. Итак, на основании неоспоримых свидетельских показаний он признан виновным, во-первых, в похищении дорогостоящего автомобиля, во-вторых, в нарушении всех мыслимых правил дорожного движения и, в-третьих, в неслыханном оскорблении дорожной полиции. Господин секретарь, проинформируйте нас, пожалуйста, о самых суровых наказаниях за перечисленные преступления. Смягчающие обстоятельства можно не упоминать, ибо таковых не имеется.
Секретарь почесал нос кончиком пера.
– Многие могут решить, – начал он, – что наиболее злостным преступлением является кража, и это так. Но оскорбление полиции карается гораздо строже, и это правильно. Допустим, за воровство будет начислено двенадцать месяцев, это не очень много; за нарушение правил дорожного движения добавим ещё три года, это не слишком строго; и пятнадцать лет за оскорбления, нанесённые полицейским при исполнении ими своих обязанностей, – чудовищные оскорбления, даже если поверить одной десятой того, что мы слышали от свидетелей. А так как я лично никогда не верю более чем одной десятой услышанного, то, просуммировав должным образом, мы получаем девятнадцать лет…
– Замечательно! – перебил председатель.
– …которые легко округляются до двадцати, в результате чего и получается как раз то, что надо.
– Великолепно! – воскликнул председатель. – Подсудимый, встаньте! На этот раз вы получите двадцать лет, но имейте в виду, что в следующий раз, в чём бы вы ни провинились перед законом, ни на какое снисхождение не надейтесь.
Показать полностью
3

Очередная попытка решить нерешаемую проблему тишины под окном

Всем привет!

Сейчас 04:23 на часах, спать не хочется. За окном - тёплая летняя ночь, красивый вид из окна, свежий воздух, бодрящие звуки разных музыкальных композиций, разносящиеся по берегу Енисея... Про молодых, вечно пьяных, про то, как мы с пацанами собирались и т.д. и т.п.

Я люблю музыку, конечно. Хоть и не всякую, но из того, что сейчас играет за моим окном, я кое-что даже бы послушал с удовольствием. Но в дневные часы. А сейчас это вызывает крайне неприятные ощущения. Хотя бы потому, что в выходные (а сейчас суббота) было бы неплохо выспаться.


Поясню, что живу я в доме, который выходит окнами на берег Енисея. Это красивое место, тут многие горожане любят гулять и днём, и вечером, и даже ночью. Что ж, прекрасно. Я сам люблю гулять здесь. Но удивляет то, что некоторым обделённым природой личностям хочется приехать сюда именно ночью и именно со своей музыкой из автомобиля. При этом они нисколько не задумываются о том, что здесь живут люди, среди которых есть семьи с маленькими детьми, есть старики (это обычная хрущевка). Я, который всегда опасался нарушить чьи то границы или причинить кому-либо какое-либо неудобство, никогда не пойму этих людей.


Ситуация эта происходит здесь регулярно, практически каждые выходные. (о! песню про Магадан включили :) ) Естественно, я звонил в полицию. В принципе, я думаю, вы понимаете, чем это заканчивалось. Собственно, ничем. Чаще всего полиция приезжала под утро, когда никого уже не было. Естественно они шли ко мне брать объяснительную, предварительно разбудив т.к. к этому времени я уже спал. Почитав схожие посты и комментарии пикабушников, я понял, что это абсолютно типичная ситуация для любого региона России. Сценарий одинаковый всегда, как будто у них (у полицейских) такой регламент прописан: после звонка о нарушении тишины подождать несколько часов, чтобы точно все разъехались, а потом приехать.


Однако же, я думаю, это неправильно.


Вот я и решил сегодня еще раз позвонить. Без особых надежд, естественно. Вот уже прошло больше часа, пока никого нет на горизонте. Музон как играл, так и играет. (Вот ведь упорные какие ребята сегодня! Обычно подкатят, погромыхают минут 15 и свалят. Но не эти. Эти вот уже часа 2 как веселятся. Ну а я - нет)


Ну а поскольку заняться в общем-то нечем, напишу-ка я заявление в прокуратуру (спойлер: раньше я уже писал, результат нулевой). Ну напишу еще раз. Раньше у меня не хватало терпежа доконтролировать всё до конца. Что ответили в срок, куда перенаправили, что сделали и т.п.


Сейчас вот пишу пост на Пикабу. Пишу для того, чтобы вы, уважаемые пикабутяне, помогли мне замотивироваться и проконтролировать всё до конца путём подпинывания и напоминания: ну что, какой статус заявления? ответили? переадресовали кому? провели проверку?


В конце концов, это не только моя личная проблема. Может мы все коллективным разумом сможем что-то сдвинуть с мёртвой точки? Если уж на реддите курсы акций двигают, чем мы хуже? Может глядишь и решим общественную проблему. (А может на наших глазах рождается новый способ управления государствами - с помощью соц. сетей. Все правительства всех стран будут упразднены, миром будет править коллективный разум, который приведёт мир к благополучию и процветанию... так, хорош, размечтался)

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества