За сколько времени можно научиться программированию python
Перейти к содержимому

За сколько времени можно научиться программированию python

  • автор:

Сколько времени реально нужно, чтобы освоить программирование?

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

Спонсор проекта — буткемпы «Яндекс Практикума». Буткемпы — это как обычные курсы Практикума, только вдвое более интенсивные и поэтому короткие. Если классический курс «Аналитик данных» проходится за 6 месяцев, то буткемп по той же специальности длится всего 4 месяца.

  • Буткемпы требуют выделять на обучение около 40 часов в неделю. Обычные курсы — около 20 часов.
  • Буткемпы нужны тем, кто хочет вот прямо сейчас уйти с работы и попасть в новую специальность. Обычные курсы — для тех, кто изучает новую специальность параллельно с основной работой.

Сколько времени реально нужно, чтобы освоить программирование?

1 неделя: базовые конструкции и простые алгоритмы

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

За неделю занятий вы сможете:

  • Писать и запускать свой код.
  • Объявлять любые типы данных.
  • Делать простые вещи с помощью циклов и условных операторов.
  • Работать с массивами, строками и числами; производить математические операции.
  • Объявлять функции.
  • Работать с объектами.
  • Если изучаете JavaScript и HTML, то вы даже сделаете простую интерактивную веб-страницу.

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

⚠️ Подводный камень: вам может начать казаться, что теперь вы умеете программировать, и вы начнёте решать все данные вам задачи теми базовыми инструментами языка, которые вы знаете. Часто ваши решения будут громоздкими и нестабильными. Как с этим быть — вы узнаете дальше.

Сколько времени реально нужно, чтобы освоить программирование?

1—3 месяца: основные задачи, которые решают этим языком

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

На примере фронтенд-разработки:

  • Вы начинаете использовать фреймворки для работы с веб-страницей.
  • Узнаёте про стандартные компоненты интерфейсов.
  • Начинаете общаться с сервером с помощью асинхронных запросов.
  • Познаёте силу современных верстальных инструментов типа CSS Grid.
  • Учитесь показывать всплывающие и модальные окна, валидировать формы, настраивать анимации.

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

⚠️ Очень важно здесь не впасть в состояние самоуверенности. На этом этапе вы ещё не можете идти на работу разработчиком, но уже можете идти джуном, например писать документацию и заниматься рутинной технической работой.

Сколько времени реально нужно, чтобы освоить программирование?

3—6 месяцев: фреймворк, или набор инструментов для решения специфической задачи

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

  • В случае с веб-разработкой это будут Angular, Vue или React — смотря куда вас понесёт.
  • Если вы пишете на Python — вы начнёте специализироваться на каком-то виде вычислений: либо провалитесь в веб-разработку и Django, либо начнёте глубоко изучать математические и визуализирующие библиотеки.

✅ После этого этапа вы уже уверенный разработчик, которого можно нанимать на коммерческие задачи.

⚠️ Вы ещё не знаете, что работа в ИТ-компании — это не только разработка (и далеко не она).

Сколько времени реально нужно, чтобы освоить программирование?

6 месяцев и далее: отраслевой опыт, лучшие практики и боль работы в ИТ-компаниях

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

Тут вам открывается, что работа в ИТ-компании несколько больше, чем просто разработка. А именно:

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

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

⚠️ Раньше вы смеялись над людьми, которые выгорают, работая за компьютером. Теперь вы этот человек.

Сколько времени реально нужно, чтобы освоить программирование?

12—24 месяца: оптимизация, рефакторинг, политика

Пройдя долину выгорания и скучных задач, вы узнаете о себе три вещи:

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

Это этап, на котором вас начинает раздражать легаси-код. Вы хотите всё переписать под новые фреймворки, оптимизированные под новое железо. Вы начинаете заморачиваться читаемостью кода, скоростью работы и нагрузкой на исполняющие машины; у вас на столе появляются классические учебники по алгоритмам. Вы наконец-то прочитали «Искусство программирования» и всё там поняли (хотя эта книга была у вас уже год).

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

⚠️ Простые люди перестают вас понимать, считают гиком и занудой.

Сколько времени реально нужно, чтобы освоить программирование?

2—5 лет: вставки на ассемблере, экзотические языки, духовность, квантовая физика

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

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

Вы начинаете изучать ассемблеры, но теперь с полным пониманием, зачем вам это.

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

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

❌ Люди боятся говорить с вами о разработке.

Сколько времени реально нужно, чтобы освоить программирование?

6+ лет: сопромат, проектирование загородного дома

Вы в понимании разработки уже так преисполнились, что решаете любую задачу силой мысли. Ваша клавиатура — кастомная 12-клавишная разработка с десятью функциональными слоями. Вы напечатали её на 3Д-принтере, а логическую плату для вас изготавливали в Гонконге.

Вы начинаете задумываться о других аспектах своей жизни:

  • Начинаете думать о покупке земли и строительстве дома. Правда, дом вам интересен в первую очередь как инженерный проект: можно ли его сделать полностью автоматизированным, используя микросхемы времён СССР?
  • Нейронка на вашем облачном сервере считает идеальное расположение несущих конструкций вашего будущего дома.
  • Вы изучаете вопрос создания собственной системы навигации на базе ГЛОНАСС, чтобы промаркировать своих будущих кур и гусей. Телеметрия и дистанционная ветеринария. Математические модели для выпаса овец. Квадрокоптер-пастух. Непрерывное энергоснабжение. Лазерное энергоснабжение.
  • Однажды на рыбалке вам является оптимизация кода в одной из рабочих задач. Вы видите красоту в движении волн.
  • Глядя на водную рябь, вы размышляете о критериях разумности машин.
  • Вы используете Linux с доработанным вами же ядром. Вам не нужен монитор.
  • Вы из тех людей, которые входят в комнату, и все компьютеры резко перестают глючить.

За сколько можно научиться программированию, если заниматься всего 1,5 часа в день?

Советы начинающим и будущим программистам. Чем и как может помочь ИИ?

Время, необходимое для изучения программирования, сильно зависит от различных факторов, таких как:

  1. Ваш опыт. Если у вас уже есть опыт работы с другими языками программирования или вы знакомы с компьютерными науками, вам будет проще начать изучение нового языка.
  2. Цели обучения. Ваши цели также определяют, сколько времени потребуется для изучения программирования. Если вы хотите просто познакомиться с основами, это займет меньше времени, чем если вы стремитесь стать профессиональным разработчиком.
  3. Избранный язык программирования. Некоторые языки программирования сложнее изучать, чем другие. Например, языки вроде Python и JavaScript считаются более доступными для новичков, нежели C++ или Java.
  4. Личные способности и стиль обучения. Все люди учатся по-разному и в разном темпе. Ваш индивидуальный стиль обучения и способности также влияют на то, как быстро вы научитесь программированию.

Предполагая, что вы абсолютный новичок и занимаетесь 1,5 часа в день, вы можете ожидать, что освоите основы программирования на простом языке, например, Python, за 2-3 месяца. Однако для достижения профессионального уровня потребуется гораздо больше времени на обучение.

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

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

Несколько советов, которые могут помочь вам ускорить процесс и стать успешным разработчиком:

  1. Изучайте теорию и практикуйте. Основы компьютерных наук и теории программирования очень важны, но одновременно с этим необходимо активно практиковаться. Решайте задачи, создавайте небольшие проекты и экспериментируйте с кодом.
  2. Используйте онлайн-ресурсы. Интернет предлагает множество ресурсов для изучения программирования, от бесплатных учебников и видеоуроков до интерактивных платформ и сообществ. Воспользуйтесь этим разнообразием и найдите ресурсы, которые подходят именно вам.
  3. Присоединяйтесь к сообществам разработчиков. Сообщества разработчиков, такие как форумы, группы в социальных сетях и платформы для разработчиков, могут быть очень полезными. Здесь вы можете задавать вопросы, делиться опытом и получать поддержку от коллег.
  4. Работайте над реальными проектами. Как только вы освоите основы программирования, начните работать над реальными проектами. Это позволит вам применить полученные знания на практике, развивать навыки решения проблем и создавать портфолио для будущих работодателей.
  5. Не бойтесь ошибок. Ошибки являются неотъемлемой частью процесса обучения. Они помогают вам учиться, расширять знания и становиться лучше. Не бойтесь ошибаться и учиться на своих ошибках.
  6. Верьте в себя и будьте настойчивыми. Изучение программирования может быть сложным, и иногда вам может показаться, что вы не справляетесь. Важно сохранять веру в себя и продолжать учиться, даже если процесс кажется медленным или трудным.

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

Как может помочь начинающему программисту GPT от OpenAI

Современные, новомодные нейросети могут помочь начинающему программисту во многих аспектах.

  1. Обучение и мануал. GPT-3 может предложить материалы для изучения и обучения, такие как книги, видео, онлайн-курсы, статьи и блоги, которые соответствуют вашему уровню знаний и интересам.
  2. Пояснение концепций. Если у вас возникли вопросы по конкретным концепциям, терминам или алгоритмам, нейросеть может объяснить их вам простым и понятным языком.
  3. Решение проблем и отладка. Если у вас возникают проблемы с вашим кодом или вы столкнулись с ошибками, GPT-4 может предложить решения и подсказки для отладки кода.
  4. Подсказки по синтаксису и структуре кода. GPT-4 может помочь вам вспомнить синтаксис и структуру кода для разных языков программирования, а также предложить лучшие практики по написанию чистого и эффективного кода.
  5. Готовый код. GPT-4 по описанию словами, может сделать готовый код, небольшое приложение, простенький сайт или игру. Однако, следует внимательно проверять код от нейросети, так как возможны ошибки.
  6. Мотивация и поддержка. Изучение программирования может быть сложным и требовательным процессом. GPT может предложить вам советы по управлению временем, сохранению мотивации и преодолению препятствий, с которыми сталкиваются начинающие программисты.

Чтобы получить помощь от GPT-3-4, зарегистрируйтесь на сайте OpenAI: https://chat.openai.com . Для регистрации понадобиться VPN и временный телефонный номер разрешенной странны; GPT-3 — бесплатный, GPT-4 — платный.

Задайте свой вопрос или опишите проблему, затем отправьте это сообщение ИИ, через несколько секунд появиться ответ. Существует множество аналогов, например, PaLM, Sphere, Galactica и т.д.

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

Автор не входит в состав редакции iXBT.com (подробнее »)

Об авторе

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

Автор Павел НА Рейтинг 0.00
Блог Оффтопик 348 3378 RSS Вступить Подписаться
Не упускай интересное! Подпишись на нас в ВК и Telegram.

Пожаловаться на комментарий
10 комментариев
Добавить комментарий

Я забыл из какого это фильма, но там на вопрос ГГ, сколько нужно времени, чтобы этому научится, ответ был — вся жизнь. Быть хорошим специалистом — это всегда смесь таланта и упорства. Талант — это когда ты делаешь что то не из под палки, а по собственному желанию. Например занимаешься самообучением и ставишь перед собой свои собственные цели и достигаешь их. Но талант нужно развивать. И тут помогает упорство. Не знаю, почему в сегодняшних школах на это забили, но я начинал с графики. Я любил игры, хотел создавать свои, любил рисовать. А потому я писал графические программы. А все остальное приложилось уже потом со временем. Насчет первого языка программирования существует большая дилемма. С одной стороны начинать лучше с более простого. Например я даже не понимаю, почему C++ по крайней мере до недавнего времени считался лучшим языком — он ведь жутко кривоватый. С другой стороны потом тяжело будет переучиваться на более сложный. Но тут уже важную роль играют мета-знания. Т.е. если понимать основные принципы, то синтаксис языка становится уже вторичным. И тут очень помогает изучение ассемблера. Изучение ассемблера как изучение электроники. Конечно можно сказать, что и обезьянку можно научить тыкать кнопочки и для повседневных задач настолько глубокие знания не нужны, а иногда даже вредны, т.к. забивают голову лишней информацией, но на самом деле это очень важная вещь, т.к. она дает понимание того, что язык программирования это только обертка над машинными кодами и позволяет использовать определенные инструменты языка с умом и пониманием того, для чего они нужны, а не просто потому, что это стильно-модно-молодежно. Но не стоит становится адептом культа ассемблеристов, которые считают, что только на ассемблере можно написать самый быстрый код. Это далеко не так. Ассемблер забивает голову лишними проблемами и отвлекает от главной вашей задачи — реализации алгоритма. А современные компиляторы имеют уровень оптимизации, не доступный человеку. Но не стоит забывать о главном. Если вы хотите зарабатывать деньги, то должны понимать, что делать что то вам придется не для себя, а для других. А потому следите за потребностью в программистах на определенных языках. К сожалению Python сам по себе не очень хороший язык, да и скриптовый язык в качестве основного — это не очень хорошая затея. Т.к. люди привыкают к удобствам скриптовых языков и пишут потом на них крупные проекты, которые потом выливаются в жуткие тормоза для их пользователей. Но, насколько я знаю, это язык, который сейчас наиболее востребован. Да, писать на ассемблере круто, но специалистов, которые способны например сами писать языки программирования, нужно не так уж и много. Выбор за вами. Быть «настоящим» программистом конечно круто, но иногда я жалею, что не пошел в 1С-ники.

Очень со многим согласен. 1,5 часа в день — ничто. 10-12 часов в день. Без изучения книг по основам программирования и отладки — будет дополнительная громадная потеря времени. Тут можно и нужно сэкономить силы и время.
Ну и крайне желательно, что бы за это время платил работодатель 😉 Так что, базовый курс, немного своих поделок для портфолио и скорее в команду на реальный проект, и там набираться околопроектного опыта, шлифовать навыки.

«И тут очень помогает изучение ассемблера.» — не согласен, из личного опыта и вот почему:
ассемблер — процедурный язык, максимально приближенный к машинному коду. (подпрограммы, функции, библиотеки — вот и все структурирование). Все объектно-ориентированные (ОО) «сущности» возникают на следующем уровне языков. Так вот, переход от простой и понятной процедурной концепции к объектной, не так уж прост и требует серьезной перестройки мышления программиста.
При том, что в относительно простых программах, особенно при работе с микроконтроллерами, процедурный подход удобнее и проще. Простота процедурного программирования развращает. 🙂 Лично я, например, до сих пор недолюбливаю обьектный подход и избегаю его, по возможности. В инете, недостатки и достоинства объектных языков подробно разбираются, то же наследование — вещь в себе, но будущее за ОО языками, это факт.
По этому, имхо, не стоит тратить начальное время на ассемблер и процедурные языки, а потом переучиваться на объектные. Проще и результативнее — наоборот, начать с ОО, а ассемблер потом, если уж очень понадобится. 🙂
Да и все серьезные проекты, связанные с ИИ, как ни крути — на ОО языках.

Объектно-ориентированный подход не зависит от языка программирования. Например в WinAPI нет классов и объектов в явном виде, а на самом деле они там есть. И на ассемблере можно реализовать ООП — никто не мешает. ООП — это вопрос масштабируемости. Если нужен один объект — то его можно реализовать и в процедурном подходе. Но всегда нужно держать в голове, что завтра их может потребоваться два, три, десять, неопределенное количество. Потому лучше сразу реализовывать это в ООП, даже если в данный момент это не нужно. А про ассемблер скажу честно, что бывали случаи, когда даже при написании программы на ЯВУ только отладка машинного кода помогала найти скрытую ошибку. При написании сложного кода бывает, что компилятор тебя «неправильно понимает» и это например приводит к неверному неявному преобразованию типов. Выскакивает AV, а почему — не понятно. И если не знать машинного кода и не уметь отлаживать код на этом уровне — никогда и не поймешь. И это я уже не говорю о том, чтобы просто знать, во что в итоге компилируется тот или иной синтаксический сахар. Яркий пример, который я всегда привожу — замыкания в компилируемых языках. Не все знают, что компилируются они на самом деле в интерфейсы. А не зная во что оно компилируется, не будешь знать и когда их лучше применять, а когда не стоит.

На деле во многих API Windows есть классы и объекты в самом явном виде. Обычно они реализованы используя COM, но не всегда. Общеизвестным примером такого API является DirectX. Другим примером является Windows Media Foundation.

Изучаем Python за 6 месяцев. Подробный план обучения

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

Когда я начал изучать питон, у меня возникло несколько вопросов:

  • какие темы необходимо изучить;
  • насколько это будет сложно;
  • сколько это займёт времени;
  • где найти хорошие источники информации?

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

  • стандартные типы данных;
  • условия;
  • циклы;
  • функциональное программирование;
  • работа с файлами;
  • регулярные выражения;
  • основы алгоритмов;
  • объектно-ориентированное программирование (ООП);
  • конкурентность;
  • тестирование кода;
  • полезные библиотеки типа itertools, collections и тому подобное.

Если вы прежде не занимались программированием, то поначалу будет сложновато, но потом мозги «настроятся» в нужное русло и будет нормально.

На этом преамбула окончена и переходим непосредственно к плану обучения.

Основы (3 месяца)

Предлагаю начать с прочтения книги Билла Любановича «Простой Python. Современный стиль программирования» (второе издание) чтобы иметь базовое представление о том, что такое программирование и как выглядит код на Python.

Далее переходим к курсам на платформе Stepik:

  • «Поколение Python: курс для начинающих»;
  • «Поколение Python: курс для продвинутых».

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

После следует приступить к плейлисту декораторы канала luchanos и для практики пройти на Stepik «Декораторы в Python»: часть 1 и часть 2.

Ещё по желанию можно пройти регулярные выражения: курс, учебник и практика.

Введение в алгоритмы (2 недели)

Вообще, о том, как шатать leetcode и проходить алгоритмические фиды на собесах – дело отдельной статьи, поэтому пока обойдёмся основами основ и здесь на сцену вступает небезызвестная книга Адитьи Бхаргавы «Грокаем алгоритмы».

Автору удалось сделать очень дружелюбное к новичкам пособие, из которого вы узнаете про алгоритмы поиска и сортировки, что такое рекурсия, динамическое программирование и многое другое – однозначно рекомендасьон.

Объектно-ориентированное программирование (3 недели)

Есть 2 хороших курса:

  • плейлист Python OOP канала JimShapedCoding;
  • курс Python ООП Олега Молчанова – лучшее объяснение из всех, что я видел.

Отсюда вы узнаете об устройстве объектной модели в Python, какие существуют парадигмы ООП, для чего применяются дескрипторы и многое другое.

Также параллельно с курсами было бы хорошо углубляться в пройденные темы и для этого есть неплохая книга «Object-oriented Python», Irv Kalb.

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

Для практики переходим на codewars OOP: когда получится решать 5 кату, то можно двигаться дальше.

Конкурентность (2 недели и больше)

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

Основы многопроцессорности и многопоточности:

  • Конкурентность в Python канала luchanos.

По асинхронному программированию есть 2 хороших плейлиста:

  • Асинхронность в Python от Олега Молчанова;
  • import asyncio: Learn Python’s Asyncio канала EdgeDB.

Параллельно с курсами лучше пользоваться книгой Мэттью Флауэра «Asyncio и конкурентное программирование на Python».

Отсюда вы узнаете о выполнении конкурентных запросов к базам данных, сочетании многопоточной обработки с asyncio, управлении подпроцессами и многом другом.

Тестирование кода (1 неделя)

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

Поэтому предлагаю перейти к плейлисту Pytest тестирование канала luchanos.

Ещё есть неплохая книга «Python Testing with pytest» (second edition), Brian Okken, с которой также желательно ознакомиться.

В качестве альтернативы Pytest есть неплохой плейлист Unittest in python канала Paris Nakita Kejser и книга Владимира Хорикова «Принципы юнит-тестирования» (примеры кода на C#).

Больше продвинутых тем (3 недели)

В принципе, может показаться, что всего вышеперечисленного уже достаточно, но для лучшего понимания устройства функций и классов, как работает сборщик мусора, в чем отличие итераторов от генераторов, как пользоваться библиотеками типа itertools, collections и т.д., ещё необходимо немного углубиться, и в этом нам помогут 2 книги:

  • «Python – к вершинам мастерства» (второе издание), Лусиану Рамальо.
  • «Dead simple Python», Jason C. Mcdonald.

Книги плюс-минус об одном и том же, однако в последней некоторые темы рассматриваются на немного более поверхностном уровне. За счёт этого она читается легче.

Какую из них выбрать? Лучше читать наиболее непонятные темы из обеих книг.

Best practices (1 неделя и больше)

После того, как вы изучите основные конструкции и возможности языка, не будет лишним и узнать об их эффективном использовании, и для этой цели есть хорошая книга «Effective Python. 90 specific ways to write better Python» (second edition), Brett Slatkin.

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

Что в итоге

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

Что дальше

Дальше можно смело двигаться в выбранное вами направление: будь то веб-разработка с Django и Flask или же машинное обучение с Numpy, Pandas и Pytorch – полученных знаний хватит за глаза.

Дополнительные источники

  • «Знакомство с Python», Дэн Бейдер;
  • «Изучаем Python» (третье издание), Эрик Мэтиз;
  • «Изучаем Python» (пятое издание, 2 тома), Марк Лутц;
  • «Python Workout: 50 ten-minute exercises», Reuven M. Lerner;
  • «Изучаем программирование на Python» (второе издание), Пол Бэрри;
  • «Начинаем программировать на Python» (пятое издание), Тони Гэддис;
  • «Автоматизация рутинных задач с помощью Python» (второе издание), Эл Свейгарт;
  • Курс по Python от Google;
  • Хендбук по Python – курс от Яндекса;
  • Python Full Course на канале Bro Code;
  • Питонтьютор – небольшой курс по Python;
  • Интерактивное руководство по Python от DataCamp;
  • Python tutorials – ещё один неплохой курс по питону;
  • Python for Everybody – курс от университета Мичигана;
  • Изучаем Python – курс для начинающих от freeCodeCamp;
  • Добрый, добрый Python – обучающий курс от Сергея Балакирева;
  • Инди-курс программирования на Python – курс от Артёма Егорова;
  • Алгоритмы и структуры данных на Python 3 – лекции Тимофея Хирьянова;
  • Программирование на Python – курс начального уровня от института биоинформатики.
  • «Секреты Python Pro», Дейн Хиллард;
  • «Using Asyncio in Python», Caleb Hattingh;
  • «Beyond the Basic Stuff with Python», Al Sweigart;
  • «Python. Книга рецептов», Дэвид Бизли, Брайан К. Джонс;
  • «Профессиональная разработка на Python», Мэттью Уилкс;
  • «Паттерны разработки на Python», Гарри Персиваль, Боб Грегори;
  • «Чистый Python. Тонкости программирования для профи», Дэн Бейдер;
  • «Python Object-Oriented Programming» (fourth edition), Steven F. Lott, Dusty Phillips;
  • Intermediate Python – продолжение начального курса от freeCodeCamp;
  • Python: основы и применение – курс среднего уровня от института биоинформатики;
  • Программирование на Python – более продвинутый курс от Computer Science Center;
  • Параллельное программирование – ещё один видеокурс от Computer Science Center.

Ещё несколько полезных ссылок:

  • Документация по Python;
  • Python Tutor – отладчик кода;
  • Real Python – куча статей по Python;
  • PEP 8 – руководство по стилю кода на Python;
  • The Elements of Python Style – ещё одно руководство по стилю кода;
  • Stack Overflow – известный сервис вопросов и ответов по программированию;
  • CheckiO, LeetCode, Codewars, HackerRank – сайты с упражнениями для практики;
  • PyLounge, Андрей Иванов | Python, Диджитализируй!, egoroff_channel, selfedu, Amigoscode, Python Programmer – полезные каналы по Python.
  • python
  • пайтон
  • питон
  • программирование
  • план обучения
  • разработка веб-сайтов
  • bigdata
  • data science
  • машинное обучение
  • карьера в it-индустрии
  • Веб-разработка
  • Python
  • Программирование
  • Машинное обучение
  • Учебный процесс в IT

За какое время можно выучить Python?

Hateman31

И очень интересный вопрос, что значит познать? Синтаксис-то можно бегло за пару дней понять, а вот со всякими декораторами, метапрограммированием, самостоятельным управлением памяти, написанием дополнений на C придется повозиться. Да и глупо ставить цель изучать язык, надо пробовать делать конкретную нужную задачу.

Ответ написан более трёх лет назад
Комментировать
Нравится 8 Комментировать

Matvey-Kuk

Разработчик в Cisco, CA.

На этот вопрос нельзя ответить. Можно ответить на вопрос «Сколько нужно ботать питон, чтобы устроиться на работу программистом?». Можно сесть как перед экзаменом и за пару недель вытащить на джуниорский уровень.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *