284

Ответ trdm в «Яндекс и "Цифровые профессии"»2

Предложу своё видение материалов для начинающего python-разработчика на 2022 год. Есть общая часть для любого backend developer, она же годится для старта в data science и devops.


Сразу скажу, что 80% успеха в изучении — это самостоятельная работа. Ни один курс или преподаватель не сделает из вас специалиста, это доступно только вам. Помочь может размеренное изучение — 1 час изучения каждый день куда эффективнее, чем 10 часов в воскресенье.


Подборка бесплатного материала по python:

0. При погружении в новую область знаний сразу возникает вопрос, куда копать и с чего начать. Ответ можно найти в книгах, обзорных статьях, видео и других источниках. Одним из вариантов визуализации подобных знаний является roadmap. Это такая "дорожная карта" с пометками, что следует освоить. Самым популярным проектом является roadmap.sh. В их github 220к звёзд, настолько это общее место для индустрии. Прописаны roadmap для самых разных специализаций и технологий, в том числе по python. Недавно к каждому навыку они стали прикреплять пачку статей и видео из изучения. Roadmap позволяет выявить пробелы в текущих знаниях и наметить актуальные вопросы для изучения.


1. Классическим хорошим курсом для начала из бесплатных считаются Поколения Python на stepik для начинающих и для продвинутых от школы BEEGEEK. Первые два курса (для начинающих и для продвинутых) бесплатные, третий (для профессионалов) платный, стоит в районе 3к. В каждом курсе порядка 200+ тестов и ~300 интерактивных задач. Для начинающих покрывает базовые типы данных, циклы и ветвления, строки, списки, функции и не большой мини-проект в конце. Для продвинутых вложенные списки, кортежи, множества, словари, работа с файлами. Для профессионалов - исключения, итераторы, генераторы, регулярки.


2. Дополнить текст можно годными лекциями Тимофей Хирьянова из МФТИ.


3. Python: основы и применение на stepik. Тут пространства имён, классы, наследование, исключения, итераторы и генераторы, файловая система, лямбды, pep8, регулярки, немного про http и API.


4. Не питоном единым, поэтому надо ещё и немного в базы. Начинать однозначно стоит с реляционных баз. Можно посмотреть на Интерактивный тренажер по SQL. Тут и про реляционную модель в целом, про запросы, групповые операции, CRUD, и много практики


5. Надо освоить git, достаточно 4 глав из книги Pro Git. Сейчас git без вариантов, у него 97% рынка. Не писать код без локального git-репозитория вообще. Использовать серверный github/gitlab по желанию.


6. Дополнительно можно практиковаться на codewars и leetcode. Берём и решаем по задаче в день. Конкретно leetcode популярен при подготовке к собеседованиям.


7. Для общего развития есть крутой вводный курс в computer science CS50 от Гарварда. Он большой и на английском, начинается с Си и алгоритмов, а дальше про память, структуры данных, python, SQL, HTML, CSS, javascript и даже Flask. Такая сборная солянка. Есть видео-лекции, лабораторные работы с заданиями и всё такое. Говорят, что яндекс.браузер умеет на лету всё переводить, но я не пользовался.


8. Связанный с предыдущим пункт. Без английского нынче никуда. Кто посоветует, как тут можно начать? Мне кажется, что нужны основы языка (база типа грамматика по любому учебнику), а потом много практики уровня "перевод со словарём". Словарный запас всему голова.


9. В современном проекта никуда без тестов. Для python лидером является pytest, могу порекомендовать гайд Python Testing with pytest. Просто, Быстро, Эффективно и Масштабируемо


10. Без linux никуда, все сервера работают на linux. Кто знает хороший гайд для начинающего? Легко сказать "поставь ubuntu и разберись", но это сложно.


11. Без docker тоже никуда. Мне нравится огромный гайд Introduction to Containers в виде 829-страничной презентации. Тут и теория, и практика. Для углубления знаний есть Best Practices.


Когда есть базовый опыт на питоне, дальнейшим развитием является свой проект. Не гонитесь за чем-то уникальным, просто самостоятельно реализуйте что-то уже существующее. В процессе реализации вы начнёте сталкиваться со злым реальным миром, что даст вам много опыта. Например, можно повторить мой часовой стрим по созданию небольшого проекта на python с нуля до небольшого логического завершения.


Из книг для более глубокого понимания внутренностей Python рекомендую Лутца (двухтомник, нужно свежее 5 издание 2019-2020 годов). Многие жалуются, что книга тяжёлая для начинающего. Крутой книгой для повышения уровня я считаю Python. К вершинам мастерства Лучано Рамальо (в 2022 году вышло второе издание, лучше его).


При создании не учебного, а уже боевого проекта важно смотреть на готовые подходы. В статье Как анализировать предметную область перед разработкой на примере видеоаналитики я делился своим опытом подобной работы.


Постоянным источником материалов может быть телеграмм-канал devfm, где мы разбираем разные нюансы из жизни разработчика на Python и не только. Зачем нужен докер, что такое WSGI, чему стоит научиться в вузе, шаблоны проектирования микросервисов с недавнего highload++. По пятницам у нас культурный код с фильмами, книгами и всяким разным.

Программирование на python

907 постов11.9K подписчика

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Вы смотрите срез комментариев. Показать все
2
DELETED
Автор поста оценил этот комментарий

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

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
Товарищ, посмотри на список курсов, которые должны войти в твой 5й год, скорее всего там один семестр - написание диплома. «Поступить на написание ПО» вообще выглядит так себе идеей, почему бы не пойти писать ПО за деньги? Найти сферу, в которой максимально интересные задачи, типа разработки какого-нибудь программного продукта, главное, не в интеграцию и не в веб.
Я слабо представляю, что можно рассказывать на курсе «написание ПО»: какие бывают IDE, как работать в git, а теперь практика - графы и задачи на кратчайший путь? Это вместо выполнения реальных задач, пусть даже с теми же графами в виде redis?
1
Автор поста оценил этот комментарий

В ИТ очень многое на самообразовании. Есть крутые программисты вообще без высшего образования, есть те, кто считает институт потерянным временем


Я считаю очень полезным знания на стыке специальностей. В плане, часто разработчику требуется понимание предметной области. В этом плане те, у кого есть бекграунд в какой-то области могут этими знаниями успешно пользоваться. Условно, со знаниями проектировщика можно круче разрабатывать САПР для проектировщиков. Другое дело, что тратить на это 2 года не очень целесообразно


Зависит от учебного заведения, мотивации (может, программировать не понравится) и кучи других факторов

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

@alexji Я в школе  увлекался информатикой, в универе за 2 года самые светлые воспоминания - проги на паскале, работа в кадах и сапрах.на моем курсе "проектирование ракетных двигателей" пополам математики и механики. Айти направления учат программированию контроллеров, системному по, локальным системам управления, базам данных, ос, инф безопасности, сетям. Это выглядит получше моего сопромата  и механики жидкости и газа, которые я затрудняюсь сказать как буду применять.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку