Как я выучил Python за месяц
Python — один из самых популярных языков программирования. Его используют не только разработчики, но и специалисты самых разных сфер: ученые, аналитики, тестировщики, медики, маркетологи и многие другие.
- Хотите узнать, для чего? Смотрите бесплатный вебинар «Зачем специалисту Python»
Мой путь к Python был тернист, зато и первые задачи на нем сразу пошли в продакшен. Но обо всем по порядку.
Как все начиналось
Давным-давно в мои руки попала инструкция от ZX Spectrum — популярного в восьмидесятых и начале девяностых 8-разрядного компьютера. Я читал ее ночами и поражался, насколько же это круто — знать специальный язык, с помощью которого можно управлять компьютером, буквально подчинить машину. С тех пор моя жизнь и карьера неразрывно связаны с программированием.
Первую программу я написал на языке Dark Basic в третьем классе. Компьютера у меня не было, зато были друзья. Поэтому программа сначала появилась на тетрадном листе, а затем перекочевала на компьютер друга. Ничего великого она не делала: сперва спрашивала имя собеседника, а затем оскорбительно о нем отзывалась. Зато не просто Hello, World!
- Hello, World! — программа, результат работы которой — вывод на экран фразы «Hello, world!».

Моя первая программа. Не горжусь, но для третьеклассника неплохо
Автоматизация тестирования на Python
Онлайн-курс для тестировщиков
Затем был Visual Basic 6.5. Это было время расцвета локальных сетей, и я загорелся идеей написать сетевой чат. С ним я выступил на городской конференции для школьников. На презентации мой друг и ассистент, демонстрируя функции чата, словил все возможные баги. Надо узнать, не стал ли он тестировщиком
В старших классах школы я начал изучать язык C. Это строгий и по-своему красивый язык, который требует большой вдумчивости и с завидной легкостью позволяет стрелять себе по ногам. В вузе были Pascal и Delphi, но лабы и курсовые я по возможности писал на C++. Не скажу, что очень нравилось: после C++ осталось послевкусие переусложненного С.
BASH vs Python
Тогда же я познакомился с Linux и почти сразу влюбился в BASH. Что я только на нем ни писал — от анализа логов сетевого шутера для автоматического бана читеров до автоматизации параллельной разработки доступной среды или ядра Linux для распределенных блокировок. При этом между процессами использовал именованные пайпы — ФИФО.

BASH — как глоток свежего воздуха после терминала Windows
- А еще я написал скрипт, который вытягивал рандом с Башорга и показывал по одной цитате. Кажется, он все еще работает.
Выбрал бы я сейчас Python для задач, которые когда-то решал на BASH? Пожалуй, да. Все, как обычно, зависит от задачи:
- Если нужно быстро обработать текст, переложить стопку файлов, найти что-то в логах, то связка BASH — grep — upset все еще хороша. Многие тестировщики и системные администраторы со мной согласятся, потому что пользуются этими инструментами, по крайней мере на Linux-серверах.
- Если нужна сложная логика, работа с сетью или структурированными данными вроде JSON и XML, Python — отличный помощник. В качестве развлечения это всё можно написать на BASH — будет весело и займет все выходные. Но если серьезно, то скрипт на Python прекрасно помогает справляться с рутиной при решении рабочих задач.
Из последних задач, которые не касались непосредственно разработки, был поиск устаревших зависимостей для библиотек в GitLab. Можно вручную посмотреть несколько десятков проектов, но я не надеюсь на собственную внимательность. Скрипт на Python отработает надежнее и быстрее даже с учетом времени, которое уйдет на его разработку. Особенно если счет источников данных идет на десятки.
И все-таки Python
Где-то между страданиями на С++ и BASH-безумием мне написал друг и спросил, не хочу ли я выучить Python. Я и не подозревал, на что подписываюсь, а когда спросил, что почитать, мне прислали две ссылки: на Dive Into Python и на официальную документацию языка.
И почти сразу дали задачу — написать высокоуровневый асинхронный драйвер для модема. Слово «асинхронный» для меня было новым. Дело в том, что модем — штука неторопливая, и в синхронном коде, пока он отвечает, придется ждать всей системе. Будет тормозить интерфейс и остальной ввод/вывод.
Никакого asyncio тогда не было, зато были Python 2 и select — системный вызов Linux, который позволяет дождаться, когда будет готов ввод/вывод, и после этого приступать к чтению.
Через месяц я написал рабочий прототип. Это приблизительный тайминг, который позволяет освоить Python при большом желании.

Примитивный, но рабочий DNS-прокси-сервер на Python. К нему можно выполнить DNS-запрос, и он отдаст IP-адрес сервера
Это решение я переиспользовал, когда работал сисадмином в своем родном лицее. На его основе написал DNS-фильтр, чтобы дети не ходили куда попало через школьный интернет.
Вот так я за месяц с небольшим влился в разработку на Python. Это были сразу задачи в прод — сумасшедшая история. Чтобы быстро во всем разобраться, пришлось сидеть днями и ночами, при этом в помощь мне были только доки. Теперь, конечно, возможностей у новичков в сотни раз больше.
Как выучить Python за 3 недели и спать спокойно
Что читать
Рекомендую ту же книгу, с которой начинал я, — Dive into Python. В 2009 году вышла версия Dive into Python 3, имеет смысл начинать именно с нее. А еще важно не забывать о PEP — индексе предложений от сообщества Python для внесения изменений в язык — и документации к языку.
Где учиться
Вы можете превзойти мой результат и освоить Python за 3 недели на онлайн-курсе «Основы языка Python». Опытные преподаватели не оставят студентов один на один с компьютером. Вам не придется проводить ночи без сна, мучаясь над очередной задачкой, и развитие пойдет гораздо быстрее.
А если нужно обучить сразу нескольких сотрудников, выбирайте Годовую подписку. С ней вы сэкономите не только время, но и деньги. Эксперты подберут курсы для специалистов по всем направлениям обучения в Контур.Школе.
Кроме того, пользователи Годовой подписки получают безлимитный доступ к экспресс-курсам, вебинарам и рубрике «Вопросы экспертам». Приносите сложные рабочие кейсы — будем разбираться вместе
Как я начал учить Python и ничего не произошло
Вы когда-нибудь видели лендинги курсов по программированию? Наверняка да, ведь времена «мидлов за полгода» и «джунов за три месяца» отгремели совсем недавно. Страницы многих успешных эдтех-компаний здесь похожи. За обещаниями золотых гор на золотых песках удаленки мы вглядываемся в светлые лица преподавателей, и после reasons to believe нас встречает… программа обучения. Двух-, а то и трехуровневая простыня со всеми важными темами. И чем их больше, тем лучше: ведь на другой чаше весов уже поджидает стоимость курса.
Стремление показать товар лицом — это, конечно, похвально. Но есть у такой дотошности и обратный эффект: неуверенность в себе. Вчерашним «выпускникам филфака», к которым с натяжкой отношу себя и я, становится страшно. В этом посте я постараюсь всех нас ободрить и расскажу, как преодолел базовый курс Python.

Немного о себе. Моя работа всегда была связана с текстами. В основном айтишными. Я много пишу с экспертами на разные темы, но никакими системными знаниями о языках программирования в итоге не оброс. До этого курса моим высшим достижением был фан-сайт группы «Кино», написанный на информатике с Dreamweaver. На фоне одноклассников с кодом в блокноте выглядело круто, но в голове осталось немного (спасибо, визивиг).
Перемещаемся лет на 17 вперед. В конце прошлого года я получил для бесплатного знакомства экспресс-курс Python «Программирование — и точка». Не буду ссылаться на создателей, чтобы не обвинили меня в рекламе, по названию найти можно быстро.
А теперь время дневниковых записей: как я провел январь.
Первые «умные слова»
В моем экспресс-курсе не обошлось без обзорной лекции о базовых вещах. Что такое компьютер, я более-менее представлял. Думал, что совсем заскучаю, но получил в свой словарь два новых термина: «компилируемый язык» и «интерпретируемый язык». Следом в зачет пошел одобрительный кивок друга-программиста — когда за пивом поведал ему новость о своем курсе и вывалил эту пару определений. И это мне еще про Python ни слова не сказали!
Среда разработки
На курсе использовали среду PyCharm. Раньше я использовал среды разработки только «в режиме просмотра», чтобы, будучи гострайтером, копипастить чужой и непонятный мне код в чужие же посты. Теперь я встал на место тех самых экспертов и должен сам врубаться, что вижу в редакторе.
Здесь и далее я буду отражать свои эмоции от обучения. Они адресованы в первую очередь тем, кто делает первые шаги в программировании, как я, или вообще сомневается в этой затее. Так вот: современные среды разработки — это восторг. PyCharm сам готовит все необходимое для работы, нужно только скачать Pycharm и установить его (по дефолту это бесплатно). Цветовое выделение кода срабатывает на лету; со временем я запомнил, как должны выглядеть те или иные слова, что я вбиваю, и неправильный цвет мгновенно напоминал мне об опечатке или другой проблеме. А еще PyCharm сразу сообщает об ошибках, причем делит их на фатальные (без которых не заработает) и нефатальные («лучше так не делать, могут быть проблемки»). Максимально дружелюбная среда для работы.
Переменные, числа и математика
Пошли первые темы непосредственно о питоне. Получил пачку советов о том, как называть переменные. Правила здесь несложные, просто учту, что переменных может быть много и поэтому нужно называть их осмысленно. Но при этом не растекаться, потому что писать их придется часто. Написал hello world — бонус к мотивации!
Числа были вынесены отдельной темой. Точнее, типы чисел. Показалось, что это тема, скорее, для общего развития: концепциям, которые я осознавал и раньше, просто дали определения.
Условные конструкции
Начались задачи. Простые математические задачи на базовые арифметические действия и логику. Если понимаешь, как в принципе это делать, то оформить в код будет легко. Любую задачку всегда можно запустить в среде разработки, прежде чем копипастить код для проверки. Когда можешь проверить себя самостоятельно, это успокаивает.
Условные конструкции открыли и мой первый затык. Когда мы утверждаем, что нечто равно чему-то, нужно ставить “=”. Когда мы проверяем, что нечто равно чему-то, нужно ставить “==”. Двойное равно не входило в мой лексикон чуть ли не до финального проекта. А PyCharm не писал, что это ошибка. Много раз я шерстил вроде бы нормальный код вдоль и поперек, пока в голове не улеглось.
На этом этапе пришлось первый раз идти в гугл, потому что тип данных boolean проскользнул мимо внимания. Понял, что логические значения выглядят как обычные слова без кавычек, а еще Python может воспринимать из контекста, даже если они не написаны. Прямо как в человеческом языке 🙂 Впоследствии эта тема не особо мне пригодилась, но есть ощущение, что на более сложном уровне она становится важнее.
Списки и циклы
Если мы хотим перебрать что-то в диапазоне, например, от 1 до 5, мы пишем: for i in range(1, 6). Последнее число в диапазон НЕ включается, а первое включается. Ок, смирился. Можно обратиться к элементам диапазона с конца, используя отрицательные числа. Это удобно. Но при этом первый элемент списка — он для питона не первый, он нулевой, счет с нуля идет. Особенности нумерации — это первое, что меня удивило в языке. Вероятно, на более глубоких уровнях познания это имеет логическое обоснование. Привыкаю и смотрю дальше.

К этому моменту я уже привык, что в программировании все нужно объявлять и объяснять. Окей, я объявил, например, что ввожу с клавиатуры некоторый диапазон, в котором должен работать обработчик (обработчик?) for, вот этот самый range. Но как обозначить i так, чтобы обработчик понял, что нужно двигаться по диапазону? Да никак! Эта “i” выглядела для меня так, будто появляется из ниоткуда, но при этом подразумевала именно то, что мне нужно. В других примерах я увидел, что вместо “i” можно указать “_”, а потом узнал, что подойдет любой символ.
В этот момент я был как никогда близок к тому, чтобы все бросить. Спасибо, Stack Overflow, ты прекрасен! И спасибо другим ребятам, что проходили курс: в ответ на мое нытье они признались, что до циклов еще не дошли, порадовались моему прогрессу и вовремя приподняли мотивацию.
Функции и рекурсия
Объединил их в один раздел, потому что проскочил обе со всеми домашками быстро. Спойлер: это подвело меня в финальном проекте. Кроме того, я, кажется, не понял до конца, что нужно писать после названия функции в скобках, когда мы объявляем ее через def. Но этот пробел не помешал мне с заданиями, которые, видимо, были слишком простые.
Рекурсия, как концепция, показалась очаровательной. Вдохновила на внеклассное чтение, провел весь вечер, залипая на фракталы 🙂
Структуры данных
Здесь я почувствовал, что делаю какие-то реально полезные вещи. Некоторые домашки были связаны с обработкой произвольных текстов. Да я целый MVP «Антиплагиата» вот этими руками сваял! Помимо синтаксиса, нужно было усвоить понятие итерируемости, и дело в шляпе. Ах да, в памяти осталось, что кортежи очень нужны, но постигну их подлинное величие я когда-нибудь потом.

Классы
Курс клонился к завершению, и классы в нем рассматривали, как мне показалось, на базовом уровне. Вероятно, они становятся нужны в гораздо более масштабных проектах, чем те, с которыми я столкнулся в домашках. В заданиях по классам нужно было только продемонстрировать, что я понял синтаксис и смысл понятия. Ценнее здесь был ознакомительный микромодуль про ООП и другие парадигмы программирования. Возможно, я когда-нибудь копну эту тему глубже, но к тому моменту я уже очень хотел приступить к финальному проекту.
Модули
Классическое начало Fallout представляете? Вспомните момент, когда вылезаешь из убежища/пещеры в совершенно новый, открытый мир — где не знаешь, чего и ждать, так что ждешь всего и побольше. То же самое и с модулями Python. Целая вселенная возможностей оказалась на расстоянии строчки-двух импорта. Таким же когда-то мне представлялся мир модов на скайрим, но кайфа от побед в питоне я получил больше 🙂
Для финального проекта я подгрузил функцию выбора случайного элемента списка. И Tkinter.

Итоговый проект
Курс не включал гайдов по итоговому проекту, но я знал, что согласно плану создателей курса, я должен был сделать тренажер с флеш-картами для изучения иностранного языка. Это когда тебе дают определение слова, а ты должен написать, что это за слово. И так много-много раз в случайном порядке до полного запоминания. К тому моменту я закончил прекрасную игру Yakuza 0, богатую новыми для меня словами и фразами на английском. В итоге выписал штук 80 — база готова.
Tkinter я кое-как осваивал уже сам, по многочисленным гайдам в Сети. Предварительно отрисовал простенькую блок-схему с user journey. Помимо рандомного выбора определений поставил ограничение на 20 карточек за сессию и подсчет правильных ответов — с выдачей какого-нибудь игрового персонажа в зависимости от результата.
Думаю, вы представляете, как это примерно должно работать. У меня получилось где-то 80 строчек кода (не считая словарную базу). В них входило 10–15 модулей (графических элементов) Tkinter и три функции — проверка ответов с подсчетом результата, переход на следующий вопрос с подсчетом показанных карточек, создание финального сообщения на основе числа верных ответов.
Самое классное здесь не то, что я сделал проект сам с нуля, нет. Самое классное — что в начале работы я не имел представления о том, как будет выглядеть большая часть проекта. Всё вырисовывалось постепенно, за каждым поворотом к цели я открывал что-то новое, переписывал, переставлял, стремился к тому, чтобы всё вышло по ТЗ. И оно вышло, да! Я смог сделать из этого готовое приложение — можно было показать его даже без пайчарма.
К чему всё это?
Все истории успеха начинающих программистов строятся по одному шаблону. Я и сам написал таких не один десяток. На сцену выходит лирический герой, вызывает сострадание, принимает волшебную таблетку программирования — и вот перед нами лучезарный рыцарь в сияющих IT-доспехах. Окей, таков путь.
Моя сюжетная арка обошлась без диснеевских штучек и даже в масштабе единственного персонажа не привела к особым переменам. Я продолжу заниматься тем, что умею вроде бы неплохо — мне это нравится. Но я просто не смог оставить без внимания то ощущение прекрасного, тот эмоциональный подъем, что дало мне знакомство с программированием.
Надеюсь, и в вашей работе всё еще находится место таким эмоциям. Успехов!
- python
- курсы
- обучение программированию
Как я стал Python-разработчиком с нуля с з/п 100k в месяц
Прежде чем я стал Python-разработчиком, я работал охранником, барменом, помощником инженера на кабельном заводе, затем устроился в фирму по ремонту компьютеров. Иногда брал заказы по настройке домашних компьютеров, и даже не думал о том, что я когда-нибудь стану программистом. Зарплата на всех этих работах была максимум 50k, что естественно меня не устраивала (была ипотека, на которую уходила половина зарплаты).
2K показов
2.7K открытий
Уволился с последней работы, и так вышло, что мне знакомые помогли в трудоустройстве в отдел внедрения (небольшая аналитическая компания), но с обязательным условием – мне дали 4 месяца на то, чтобы я изучил основы Python, Linux и SQL. Сказали, что будут тестовые испытания, и если я их пройду – возьмут в штат на позицию джуна. На тот момент мне было 32 года, согласитесь, возраст весьма солидный, чтобы начать свою карьеру в IT.
Это условие сподвигнуло меня ежедневно до глубокой ночи изучать требуемые технологии, иначе не видать мне нормальной работы. Я понимал, что в ближайшее время такого шанса у меня не будет, поэтому начал учиться в тот же день, как мне сообщили о новой работе.
С чего я начал обучение? Для начала мне нужно было найти список всех доступных учебных материалов по языку Python. Открыл Яндекс, вбил запрос “Python обучение с нуля”, прошерстил с десяток статей, больше всего меня устроила вот эти:
- https://professii.su/programmirovanie/python-razrabotchik.html
- https://ru.stackoverflow.com/questions/420125/Книги-и-учебные-ресурсы-по-python
Там много интересной информации по Пайтону + огромный список учебных материалов для самостоятельного обучения, оформленного в удобную табличку. Пересмотрел их все и для себя подобрал следующие обучалки:
- https://stepik.org/course/58852/
- https://stepik.org/course/68343/
Это 2 бесплатных курса, которые научат кодить даже домохозяйку (это не шутка, там реально очень разжевано всё расписано). Первый курс прошёл за 2 недели, второй за 3 недели. Чтобы не сдаться, нужно, чтобы у вас вошло в привычку садиться за учёбу хотя бы 1 час в день, тогда вы увидите результаты.
Итак, основы языка были изучены, но знаний всё равно было недостаточно. Много чего не знал (типа ООП и прочих премудростей). А ещё мне хотелось реальной оценке своих знаний. Поэтому подобрал себе платный курс одной известной онлайн-школы, где помимо языка Python обучали Git, SQL и Docker. Это самый простой способ получить структурированные знания за короткий период времени. Время шло, впереди были неизвестные мне тестовые задания и мечта о работе программистом.
Скажу сразу, курс я проходил быстро, так как там не было дедлайнов, а у меня за плечами был кое-какой опыт программирования благодаря Степику и просмотру видео на Ютубе. Крайне советую видеолекции от Тимофея Хирьянова.
Учился по 10-14 часов в день, тратил свободное время на сон и еду, благо моя девушка всё понимала и поддерживала меня во всём. Что не понимал – гуглил, читал официальную документацию, смотрел видео на ютубе, читал статьи на Хабре. Моя задача была овладеть хотя бы 50% курса (он сам длился около года), чтобы не ударить в грязь лицом на собеседовании. Иногда встречались реально тупиковые задачи, над которыми приходилось биться по 2-3 дня. Но вдруг что-то в голове щёлкает и всё становится понятно. Это невероятное чувство, реально кайф!
Можете и не проходить платные курсы, у меня поджимало время и мне надо было быстро получить недостающие знания с проверкой моих знаний грамотным специалистом. Думаю, если вы неспеша будете обучаться по бесплатными материалам, то чтобы устроиться стажёром вам потребуется где то 10-12 месяцев ежедневной учёбы по 3-4 часа. Но лучше не лениться, иначе будет ох как тяжело взять себя в руки. Если хотите отдохнуть – позанимайтесь в этот день хотя бы 1 час и идете отдыхать. Это будет лучше, чем вообще ничего не делать и потом заставлять себя сесть за компьютер.
Через 2,5 месяца обучения нашёл типовые тесты на собеседованиях, и по нескольку раз их прорешал – оставалось пара недель до даты X. Например, это такие вопросы, как:
- В чём разница между списками и кортежами?
- Как производится отладка программы на Python?
- Что такое декораторы и когда их стоит использовать?
- Что такое @classmethod, @staticmethod, @property?
- Что значит *args, **kwargs и зачем их нужно использовать?
- В чём разница между многопроцессорностью и многопоточностью?
- Как можно использовать тернарные операторы в Python?
… и множество практических заданий по написанию простых программ на Python. Это нужно изучить и прорешать в обязательном порядке, а лучше по 2-3 раза. Вот вам статья для размышления.
Что в итоге? Собеседование прошёл без проблем, вопросы были типовые, а тестовые задания были по аналогии, которые я уже решал несколько раз. Счастья не было предела! На работе меня приняли радушно, я писал код под контролем наставника, который мне очень сильно помог. Разумеется, к основному коду меня не пускали, а всю мою работу проверяли по нескольку раз. Но это было первые 5 месяцев, затем мне начали доверять некоторые куски кода в проекте.
Проработав 7 месяцев мне подняли зарплату – к этому времени у меня на руках был диплом об образовании (я как раз закончил курс) и неплохой опыт разработки. З/п в среднем 100k в месяц, зависит от курса валют. Несмотря на это я до сих пор учусь программированию (изучаю фреймворк Flask, библиотеки NumPy и Retrying, и бэкенд — Django, Модель OSI), так как понимаю, что моих знаний явно недостаточно для позиции мидла, куда я очень стремлюсь.
Возможно, мне просто повезло, но думаю, моя история будет вам хоть немного полезна, если вы подумываете сменить направление в работе и стать айтишником. Не можете заставить себя учиться — купите онлайн-курс и вам придётся его пройти полностью, ведь вам будет жалко потраченных денег.
Вакансий на Пайтон-программиста реально много, на март 2023 года на hh.ru опубликовано более 10 000 предложений работы. Так что дерзайте, всё у вас получится!
P.S. Полезные материалы для тех, кто хочет стать Python-программистом:
- «Официальная документация» — это, понятное дело, твое первое место для ознакомления с Python. Но будь готов, что там можно утонуть в океане технических терминов и синтаксических конструкций.
- PEP 8. Здесь описаны рекомендации по стилю написания кода на языке Python. Не забывай, что читаемость кода — это очень важно!
- HackerRank — сайт для тренировки и проверки навыков программирования на Python. Тут тебе и задачки, и курсы, и всякие тесты.
- PyCheckIO — это как игра на выживание, только на Питоне. Здесь тебе предстоит решать задачи, которые проверяют твои знания языка программирования Python. Если ты не сдаешься перед сложными задачами, то этот интерактивный тренажер — для тебя!
- CodeWars — это как попасть на поле боя, только вместо оружия — Питон. Здесь тебе будут предложены задачки по программированию на Python. Но осторожно, некоторые из них могут быть очень сложными!
- Самоучитель Python — это как библия для начинающих программистов на Питоне. Здесь ты найдешь все, что нужно для изучения языка программирования, начиная от основ и заканчивая продвинутыми техниками.
- https://python-scripts.com/ — здесь много полезных статей про Python, которые помогут тебе разобраться в сложных темах.
- Адаптивный тренажер Python — это как тренировка на спортивной площадке, только вместо отжиманий — программирование на Питоне. Ты будешь решать задачки, которые будут увеличивать уровень твоих знаний и навыков в Python.
- Checkio.org — это как путешествие в цифровой мир, где ты будешь решать задачки на Python. Тут есть возможность получить комментарий от самого Гвидо ван Россума! Ты сможешь узнать, что думает создатель этого языка о твоих решениях задач.
- Projecteuler.net — это как сборная солянка из задач на математику и программирование на разных языках, включая Python. Здесь ты найдешь множество интересных заданий, которые помогут тебе улучшить свои навыки в программировании и математике. Но будь готов к тому, что многие из них будут очень сложными и потребуют от тебя много усилий и терпения.
- Codingame — это отличный сайт для тех, кто любит игры и хочет научиться программированию. Здесь ты найдешь тысячи увлекательных проектов для начинающих, которые помогут тебе освоить программирование и при этом управлять космическим кораблем и выполнять интересные миссии.
- LeetCode — еще один крутой сайт для тех, кто хочет улучшить свои навыки в программировании. Здесь ты найдешь множество задач, которые разбиты на три категории сложности.
- Computer Science Center — это курс видеолекций, который позволит тебе изучить Питон и компьютерные науки. Этот курс предоставляет все необходимые материалы, чтобы выучить Питон, а также затронуть темы, связанные с компьютерными науками. Обязателен к изучению!
- Видеолекции «Алгоритмы и структуры данных на Python 3»
- Сборник примеров — это неплохой ресурс для тех, кто хочет научиться программированию на Питоне.
- informatics.msk.ru — это еще один отличный ресурс для тех, кто хочет научиться программированию на Питоне. Здесь ты найдешь курсы с задачами на Питоне, которые помогут тебе улучшить свои навыки программирования.
- Сайт с олимпиадными задачами — прокачивай свои навыки и подготовься к собеседованиям.
- Онлайн-тренажер по Python — получай реальный опыт программирования и тренируйся на практике.
- Тесты от https://skills4u.ru/school/informatika/python/ — еще один онлайн-тренажер, где ты сможешь проверить свои знания Python.
- PythonTutor — бесплатный курс для начинающих, работающий прямо в браузере. Ты сможешь изучить Python с нуля.
- http://www.kodesource.top/python-exercises/ — отличный ресурс для начинающих, где ты найдешь много полезной информации.
- Сборник задач с решениями — решай задачи и прокачивай свои навыки программирования.
- Timus Online Judge — архив задач с проверкой решений.
- Сборник упражнений и задач по основам Python для начинающих — прокачай свои знания Python.
- Клавиатурный тренажер — попрактикуйся в наборе кода на Python.
- Хендбук по Python от Академии Яндекс.
Полезные книги:
- «Изучаем Python» от Марка Лутца — здесь ты найдешь всё, что нужно знать, чтобы стать настоящим Python-гуру! В книге есть и программирование игр, и визуализация данных, и создание веб-приложений. Книга — Библия по Python.
- «Программируем на Python» от Майкла Доусона — это книга для начинающих. Здесь пошагово описаны основы языка, а также приводятся примеры простых программ.
- «Программирование на Python 3. Подробное руководство» от Марка Саммерфилда — эта книга написана очень доступно, и в ней подробно описываются основы языка. В книге есть и упражнения, чтобы закрепить знания.
- «Совершенный код» от Стива Макконнелла — хоть эта книга и не о Python, но здесь есть много полезных советов по написанию хорошего кода на любом языке программирования. Если ты хочешь писать красивый и эффективный код, то обязательно загляни в эту книгу.
- «Python. Подробный справочник» от Дэвида Бизли — эту книгу можно использовать как справочник, чтобы быстро находить ответы на вопросы. Здесь подробно описаны все функции и методы, которые есть в Python.
Надеюсь мой опыт будет кому-то полезен. Будут какие-нибудь вопросы — пишите в комментариях к записи, обязательно отвечу.
Моя история в IT: как самостоятельно изучить JavaScript и Python, чтобы осуществить свою мечту
Из этой статьи вы узнаете, как изучить Python и JavaScript самостоятельно. Личный опыт разработчика, рекомендации книг и онлайн-курсов.
Я закончил университет по специальности «Специалист по рекламе и связям с общественностью». Еще во время учёбы меня часто посещали идеи создания различных приложений и даже устройств. В один момент появился друг, который занимался мобильной разработкой. Я ему рассказал о своей идее, мы решили попробовать её реализовать. Я спроектировал UI приложения, придумал рекламу и вариант коммерциализации, на друге была разработка. Продукт, к сожалению, мы не выпустили: не хватило опыта, людей, времени. Однако ещё на этапе проработки идеи у меня всё чаще возникали мысли стать разработчиком.
Но путь к разработке оказался тернистым. Во время обучения в университете и после него я поработал на самых разных позициях.
Промоутер визиток по подъездам -> дворник -> PR -менеджер, менеджер по продажам -> графический дизайнер -> event-менеджер, графический дизайнер -> PR-менеджер, графический дизайнер -> графический дизайнер -> менеджер по проектам -> менеджер по проектам, помощник бизнес-девелопера -> аниматор/инструктор в пейнтбол-клубе -> помощник SEO-специалиста -> разметчик данных -> Python-разработчик.
За 5 лет работы я перепробовал многое, но меня всегда тянуло в программирование, которое я почему-то боялся освоить.
Никогда не хотел стать программистом только из-за того, что платят много (опять же, не везде так). В разработке меня привлекает комьюнити, а также реализация себя и своих идей, которые, возможно, могут помочь другим людям. Деньги — как приятный бонус за потраченное время и достижение определённых целей.
Как я учил JavaScript самостоятельно
Я начал учить JavaScript, пока работал разметчиком данных. Хотел попасть в команду разработчиков, а без знания JS там просто делать было нечего. Сначала очень долго искал информацию о предмете изучения, доставал с вопросами всех, до кого дотянутся руки, и задавал им вопросы касаемо их способов изучения языка. После всё структурировал: сохранял закладки, делал заметки, составлял списки и т.д.
В итоге мне подсказали очень крутую книгу. Я забил на всё, что делал ранее, и начал учиться по ней: «Выразительный JavaScript», автор Марейн Хавербеке. Из этой книги я получил свои основные знания по JS. Также пользовался онлайн-учебником JavaScript. Спасибо Илье Кантору и команде за этот проект — там много полезной теории и куча практики. На YouTube смотрел уроки Владилена Минина — у него классный канал, который поможет как новичку, так и продолжающему изучать язык.
Забавно, но при изучении JavaScript я постоянно поглядывал на Python. Как оказалось, не зря.
Подготовка заняла 3 месяца. Затем я выполнил задание и прошёл собеседование. Так получилось, что попал в команду, где были одни питонисты. Пришлось учить Python. Понравилась простота языка, большое количество источников для обучения и неограниченность в применении — например, в робототехнике, которая мне интересна как хобби.
Как я учил Python самостоятельно
- A Byte of Python, автор Swaroop Chitlur (перевод Владимира Смоляра).
- «Изучаем Python. Программирование игр, визуализация данных, веб-приложения», автор Эрик Мэтиз.
- «Грокаем алгоритмы», автор Адитья Бхаргава.
- «Погружение в Python» от МФТИ и Mail.Ru Group на Coursera.
- «Программирование на Python» и «Python: основы и применение» от Bioinformatics Institute на Stepik.
- «Python для решения практических задач» от Computer Science Center на Stepik.
- Adaptive Python от JetBrains на Stepik.
- Канал Тимофея Хирьянова — это преподаватель кафедры информатики МФТИ, который выкладывает свои лекции и занятия в открытый доступ.
- Канал АйТиБорода — очень познавательно и вдохновляюще, а также помогает найти источники для обучения. Конкретно по Python рекомендую видео «Олимпиадки, асинхронность и удалённая работа / Всё о Python / Интервью с Python Developer».
Для практики можно попробовать решать на Python задачи из Проекта Эйлера.
Я считаю себя уже опытным новичком, поэтому, думаю, могу дать несколько советов, которые помогут и вам:
- Пишите каждый день на том языке, который выбрали для изучения. Что-то небольшое, хоть по функции в день, чтобы выработать привычку писать код.
- Читайте чужой код. Тут, как и в дизайне, нужна насмотренность, плюс увиденное можно применить в своей работе.
- Учитесь искать ответы на вопросы в интернете. Как сказал мой коллега: «Программист от обычного человека отличается тем, что лучше гуглит». Звучит банально, но зачастую очень сильно помогает в работе, когда нет возможности уточнить у коллег, ну и +100 к самостоятельности.
- Окружайте себя программистами. Так у вас появится ещё больше мотивации для развития своих навыков. Возможно, зародятся совместные проекты, где вы сможете применить полученные знания на практике.
- Записывайте и структурируйте свои идеи и не бойтесь делиться ими с окружающими.
- Не бойтесь показаться глупым. Задавайте вопросы, много вопросов. Это очень крутой способ саморазвития.
- Не упускайте возможность и не бойтесь стать ментором для новеньких. Этот шаг очень прокачает ваши навыки объяснения, вы обязательно сами узнаете много нового.
И главное — верьте в себя и не сдавайтесь на пути к своей мечте!
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Если вы хотите стать Python-разработчиком, посмотрите также дорожную карту для тех, кто изучает язык с нуля.
