План-карта по быстрому обучению Python c нуля до профессионала
Выучить Python можно быстро. Насколько быстро — зависит от того, чего конкретно вы хотите достичь с его помощью и сколько времени можете выделить на регулярное изучение и практику. Профессионал с десятилетним стажем, который обучает языку последние пять лет, составил roadmap из восьми последовательных этапов обучения для всех начинающих программистов.
Курс Project Manager.
Впроваджуйте покроковий алгоритм управління проєктами вже зараз. У цьому вам допоможе Павло Харіков — Head of IoT у Veon Group (Kyivstar).
Эта статья — пересказ оригинальной статьи с нашими дополнениями.
Сначала хочу сделать некоторые предположения о вас и причинах, которые побудили прочитать эту статью. Вот на что мы рассчитываем на старте:
-
У вас практически нет опыта изучения Python.
Курс Frontend.
Онлайн курс з працевлаштуванням, ставай суперніндзя, який може з нуля створити сайт.
Этот материал написан для начинающих. В нем есть советы и стратегии, чтобы любой мог изучать Python самостоятельно и максимально эффективно. Но если у вас возникнут трудности при изучении, то хороший ментор поможет вам в изучении.
Насколько быстро можно выучить Python
Если вас интересуют базовые основы программирования на Python, то обучение может занять не более трех-четырех недель при регулярной практике. Если же вы заинтересованы в освоении Python для выполнения сложных задач или реальных проектов для смены профессии, то это займет уже гораздо больше времени.
У кого-то на это уходит пару месяцев, но обычно гуманитарий овладевает языком программирования (при должном старании) примерно в течение года. В этой статье приведены советы и лучшие ресурсы, которые помогут получить знания по программированию на Python в максимально короткие сроки.
Если вы задаетесь вопросом, сколько будет стоить изучение Python, то ответ будет: «зависит от ситуации». В интернете есть большой выбор бесплатных ресурсов, не говоря уже о различных книгах, курсах и платформах, которые опубликованы в электронном виде специально для начинающих. Но в целом, можно сказать, изучение языка программирования — это довольно бюджетное увлечение.
Изучайте «Питон» играючи
Другой вопрос, который может возникнуть: насколько сложно выучить Python? Это тоже зависит от ситуации. Если на старте у вас есть опыт программирования на другом языке, например, R, Java или C++, то вам, скорее всего, будет легче быстро выучить Python, чем тому, кто раньше не программировал вообще.
Изучение такого языка программирования, как Python, похоже на изучение естественного языка. Сначала вы запоминаете базовую лексику и изучаете правила синтаксиса . Со временем добавляете в свой репертуар новые слова и пробуете новые способы их использования. С изучением Python все то же самое.
Курс Комерційний директор.
Зосередження на практичних завданнях та послідовному аналізі проектів замість великої теорії. Реалізуй свої мрії про керівну посаду після завершення курсу.
Сейчас вы уже думаете: «Здорово! Можно выучить Python быстро, дешево и легко. Просто скажите, что читать, и направьте меня по нужному пути». Не так быстро! Есть еще четвертая вещь, которую нужно учесть, и это то, как именно учить Python.
Исследования в области обучения показали, что не все люди учатся одинаково. Одни лучше всего учатся, когда читают что-то самостоятельно, другие — когда видят и слышат (иногда — лучше в группе из единомышленников). Некоторым нравится учиться в игре, а не на курсах или лекциях. Изучая приведенный ниже список ресурсов, учитывайте свои предпочтения в обучении.
А теперь приступим к работе. Ниже приведены восемь базовых советов, которые помогут быстро выучить Python. Это общая пошаговая стратегия, которую можно дополнять
ИЗУЧИТЕ ОСНОВЫ PYTHON
Для начала надо изучить основы. Без их понимания вам будет трудно работать над сложными проблемами, проектами или сценариями использования. Примеры основ Python включают такие направления:
- Переменные и типы.
- Списки, словари и множества.
- Основные операторы.
- Форматирование строк.
- Основные операции со строками.
Курс С++ для GameDevData analyst.
Комплексний курс, який навчить кодити на C++ з нуля, отримай необхідні навички щоб заволодіти затребуваною мовою програмування.
Все эти основы можно быстро изучить на различных сайтах: docs.python.org, RealPython.org, stavros.io, developers.google.com, pythonforbeginners.org. Или записаться на специальный курс от наших друзей Hillel и Powercode. Они качественно подают информацию и объясняют на примерах.
Подробнее см. раздел «Веб-сайты» ниже.
ОПРЕДЕЛИТЕ ЦЕЛЬ ОБУЧЕНИЯ
Прежде чем начать изучать Python, определите цель своего обучения. Трудности, с которыми вы столкнетесь в начале, будет легче преодолеть, если вы будете четко помнить о цели. Кроме того, вы будете знать, на каком учебном материале сосредоточиться, а какой можно пропустить.
Например, если хотите изучить Python для анализа данных, то надо будет выполнять упражнения, писать функции и изучать библиотеки Python, которые облегчают анализ данных. Ниже приведены типичные примеры целей изучения Python, которые могут быть для вас актуальны:
- Анализ данных.
- Наука о данных и машинное обучение.
- Мобильные приложения.
- Разработка веб-сайтов.
- Автоматизация работы.
ВЫБЕРИТЕ РЕСУРС ДЛЯ БЫСТРОГО ИЗУЧЕНИЯ PYTHON
Ресурсы по изучению Python можно разделить на три основные категории:
- интерактивные ресурсы;
- неинтерактивные ресурсы;
- видеоресурсы.
Очные или удаленные платные курсы тоже один из вариантов, но мы их не будем рассматривать в этом посте (мы же обещали бюджетное и доступное всем обучение).
Интерактивные ресурсы широко распространились е в последние годы благодаря популяризации интерактивных онлайн-курсов, которые предоставляют практические задачи по кодингу и объяснения. А если вам кажется, что вы кодите, то это потому, что вы действительно кодите. Интерактивные ресурсы обычно доступны бесплатно или за символическую плату — или есть бесплатная пробная версия перед покупкой.
Неинтерактивные ресурсы — самые традиционные и проверенные временем, например, книги (цифровые и бумажные) и веб-сайты («онлайн-учебники»). Многие начинающие изучать Python предпочитают их из-за привычного и удобного вида. Есть множество таких неинтерактивных ресурсов, и большинство из них полностью бесплатны.
Видеоресурсы стали популярны в последние десять лет благодаря МООКам (массовым открытым онлайн-курсам) и напоминают университетские лекции, записанные на видео. Более того, они часто поддерживаются или продвигаются ведущими университетами.
Сейчас, например, на YouTube есть огромное количество видеоресурсов по различным предметам, включая программирование на Python. Некоторые из этих видеоресурсов представляют собой предварительно записанные курсы, а другие транслируются в прямом эфире. Например, компания General Assembly выпускает такой курс по Python, который охватывает основы языка за одну неделю.
Ниже собран список ресурсов, которые помогут быстро освоить Python. Они относятся к категориям, указанным выше, и охватывают как минимум основы Python. В списке отмечены звездочкой (*) бесплатные ресурсы.
И сразу замечание: привыкайте к английскому языку, это значительно поможет, когда вы перейдете к этапу поиска работы, ведь в процессе учебы вы прекрасно схватите всю терминологию на английском. Без английского языка зарабатывать на программировании довольно сложно, поэтому сразу начните учиться на английском. Это значительно улучшит ваши шансы на крутую работу.
Интерактивные ресурсы: инструменты и уроки
- CodeAcademy: одна из самых популярных интерактивных онлайн-платформ для быстрого изучения Python. Курс CodeAcademy по основам Python отлично подходит для абсолютного новичка, пройти его можно за неделю. Он поможет вам увлечься программированием на Python.
- DataCamp: короткие видеоролики от экспертов с практическими упражнениями на клавиатуре. Не уступает курсам CodeAcademy.
- *PythonTutor.com: инструмент, который помогает шаг за шагом писать и визуализировать код. Его можно использовать в паре с другим учебным ресурсом. Этот инструмент значительно облегчает изучение основ Python, поскольку вы можете визуализировать, что делает ваш код.
- * stepik.org: обалденный адаптивный тренажер. Заходите на « Степик » и находите все курсы на тему Python, это очень эффективно тренирует ваши практические навыки. Соваться туда есть смысл только после освоения базовой теории, ИМХО для контроля своих знаний нет ничего лучше.
Неинтерактивные ресурсы
Неинтерактивные ресурсы делятся на две подкатегории: книги и веб-сайты.
Книги
Большинство книг предназначены для программистов, которые заинтересованы в глубоком изучении Python, или для мастеров Python, которые ищут надежные справочные материалы («поваренные книги») или специализированную литературу. Ниже я перечислил только те книги, которые РЕАЛЬНО полезны для начинающих.
- Введение в Python, 2-е издание: єта книга сочетает в себе учебники и рецепты кода в стиле поваренной книги для объяснения фундаментальных концепций Python.
- Learn Python 3 The Hard Way: 52 хорошо разработанных упражнения для начинающих изучать Python.
- Основы Python: A Practical Introduction to Python 3: на сайте книги все сказано — она предназначена для того, чтобы вы прошли путь от новичка до среднего уровня.
- Python Crash Course, 2nd Edition: эта книга дает основы общих концепций программирования, основ Python и решения проблем с помощью реальных проектов.
Сайты
Я решил включить только те, которые имеют явное преимущество в плане удобства или учебной программы. Все эти ресурсы бесплатны.
- *Google’s Python Class: Учебники, видео и упражнения по программированию на Python для начинающих от компании, дружественной к Python.
- *Hitchhiker’s Guide to Python: Это руководство поможет изучить и улучшить ваш код на Python, а также научит настраивать среду кодирования. Поиск по сайту невероятно эффективно помогает найти то, что нужно.
- *Python для всех: Онлайн-книга, содержащая инструкцию по изучению Python для тех, кто заинтересован в решении проблем анализа данных. Доступна в формате PDF на испанском, итальянском, португальском и китайском языках.
- *Python для тебя и меня: Онлайн-книга, которая охватывает темы для начинающих и продвинутых в концепциях Python, а также знакомит с популярным фреймворком Python для веб-приложений.
- *Python.org: Официальная документация по Python. На сайте также представлены руководство для начинающих, глоссарий Python, руководства по настройке и методички.
- *Programiz in Python: Programiz содержит подробный учебник по основам Python, который действительно хорошо сделан. Он настолько крут, что не должен быть бесплатным, но бесплатен.
- *RealPython.com: Большая коллекция специализированных учебников по Python, большинство из них сопровождаются видеодемонстрациями.
- *Sololearn: 92 главы, 275 тестов и несколько проектов по основам Python, доступ к которым можно получить через мобильное приложение.
- *Tutorialspoint.com: Простой учебник по основам Python.
- *W3Schools for Python: Еще один простой учебник от авторитетного ресурса для веб-разработчиков.
Видеоресурсы
Видеоресурсы становятся все более популярными, и на то есть веские причины: они удобны. Зачем читать учебник или учебное пособие, если можно комфортно изучить тот же материал в видеоформате на компьютере или мобильном устройстве? Видеокурсы делятся на две подкатегории: предварительно записанные и живые.
Предварительно записанные курсы
- Coursera: Большой каталог популярных курсов по Python для всех уровней. Большинство курсов можно пройти бесплатно, а платные курсы сопровождаются сертификацией. Также можно просматривать курсы в мобильном приложении.
- EdX: проводит университетские курсы, посвященные конкретным областям применения Python (наука о данных, разработка игр, искусственный интеллект), а также основам программирования. У EdX также есть мобильное приложение.
- Pluralsight: Каталог видеоматериалов, посвященных основам Python, а также специализированным темам, таким как машинное обучение на Python.
- RealyPython.com: Коллекция предварительно записанных видео по основам Python для начинающих.
- *TreeHouse: Библиотека видеоматериалов по основам Python и промежуточным материалам.
- EvantoTutsPlus: восемь часов предварительно записанных видео по основам Python, а также некоторые промежуточные материалы.
- *Udacity: Предоставляет пятинедельный курс по основам Python. Также рассматриваются популярные модули стандартной библиотеки Python и другие сторонние библиотеки.
- Udemy: Библиотека популярных курсов по Python для учеников всех уровней. Сложно выделить какой-то конкретный курс. Рекомендую предварительно просмотреть несколько курсов по Python для начинающих, пока не найдете тот, который вам больше всего понравится. Также можете просматривать курсы в их мобильном приложении.
Живые курсы
General Assembly: Этот известный живой онлайн-курс от General Assembly избавляет от всех догадок или неточностей при изучении Python. В General Assembly у вас есть подготовленная и всеобъемлющая программа изучения Python, живой преподаватель, помощник, а также сеть коллег и выпускников, с которыми можно общаться во время и после курса.
РАССМОТРИТЕ ВОЗМОЖНОСТЬ ИЗУЧИТЬ БИБЛИОТЕКУ PYTHON
В дополнение к изучению языка Python полезно изучить одну или две библиотеки Python. Библиотеки — это наборы специализированных функций, которые служат «ускорителями» для стандартных задач разработки. Без них вам пришлось бы писать собственный код с нуля для выполнения специализированных задач. Например, Pandas — очень популярная библиотека для работы с табличными данными. Numpy помогает выполнять математические и логические операции над массивами.
Для описания популярных библиотек потребуется отдельный пост, а пока ознакомьтесь с этой страницей Python.org о стандартных библиотеках Python и этой страницей GitHub о дополнительных библиотеках Python.
УСКОРЬТЕ ПРОЦЕСС УСТАНОВКИ PYTHON С ПОМОЩЬЮ ANACONDA
Вы можете загрузить программу установки Python с сайта Python Software Foundation, а затем искать и загружать дополнительные библиотеки; или можно загрузить программу установки Anaconda, которая уже поставляется со многими пакетами, которые вы будете регулярно использовать, особенно если планируете использовать Python для анализа данных или науки о данных.
ВЫБЕРИТЕ И УСТАНОВИТЕ IDE
Вам необходимо установить интегрированную среду разработки (IDE), которая представляет собой приложение, позволяющее создавать сценарии, тестировать и выполнять код на Python.
Когда речь идет об IDE, правильной будет та, которой вам больше всего нравится пользоваться. Согласно различным источникам, наиболее популярными IDE/текстовыми редакторами Python являются PyCharm, Spyder, Jupyter Notebook, Visual Studio, Atom и Sublime. Сначала хорошие новости: почти все они бесплатны, так что попробуйте несколько, прежде чем остановиться на одном.
Далее «плохие» новости: каждая IDE/текстовый редактор имеет немного отличающийся пользовательский интерфейс и набор функций, поэтому потребуется некоторое время, чтобы научиться пользоваться каждой из них, чтобы наконец осознанно выбрать что-то свое.
Для новичков в Python я рекомендую кодировать в Jupyter Notebook. У него простой дизайн и упорядоченный набор возможностей, которые не будут отвлекать и облегчат практику и создание прототипов на Python. Он также поставляется со специальным дисплеем для отображения кадров данных и графиков. Если вы загрузите Anaconda, Jupyter Notebook будет предустановлен. Со временем я советую вам попробовать другие IDE, которые лучше подходят для разработки (Pycharm) или науки о данных (Rodeo) и позволяют интегрироваться (Sublime).
Кроме того, подумайте об установке обработчика ошибок или автокомплитера в дополнение к вашей IDE, особенно если вы работаете над длительными проектами. Он укажет на ошибки и поможет вам писать код быстрее. Хорошим вариантом является Kite, к тому же он бесплатный и интегрируется с большинством IDE.
ЕСЛИ СОМНЕВАЕТЕСЬ, ИСПОЛЬЗУЙТЕ GOOGLE ДЛЯ ПОИСКА И УСТРАНЕНИЯ НЕПОЛАДОК В КОДЕ
Когда вы, будучи новичком, работаете над упражнениями, примерами и проектами на Python, одним из самых простых способов устранения ошибок будет изучение опыта других разработчиков Python. Просто запустите быстрый поиск в интернете и укажите ключевые слова, касающиеся вашей ошибки.
Например, «how to combine two lists in Python» или «Python how to convert to datetime» — вполне приемлемые поисковые запросы, которые приведут вас на несколько популярных форумов, таких как StackOverFlow, Stack Exchange, Quora, Programiz и GeeksforGeeks.
СОСТАВЬТЕ ГРАФИК ИЗУЧЕНИЯ PYTHON И ПРИДЕРЖИВАЙТЕСЬ ЕГО
Это та часть, которую большинство людей пропускают, что приводит к неудачам или задержкам. Теперь все, что вам осталось, это составить расписание. Я рекомендую вам составить расписание минимум на две недели, чтобы распределить время между занятиями и обеспечить себе достаточно времени для адекватного изучения основ Python, практики кодирования в IDE и устранения неполадок в коде. Можно двигаться вперед такими двухнедельными спринтами, при этом очень важна систематичность занятий.
Часть сложности (и удовольствия) изучения Python или любого другого языка программирования заключается в устранении ошибок. После первых двух недель вы будете поражены тем, как далеко вы продвинулись, и у вас будет достаточно практики, чтобы продолжить изучение более продвинутого материала, предоставляемого выбранным вами ресурсом. По мере накопления опыта и систематичности занятий вы будете обретать все большую уверенность в том, что делаете. Пока это самообучение постепенно не станет самоподдерживающимся процессом, превратившись в еще одну (хочется верить, что полезную) привычку.
ЗАКЛЮЧИТЕЛЬНЫЕ МЫСЛИ
Мы определили минимальные сроки обучения, вы знаете, как выбрать цель обучения, у вас есть список учебных ресурсов и методов обучения, из которых реально можно выбирать, и вы знаете, какие еще соображения нужно будет учесть в процессе обучения.
Я надеюсь, что вы воспользуетесь этими советами, чтобы ускорить и упорядочить свое обучение Python!
Курс С++ для GameDevData analyst.
Комплексний курс, який навчить кодити на C++ з нуля, отримай необхідні навички щоб заволодіти затребуваною мовою програмування.
Как стать Python разработчиком. План действий для начинающих
Python — один из самых популярных языков программирования среди украинских разработчиков, имеющий широкую область применения. Язык имеет сравнительно простой синтаксис и его легко изучить, поэтому Python часто выбирают новички в качестве первого языка для входа в IT.
В рамках рубрики для начинающих «Код профессии» рассказываем о том, как выучить Python и найти первую работу. Для этого мы пообщались с опытными Python-разработчиками Владимиром Обризаном, Виталием Мирошниченко, Сергеем Галабурдой и Михаилом Кашкиным и собрали их советы в один материал.
Что такое Python
Python — интерпретируемый объектно-ориентированный язык программирования высокого уровня со строгой динамической типизацией. Разработал его в 1990 году Гвидо ван Россум.
Сфера применения языка достаточно широка. Python используют в веб-разработке, для машинного обучения и работы с данными, для автоматизированного тестирования. На Python пишут игры, сервисы, веб-приложения, крон-скрипты для бекапа, программы по юнит-тестированию, с его помощью учат нейросети. В проектах Python используются и как основной язык программирования, и для создания расширений и интеграции приложений. Также его активно используют для создания прототипов будущих программ.
Согласно последнему рейтингу языков программирования от DOU, Python — на месте среди языков, которые опрошенные ИТ-специалисты используют для работы, — на нем пишут 11,2% специалистов. Среди языков, которые используются как дополнительные, Python на третьем месте.
По этой ссылке можно посмотреть средние зарплаты Python-разработчиков с разным опытом.
На момент публикации медианная зарплата Python-разработчика составляет $2600. Зарплата Trainee: $330-900; Junior: $700-1163; Middle: $2000–3500; Senior: $4000-6000.
А здесь можно найти открытые вакансии в категории Python. На момент публикации статьи открыто 185 вакансий.
Почему язык Python стоит выбрать начинающему
Для новичков, не имеющих опыта программирования на других языках, изучение Python является хорошим способом освоить часть базовых концептов (таких как арифметические операции, разветвления, циклы, функции) языков программирования и прокачать логику.
Рассмотрим преимущества языка для начинающих по порядку:
- Python сравнительно легко выучить, у него простой и понятный синтаксис. Легко подключать сторонние библиотеки.
- Есть много литературы, образцов кода, онлайн-курсов, видео, вопросов и ответов на Stack Overflow, поэтому новичок не останется без информации.
- Большое сообщество разработчиков, поскольку Python является одним из самых популярных языков. Это облегчает поиск ментора или чата поддержки.
- У Python-разработчиков есть много вариантов развития. Этот язык используют для автоматизации рутинных дел системные администраторы, инженеры по тестированию используют Python для автоматизации тестирования вебсайтов (Selenium), программисты пишут программы для ПК (PyQT), вебсайтов (Django), вебсервисов (Flask, FastAPI и т.д.), для обработки данных (Pandas , NumPy), даже можно писать новые плагины для больших программ (QGis, Gimp). И это не исчерпывающий список!
- На рынке труда достаточно предложений работы как в Украине, так и удаленно.
Поскольку мы видим, что язык подходит для начинающих, перейдем к вопросу о том, как его изучить.
Какие технологии следует изучить в рамках Python
Прежде всего нужно выучить синтаксис языка. Важно, что язык развивается, поэтому сегодня нужно учить примеры кода, разработанные для Python 3.10 или выше.
Также следует знать:
- Алгоритмы и структуры данных, а также их реализацию в стандартных пакетах Python.
- Многопоточность (concurrency) — для того, чтобы узнать о программировании многопоточных приложений и то, почему у Python многопоточность ограничена.
- Flask, FastAPI — чтобы создать свой первый сервис для обработки HTTP-запросов.
- NumPy, pandas для работы с данными и математическими расчетами (визуализация данных, умножение матриц и т.п.).
Следует использовать следующие инструменты:
- Black — автоматическое форматирование кода программы.
- Pylint — проверка базовых правил написания кода, проектирование и подсказка типичных ошибок в коде. Это важно для начинающих, потому что сначала ошибок будет очень много, нужно, чтобы этот инструмент вовремя подсказал, где именно.
- Unittest, Pytest — автоматическая проверка программы. Хорошие инструменты, чтобы писать надежный код без логических ошибок.
- Mypy — проверка корректного употребления типов.
- Git — система управления версиями файлов и совместной работы.
Кроме того, на выбор технологий влияет запрос разработчика. Если вы планируете заниматься анализом данных или созданием искусственного интеллекта, следует изучать визуализацию и обработку данных, а также математику. Если хотите создавать приложения, нужно больше внимания уделить изучению библиотек и технологий, связанных с бэкендом, и многопоточности.
Если речь идет о профессиональном применении языка, то в разных направлениях есть свой обязательный минимум технологий.
Автоматизация тестирования: unittest, pytest, Selenium, HTML, CSS.
Программирование для ПК: PyQT.
Разработка веб-сайтов: Django, HTML, JavaScript, SQL.
Разработка веб-сервисов: Flask, FastAPI, JSON, SQL.
Как лучше учить язык программирования — на курсах или самостоятельно
Этот вопрос индивидуален и ответ зависит от возможностей, времени, желания и других факторов. Можно выучить язык самостоятельно, на курсах или во время стажировки в компании.
Чтобы легче определиться с тем, как лучше учиться, поговорим о преимуществах и недостатках каждого из способов.
Самостоятельное обучение
Достоинства:
- Материалов в интернете много, и есть огромный выбор доступных и качественных гайдов.
- Это бесплатно или дешево (по стоимости книги или подписки на определенный ресурс).
- Скорость и темп обучения вы контролируете сами, можете заниматься, когда вам удобно, и не подстраиваться под кого-либо.
- Если у вас уже есть опыт в разработке, сможете потратить меньше времени на изучение языка, чем если бы пошли на курсы, продолжающиеся полгода или год.
- Можно выбирать формат потребления информации — видео или текстом.
Недостатки:
- Без ментора может быть сложно распознать и понять свои ошибки, а с каждой последующей задачей может снижаться и мотивация к обучению.
- Сложно разобраться, что и за чем учить, где и как найти необходимые ресурсы.
- Сложно понять, достигли ли вы уже уровня, с которым можно идти на стажировку или искать работу.
- Изучение языка может затянуться, если нет навыков самоорганизации.
Опытные разработчики советуют найти ментора, если вы выбрали путь самостоятельного изучения языка. Поскольку на определенном этапе вы можете попасть в тупик и не найти решения. Кроме того, иногда самому трудно увидеть свои ошибки, а ментор подскажет, как сделать код более чистым и качественным, объяснит особенности его написания на примере каждой отдельной ситуации. Впрочем, хороший ментор — это дорого.
Курсы
Достоинства:
- Вы находитесь в коллективе людей, которые изучают то же самое, могут поделиться знаниями и опытом, помочь избежать блокеров или проблем.
- У вас есть преподаватель или ментор, который может ответить на ваши вопросы.
- Вы попадаете в окружение мотивированных людей, что позволяет поддерживать надлежащий уровень вдохновения.
- График занятий на курсе не даст вам «забить» на обучение.
- Если курсы проводит IT-компания, есть большие шансы, что вас научат именно тому, что нужно этой компании, и вы сможете претендовать на стажировку или должность в ней.
Однако разработчики советуют серьезно отнестись к выбору курсов: читать отзывы, расспросить тех, кто там учился, узнать достижения учеников, будущего преподавателя. Больше информации о том, какие в Украине есть IT-курсы и как их выбрать, вы можете найти на DOU по тегу «курсы». Советуем обратить внимание на статью «Инструкция по выбору IT-курсов для начинающих».
Недостатки:
- Курсы — это дорого. Длительные курсы могут стоить как семестр обучения в университете, а такие деньги есть не у всех.
- Если вы недостаточно мотивированы, учиться будет трудно, а отстав от остальных есть большой шанс все бросить.
- Курсы не гарантируют трудоустройства и карьеры (самостоятельное обучение тоже не гарантирует, но вы хотя бы не платите за это деньги).
- Курсы могут длиться долго, около года.
- На обучение нужно будет находить время и подстраиваться под график.
- Чтобы попасть на бесплатные курсы при IT-компаниях, нужно иметь базовые знания и часто хорошее владение английским.
Полезные ресурсы для изучения Python
«Learning Python» Марка Лутца. Есть два тома: первый рассказывает о синтаксисе и базовых возможностях языка, второй — об объектно-ориентированном программировании. Книга большая — более 1500 страниц, автор должен многое рассказать начинающему.
Официальный туториал языка, который изначально пошагово демонстрирует возможности языка.
Pycharm Edu. Это бесплатная версия среды для разработки для Python. Здесь много задач для начинающих с автоматической проверкой.
Learn Python in Y minutes. Справочник по изучению языка.
LeetСode. Для решения алгоритмических задач.
LearnPython. Минималистичный интерактивный туториал.
Python for Absolute Beginners! Бесплатный курс на Udemy для абсолютных начинающих.
Python Lectures. Набор лекций по Python от Rajath Kumar в виде Jupyter notebooks.
Pylot.me. Курс Михаила Кашкина для начинающих.
Полезные статьи на DOU
Как искать работу начинающему в Python
Перед поиском работы разработчики советуют реализовать два-три простеньких проекта и залить их на GitHub. Возможность на этапе отбора кандидатов взглянуть на код может стать вашим преимуществом.
Также тренируйтесь решать задачки и будьте готовы это делать во время интервью. Не отказывайтесь выполнять тестовое задание. Сейчас есть множество сервисов, где можно потренироваться. К примеру: LeetCode, Codewars, HackerRank.
Подтяните свой английский. В реалиях украинского IT-рынка хороший английский значительно увеличивает шансы найти работу.
Еще одним альтернативным источником для опыта может быть открытый код программного обеспечения. Периодически, проекты с открытым кодом имеют задачи для людей без опыта, но с желанием работать. Иногда такую работу даже оплачивают — вам нужно серфить GitHub в поисках интересных проектов и полезного опыта.
✅ Что следует указать в резюме
- Должность, на которую вы претендуете.
- Технологии, с которыми имели дело, даже если это стандартные пакеты Python.
- Все выполненные задачи с указанием технологий и пакетов. Залейте свой код в публичный репозиторий GitHub и укажите ссылку. Например: «Написал программу, которая читает CSV-файл выписки с карточного счета «ПриватБанка» и делает аналитику по разным группам расходов. Результат в виде Excel-файла или PNG-графика. Использовал пакеты: CSV, pyexcel, Matplotlib, pytest, Pylint.
- Стажировка, если где-то проходили. Опишите, что там делали, какие были задачи и чего добились.
- Курсы и обучение, образование. Они не гарантируют ваших знаний, но показывают рекрутеру, что вы хотя бы ориентируетесь в сфере.
- Английский язык — его знания на старте карьеры могут компенсировать пробелы в понимании языка.
- Soft skills. Умение работать под давлением или в сжатые сроки, быть командным игроком или разрешать конфликты, заменить определенные процессы.
❌ О чем лучше не писать
- Опыт, который вообще не связан с позицией — не нужно в резюме на бэкенд-разработчика писать о том, как вы работали барменом, официантом и т.д.
- Негатив о предыдущей работе или коллегах — таких кандидатов стараются избегать.
- Не допускайте грамматических ошибок. Если вы сомневаетесь, попросите вычитать резюме редактора/корректора.
Больше о том, как написать хорошее резюме, читайте в этих статьях:
- Як оформити резюме, щоб конкурувати з найкращими кандидатами. Поради на реальному прикладі.
- Как помочь работодателю выбрать ваше резюме. Советы тимлида.
- Як Junior-спеціалісту створити перше резюме. Покрокова інструкція з поясненнями.
Также следует перед подготовкой к собеседованию обратить внимание на статью «Співбесіда з Python. 100+ запитань для Junior, Middle, Senior».
Работу разработчики советуют искать на Djinni и DOU. На DOU есть раздел «Первая работа» с курсами, стажировками и вакансиями только для начинающих. Также следует создать аккаунт в LinkedIn и добавить в друзья как можно больше разработчиков и рекрутеров. О том, как правильно заполнять LinkedIn-профиль, читайте здесь. После первых отказов спрашивайте у интервьюеров, что следует подтянуть.
Желаем удачи в изучении Python и верим, что у вас все получится!
Раньше мы писали о том, как изучить JavaScript. Напишите в комментариях, о каком языке вы хотели бы почитать в следующий раз.
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
Подобається Сподобалось 30
До обраного В обраному 35
Схожі статті
Як стати .NET-розробником. План дій для початківців
Ivanna Tkachuk 15 липня 2022
Як стати PHP-розробником. План дій для початківців
Ivanna Tkachuk 1 вересня 2022
Як стати Rust-розробником. План дій для початківців
Ivanna Tkachuk 28 листопада 2022
25 коментарів
Oleksandr Tykhonruk Technical Lead в private entrepreneur 17.06.2022 15:06
Черговиий клікбейтний крео рівня емсітудей, який формує якісь дивні очікування у починаючих. До чого на початку статті про те, як стати Python-розробником, приводити поточні зарплати? Це повинно якось вплинути на вибір першої мови програмування, ви серйозно? Для початку, ви забули сказати, що для розробника мова програмування, навіть основна, це у кращому випадку третина необхідних навичок. Навіть якщо у вакансії написано «Python розробник» (максимально тупо, ну але ок, це реалії місцевого ринку), від розробника все ж очікується вміння вирішувати досить широкий спектр проблем, і далеко не всі взагалі пов‘язані безпосередньо з програмуванням. Навіщо так д****и на окремі мови? Навіщо пов‘язувати зарплати з мовами? (підказка: кореляції немає. Є кореляція зі складністю завдань, які ви вирішуєте, та рівнем відповідальності; від технологій це безпосередньо не залежить).
Oleksandr Strelnykov Former Lead Editor в DOU.ua 17.06.2022 15:08
Олександре, вітаю! Все ж зарплати відображають поточні реалії ринку і можуть вплинути на вибір мови. Ми не ставимо за мету просунути думку «йдіть туди, де більше платять».
Mikhail Kashkin Python expert в Pylot 16.06.2022 20:38
Иванна, большое спасибо за приглашение поучаствовать в написании этой статьи и за вопросы, которые задали. Очень люблю работать и вообще любые коммуникации с командой ДОУ. К моему сожалению, статья на ДОУ вышла чуть раньше, чем мы успели со своими планами. В этом году вообще планы вторичны.
В дополнение к нашим профессиональным курсам на Pylot.me в июле я запускаю бесплатный вводный курс по Python’у. Специально для тех, кто еще определяется в каком направлении двигаться, возможно у меня получится убедить вас, что Python — это лучшее направление. Пока нет какой-то страницы с анонсом, но лекции будут выкладываться на моем канале www.youtube.com/. /UCzClGkSdFfjursCUsp6T_bQ. Или подписывайтесь в фейсбуке и там буду держать в курсе www.facebook.com/mkashkin
Юлія Лещенко PR & Marketing Manager в CyberBionic Systematics, ITVDN 16.06.2022 17:06
Безкоштовний курс Python Стартовий українською мовою.
Олександр Корж Senior Python Developer в UST / ITernal 16.06.2022 15:32
Посоветую еще webformyself и skillbox видео курсы, качал бесплатно с торрента.
А сколько из 185 вакансий готовы взять без коммерческого опыта? Это же статья для новичков, верно? А как этот опыт получить, если всем сейчас нужны с опытом 100+ лет?
Mikhail Kashkin Python expert в Pylot 16.06.2022 21:39
Это простой вопрос, но ответ нравится далеко не всем. Собственно причина, по которой я создал свои курсы обучению заключается в том, что большинство курсов, книжки и сайты дают только кусок теории, редко дают немного практики. Хотя при этом для того, чтобы получить полноценный навык надо 3 составляющие:
— теория, которая тянет максимум процентов на 15% от времени, которое надо потратить на приобретения навыка. Хотя кажется, что на собеседованиях вас будут спрашивать именно ней. С теорией есть известная проблема, что ее слишком много, а новичок, введя слово python на любом книжном сайте получит сотни названий. Но тут вам может помочь дерево навыков, или матрица компетенций. Курсы, которые воруют друг у друга программы, а потом дают читать джунам, не сильно помогают в этом деле.
— практика, все это слышали, все понимают. Те, кто не понял, но поймут, то поймут сразу. Меня очень неприятно удивило, что многие из бесплатных или платных платформ, которые дают практику требуют реализацию каких-то зубодробильных и замудренных алгоритмов, которые не имеют отношения к рабочей практике. Такое впечатление, что синдром советского препода перепрыгнул сразу в наше цифровое время.
— экспертное мышление. Часть, которую вообще игнорируют очень многие школы пытаясь как можно быстрее впарить свои курсы. И то, что вообще невозможно получить из учебников. Это совместное общение и совместное решение проблем с человеком который повидал некоторое дерьмо в этой сфере.
И теперь после куска этой душещипательной теории вернусь к вопросу о прохождении собеседований на вакансии джунов. Джунов без года опыта работы стараются не брать на работу. Но что же отличает этих джунов с годом опыта и тех, у кого его нет? Ну вот допустим человек прочитал книги, сделал практические проекты, даже за пиво попросил ревью своего кода у бывшего одноклассника и даже выложил код на гитхаб. Вроде бы прошелся по всем трем направлениям: теория, практика, экспертное мышление.
Помимо навыка, который называется хард-скиллом нужна вторая часть. Возможно, вы слышали, что берут на работу за хард-скиллы, а увольняют за софт-скиллы. Как открыть тикет, как закрыть тикет, что такое код-ревью, как проходят коммуникации в компаниях и какие виды их бывают. Даже банально как не опаздывать, как распознать работодателя, о котором потом будут писать на кохане.айті. Как правильно оформить резюме чтобы оно выглядело как от человека, которому можно доверять. Как не бояться проходить собеседования, какие вопросы задают, как устроен процес найма и т.д. Это все о коммуникациях и это называется софт-скиллы.
Я этому уделяю половину времени вебинаров на наших курсах. Уже накопилось часов разбора этих вопросов. Собственно, работодатель объективно не хочет тратить на них свое время. Во-первых, не везде готовы обучать новичков, а во-вторых, мало кто умеет объяснять и вообще развивает навык объяснять так чтобы было понятно, нужно быстрее грести. Проще дождаться чтобы кто-то потратил это время на человека, а потом его уже можно брать. Даже можно выдать почетную грамоту стронг-джуна.
И вот возвращаюсь к первому предложению. Оказывается, помимо учебника, чтобы стать программистом и получать триста тысяч сыров в секунду за нажатие кнопки надо еще уметь общаться, уметь производить впечатление, выглядеть как надежный партнер.
Но чтобы мои рассуждения не выглядели как какая-то сложная и непробиваемая история.
Я провел за свою жизнь много интервью думаю около 2000. Бывало, по 200 и более год, на позиции от джунов до СТО. И, конечно, проходил собеседования сам. И не однократно попадал в ситуации, когда компании приглашали собеседовать закомплексованных и неуверенных в себе людей, вместо проверки просто самоутверждались в попытке поднять свою самооценку. По сути это направленная агрессия и хорошо бы уметь с ней разбираться. Но в любом случае — это опыт. Да, вам может попасться что-то типа Интеллиас, и если вы без опыта успешных собеседований, то будете думать, что проблема в вас. Мусорных компаний в Украине много. Но вы дотачиваете свой опыт и это отражается на вас. Прохождение собеседований — это навык. Как ездить на велосипеде. У кого-то быстрее, у кого-то медленнее, а кому-то приходится этому учиться по учебнику. Но вы можете управлять процессом и потратив нужное количество часов вы сможете проехать первый круг.
Python для начинающих: дорожная карта в 2023 году
Полноценный курс Python для начинающих, который станет прекрасным самоучителем. Делаем начало программирования на Python лёгким.
Разберем обучение Python с нуля на примере дорожной карты, которую мы подготовили совместно с онлайн-университетом Skypro. Данная статья — это полноценный гайд разработчика на Python с нуля до Junior. Он подойдет и тем, кто уже начал изучение, и тем, кто только задумывается о программировании. Если же сомневаетесь в своих силах — обратите внимание на курс «Python-разработчик» от Skypro.
- Основы Python
- Синтаксис Python
- Продвинутый Python
- Популярные библиотеки и фреймворки Python — 2023
- Дополнительные материалы
- Где и как изучать Python?
Основы Python
Установка Python
Для начала перейдите на официальный сайт Python и загрузите последнюю версию Python для Windows, Linux, MacOS или другой операционной системы.
Как установить Python на Windows
Выберите на сайте Python для Windows, скачайте и запустите загруженный файл. Если у вас на компьютере установлена более ранняя версия языка Python 2 — просто удалите ее и скачайте Python 3.
Выберите путь и установите программу:
Проверьте, что всё работает:
- запустите cmd;
- введите python;
- если всё хорошо, командная строка выведет версию языка.
По умолчанию будут установлены:
- Интегрированная среда разработки IDLE.
- Документация.
- Менеджер пакетов pip.
- Стандартный набор тестов.
- Python Launcher.
Как установить Python на Linux
Для большинства сборок Linux Python идет из коробки. Проверить это можно так — откройте окно терминала и выполните команды:
- python — version;
- python2 — version;
- python3 — version.
Если по какой-либо причине на вашей системе стоит старая версия, вы можете самостоятельно скомпилировать последнюю версию Python.
Как установить Python на MacOS
Python также входит в сборку MacOS, и его можно запустить через терминал. Если же вы хотите установить самую последнюю версию — она доступна по ссылке.
Рабочее окружение
Обучение языку Python начинается с настройки рабочего окружения.
Среды разработки Python
Вот лишь несколько наиболее популярных Python IDE:
- PyCharm — это IDE, разработанная компанией JetBrains. Она предоставляет интегрированную среду для разработки Python-приложений, включая поддержку Django, Flask и других фреймворков. PyCharm имеет богатый набор функций, включая отладчик, инструменты для анализа кода и удобный интерфейс.
- Visual Studio Code — это легкий, быстрый и невероятно гибкий редактор кода, доступный на всех платформах. Отличный выбор для программирования на Python. Многофункциональная IDE включает в себя интегрированный отладчик, рефакторинг, автодополнение кода, etc.
- Spyder — IDE, которая является частью научно-вычислительной среды Anaconda. Есть множество инструментов для работы с научными вычислениями, включая визуализацию данных, анализ и т. д. Spyder имеет встроенную консоль IPython, которая облегчает отладку и выполнение кода.
- Sublime Text — легкий редактор кода, который может быть расширен с помощью плагинов и расширений для поддержки Python. Простой интерфейс, автодополнение кода и другие полезные функции.
- Atom — этот простой на первый взгляд редактор обладает богатым функционалом. Данная среда написана разработчиками GitHub с использованием Electron — фреймворка для создания кросс-платформенных десктопных приложений средствами HTML, CSS и JavaScript.
Виртуальное окружение Python
Вы можете столкнуться с тем, что вам захочется поэкспериментировать с библиотеками или модулями. Чтобы не засорять рабочее окружение, вы будете создавать отдельный проект со своими модулями под каждую задачу.
ПО для работы с виртуальным окружением можно разделить на то, что входит в стандартную библиотеку Python, и то, что не входит в нее. Наиболее популярные инструменты:
- Virtualenv — один из самых популярных инструментов для создания виртуальных окружений. Прост в установке и использовании.
- Pyenv — тулза для изоляции версий Python. pyenv. Полезен, когда на одной машине нужно сразу несколько версий интерпретатора для тестирования.
- Virtualenvwrapper — обертка для virtualenv, позволяющая хранить все изолированные окружения и управлять ими.
- Venv — входит в стандартную библиотеку Python. Появился в версии Python 3 и по функционалу похож на virtualenv.
Git
Обучение языку Python с нуля включает также изучение систем контроля версий — VCS. Именно они позволяют отслеживать и фиксировать любые изменения в коде: вы можете восстановить код в случае сбоя или откатить до более ранних версий.
Git — самая популярная VCS и мастхэв-инструмент для взаимодействия нескольких разработчиков на одном проекте. Подробнее о данной VCS вы можете почитать в нашем руководстве по командной разработке с Git.
HTTP-протоколы
HTTP-протоколы в Python-разработке используются для создания веб-приложений и веб-сервисов, которые могут обмениваться данными с пользователем.
Для работы с HTTP-протоколами в Python используется стандартная библиотека urllib, которая предоставляет функции для отправки HTTP-запросов и обработки ответов.
Также для работы с HTTP-протоколами можно использовать более специализированные библиотеки, такие как requests или aiohttp:
- Библиотека requests облегчает отправку HTTP-запросов и обработку ответов, предоставляя более высокоуровневый интерфейс для работы с протоколом. Она позволяет создавать сеансы, работать с куками, заголовками и параметрами запроса, а также обрабатывать различные типы ответов.
- Библиотека aiohttp предоставляет асинхронный интерфейс для работы с HTTP-протоколами, что позволяет создавать более производительные и масштабируемые приложения. С ней можно использовать asyncio для создания событийных циклов, работать с потоками и обрабатывать различные типы запросов/ответов.
Знание HTTP-протоколов важно для разработчиков на Python, так как это позволяет им создавать эффективные и безопасные веб-приложения.
Базы данных
Даже начинающий Python-разработчик должен быть в курсе баз данных: а именно знать, что это такое и как с ними работать.
Одной из главных особенностей использования баз данных в Python является наличие множества библиотек, позволяющих взаимодействовать с различными типами СУБД. Вот лишь некоторые инструменты для работы с базами данных в Python:
- SQLAlchemy.
- Django ORM.
- Peewee.
- Pony ORM.
Разработчик может выбирать тот инструмент, который лучше всего подходит в конкретной ситуации.
Например, SQLAlchemy предоставляет возможность создания SQL-запросов с помощью объектов Python, что позволяет создавать сложные запросы и обращаться к базам данных, используя ORM.
Django ORM является частью веб-фреймворка Django и предоставляет более простой интерфейс для работы с БД, не требуя написания SQL-запросов вручную.
Кроме того, Python поддерживает работу с базами данных NoSQL, такими как MongoDB и Redis, что может быть полезно для работы с большими объемами данных и их обработки в режиме реального времени. Библиотеки для работы с такими БД также существуют и могут быть найдены в PyPI.
Синтаксис Python
Синтаксис Python простой и легкочитаемый, из-за чего данный язык может похвастаться низким порогом входа. Именно поэтому Python преобладает в программах онлайн- и офлайн-обучения.
Типы данных
Python поддерживает различные типы данных, включая:
- Числовые типы: целые числа ( int ), числа с плавающей точкой ( float ), комплексные числа ( complex ).
- Строки: последовательности символов, определенных в кавычках ( str ).
- Булевы значения: TRUE и FALSE ( bool ).
- Списки: упорядоченные изменяемые коллекции объектов ( list ).
- Кортежи: упорядоченные неизменяемые коллекции объектов ( tuple ).
- Множества: неупорядоченные коллекции уникальных элементов ( set ).
- Словари: неупорядоченные изменяемые коллекции пар «ключ — значение» ( dict ).
Одной из ключевых особенностей типов данных в Python является то, что переменные не требуют объявления типа явным образом. Тип переменной определяется автоматически во время выполнения программы. Кроме того, Python также поддерживает динамическую типизацию: это означает, что переменные могут изменять свой тип во время выполнения программы.
Операторы и приоритетность операторов
Операторы Python делятся:
- На арифметические операторы.
- Операторы сравнения.
- Операторы присваивания.
- Логические операторы.
- Операторы принадлежности.
- Операторы тождественности.
- Битовые операторы.
Операторы сравнения, арифметические, условные операторы и циклы имеют стандартный синтаксис, используемый во многих других языках программирования. Подробнее об операторах Python на примерах вы можете узнать из данного видео.
Кроме того, Пайтон разработчик с нуля должен понимать, как работает приоритетность операторов. В выражении интерпретатор Python выполняет операторы с более высоким уровнем приоритета первыми. И за исключением оператора возведения в степень ( ** ) они выполняются слева направо.
Следующая таблица демонстрирует приоритетность — самые приоритетные операции вверху, внизу — с низким приоритетом:
Переменные
Переменные предназначены для хранения данных. Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания, может содержать алфавитно-цифровые символы и знак подчеркивания.
В Python применяется два типа наименования переменных: camelCase и underscore_notation.
onlineSchool = «Skypro» online_school = «Skypro»
Оба варианта будут верны, но учтите, что это разные переменные. Также надо учитывать регистрозависимость, поэтому переменные onlineschool и Onlineschool будут представлять разные объекты.
Закрепим, что переменные в Python объявляются без явного указания их типа, а тип переменной определяется автоматически во время выполнения программы. Плюс переменные могут изменять свой тип во время выполнения программы.
Отступы
Если в других языках программирования отступы в коде предназначены только для удобочитаемости, то в Python они очень важны.
if 5 > 2: print("Пять больше двух")
Однако в следующем случае вы получите ошибку:
if 5 > 2: print("Пять больше двух")
Учитывайте это при написании программ.
Логические операторы
Язык программирования Python очень прост для обучения с нуля, ведь его синтаксис схож с синтаксисом других ЯП. Это касается и логических операторов:
- and — возвращает True , если оба утверждения верны;
- or — возвращает True , если хоть одно из утверждений верно;
- not — обратный результат, возвращает False , если результат верен.
Условия Python и операторы if-else
Python поддерживает обычные логические условия из математики:
- Равно: а == b
- Не равно: а != b
- Меньше, чем: а < b
- Меньше или равно: a
- Больше, чем: а > b
- Больше или равно: a >= b
Эти условия можно использовать несколькими способами, чаще всего в операторах if и циклах.
А вот пример использования оператора if :
a = 33 b = 200 if b > a: print("b больше чем a")
В этом примере две переменные, a и b , используются как часть оператора if , чтобы проверить, больше ли b , чем a . Поскольку a = 33 , b = 200 , мы знаем, что 200 больше 33, поэтому выводим на экран b больше чем a .
Ключевое слово elif — это способ Python сказать: «Если предыдущие условия неверны, попробуйте это условие».
a = 33 b = 33 if b > a: print("b больше чем a") elif a == b: print("a и b равны")
В примере a равно b , поэтому первое условие неверно, но условие elif истинно, поэтому мы выводим на экран a и b равны .
Ключевое слово else улавливает всё, что не улавливается предыдущими условиями:
a = 200 b = 33 if b > a: print("b больше чем a") elif a == b: print("a и b равны") else: print("a больше чем b")
В этом примере a больше, чем b , поэтому первое условие неверно, также условие elif неверно, поэтому мы переходим к другому условию и выводим на экран a больше чем b .
Циклы
Любой курс Питон разработчика включает изучение циклов. Циклы позволяют выполнять некоторое действие, в зависимости от соблюдения условия. В языке Python есть следующие типы циклов:
С помощью цикла while мы можем выполнять набор операторов, пока условие истинно:
i = 1 while i < 6: print(i) i += 1
Цикл for используется для перебора последовательности (то есть списка, кортежа, словаря, набора или строки). С помощью цикла for мы можем выполнить набор операторов один раз для каждого элемента в списке, кортеже, наборе и т. д. Пример использования:
fruits = ["apple", "banana", "cherry"] for x in fruits: print(x)
Функции
Python также поддерживает функции, которые могут принимать аргументы и возвращать значения. Функции в Python могут быть определены как встроенные (built-in) или определены пользователем.
Обычно функция определяется с помощью инструкции def . Определим простейшую функцию:
def add(x, y): return x + y
Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y . Теперь мы можем ее вызвать:
>>> add(1, 10) 11 >>> add('abc', 'def') 'abcdef'
Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.
Классы
Классы — это основа объектно-ориентированного программирования (ООП) в Python. Классы используются для определения объектов, которые могут иметь свойства (переменные) и методы (функции).
В Python классы создаются с помощью ключевого слова class . Вот пример простого класса Person с одним свойством (имя) и одним методом (приветствие):
class Person: def __init__(self, name): self.name = name def say_hello(self): print(f"Привет, !")
В этом примере метод __init__ является конструктором класса и инициализирует свойство name. Метод say_hello выводит приветствие, используя значение свойства name. Чтобы создать экземпляр класса Person , нужно вызвать его конструктор с соответствующим аргументом.
Например, чтобы создать объект person с именем Алиса, мы можем написать следующий код:
person = Person("Алиса")
Python-разработчик, написавший таким образом класс с нуля, может вызывать методы объекта person, например:
person.say_hello() # выводит "Привет, Алиса!"
Классы в Python также поддерживают наследование, что позволяет создавать новые классы на основе существующих, добавлять новые свойства и методы. Кроме того, Python поддерживает множественное наследование, которое позволяет создавать классы, наследующие свойства и методы от нескольких родительских классов.
Методы
В Python методы — это функции, которые определены внутри класса и могут вызываться в экземплярах этого класса. Методы могут изменять состояние объекта, обращаться к его свойствам и выполнять другие операции.
Вот пример класса Rectangle , который имеет два свойства (ширина и высота) и два метода (вычисление площади и периметра):
class Rectangle: def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height def perimeter(self): return 2 * (self.width + self.height)
Метод __init__ является конструктором класса и инициализирует свойства width и height . Методы area и perimeter вычисляют площадь и периметр прямоугольника, используя значения свойств width и height .
Чтобы создать экземпляр класса Rectangle , нужно вызвать его конструктор с соответствующими аргументами. Например, чтобы создать объект rect с шириной 10 и высотой 5, мы можем написать следующий код:
rect = Rectangle(10, 5)
Теперь можно вызывать методы объекта rect , например:
print(rect.area()) # выводит 50 print(rect.perimeter()) # выводит 30
Методы могут принимать аргументы, как и обычные функции. Они также могут вызывать другие методы или обращаться к другим свойствам объекта. Кроме того, Python поддерживает статические методы и методы класса, которые могут быть вызваны на классе, но не в его экземплярах.
Продвинутый Python
На этом обучение Python-разработчика не заканчивается. Необходимо понимать, как работает язык, а для этого важно углубиться в продвинутые аспекты разработки на нём.
Функциональное программирование
Функциональное программирование в Python — это подход к написанию программ, основанный на функциях высшего порядка, неизменяемости данных и отсутствии побочных эффектов.
Python поддерживает функциональное программирование, в том числе использование анонимных функций (lambda-функций), функций высшего порядка, списковых включений, генераторов, функциональных конструкций, таких как map() , reduce() и filter() и т. д.
Пример использования функции высшего порядка map() , которая применяет функцию к каждому элементу списка и возвращает новый список с результатами:
def square(x): return x ** 2 numbers = [1, 2, 3, 4, 5] squares = list(map(square, numbers)) # применяет ф-ю square к каждому э-ту списка print(squares) # выводит [1, 4, 9, 16, 25]
Также в Python есть поддержка генераторов, которые позволяют создавать ленивые последовательности значений. Пример использования генератора для создания бесконечной последовательности чисел Фибоначчи:
def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b fib = fibonacci() print(next(fib)) # выводит 0 print(next(fib)) # выводит 1 print(next(fib)) # выводит 1 print(next(fib)) # выводит 2 # и так далее.
Эти функции и конструкции позволяют писать более чистый, краткий и выразительный код, который легче поддерживать и тестировать. Но функциональное программирование не всегда является лучшим выбором, особенно в случаях, когда нужно работать с изменяемыми данными или писать производительный код.
Лямбда-функции
Лямбда-функция в Python — это анонимная функция, которая может быть определена в одной строке кода без использования ключевого слова def . Лямбда-функция возвращает результат выражения, которое находится после оператора : .
Пример использования лямбда-функции для возведения числа в квадрат:
square = lambda x: x ** 2 print(square(5)) # выводит 25
Лямбда-функции могут использоваться вместо именованных функций, когда нужно определить функцию внутри другой функции или передать функцию в качестве аргумента в другую функцию.
Пример использования лямбда-функции в качестве аргумента map() для возведения каждого элемента списка в квадрат:
numbers = [1, 2, 3, 4, 5] squares = list(map(lambda x: x ** 2, numbers)) print(squares) # выводит [1, 4, 9, 16, 25]
Лямбда-функции могут быть полезны, когда нужно определить простую функцию без необходимости давать ей имя или использовать ее в других местах программы. Но если функция достаточно сложная или будет использоваться многократно, лучше определить ее с помощью ключевого слова def .
Мапы, списки, коллекции
Список — это упорядоченная коллекция элементов, которые могут быть изменены. Список может содержать элементы разных типов, и доступ к ним осуществляется по индексу. Например:
fruits = ['apple', 'banana', 'cherry'] print(fruits[1]) # выводит 'banana'
Коллекции — это контейнеры, которые содержат набор элементов. Они бывают двух типов: изменяемые (списки, множества, словари) и неизменяемые (кортежи, строки). Например, множество — это коллекция, которая не содержит дублей и может быть изменена:
my_set = my_set.add(4) print(my_set) # выводит
Map — функция, которая принимает функцию и последовательность и применяет данную функцию к каждому элементу последовательности, возвращая новую последовательность с результатом. Пример:
numbers = [1, 2, 3, 4, 5] squares = list(map(lambda x: x ** 2, numbers)) print(squares) # выводит [1, 4, 9, 16, 25]
Ошибки и их обработка в Python
В Python при выполнении программ могут возникать ошибки или исключения, такие как деление на ноль, попытка доступа к несуществующему индексу списка, неверное имя переменной и другие. Для этого в программах обучения на Питон разработчика с нуля предусматривается блок разбора исключений через конструкцию try-except .
Try-except позволяет «поймать» исключение и выполнить действия по его обработке, не прерывая выполнение программы. Конструкция выглядит следующим образом:
try: # блок кода, который может вызвать исключение # например, попытка деления на ноль result = 1 / 0 except ZeroDivisionError: # блок кода, который будет выполнен в случае исключения ZeroDivisionError # например, вывод сообщения об ошибке print("Ошибка: деление на ноль!")
В данном примере, если при выполнении кода произойдет деление на ноль, будет вызвано исключение ZeroDivisionError , и выполнение программы перейдет к блоку except .
Также можно использовать конструкцию try-except для обработки нескольких типов исключений одновременно:
try: # блок кода, который может вызвать исключение # например, попытка доступа к несуществующему элементу списка my_list = [1, 2, 3] print(my_list[5]) except (IndexError, TypeError): # блок кода, который будет выполнен в случае исключений IndexError или TypeError # например, вывод сообщения об ошибке print("Обращение к несуществующему элементу списка или неверный тип данных!")
I/O
В Python для работы с I/O (вводом/выводом) существуют встроенные функции и модули. Например, функции print и input используются для ввода и вывода данных в консоль:
# Вывод на консоль print("Hello, world!") # Ввод с консоли name = input("Введите ваше имя: ") print("Привет,", name)
Для работы с файлами в Python есть функция open() , которая открывает файл на чтение или запись. Функция возвращает объект типа file , который позволяет производить операции с файлом:
# Открытие файла на чтение file = open("file.txt", "r") # Чтение данных из файла data = file.read() # Закрытие файла file.close() # Открытие файла на запись file = open("file.txt", "w") # Запись данных в файл file.write("Hello, world!") # Закрытие файла file.close()
Кроме того, в Python есть множество модулей для работы с различными форматами данных, такими как CSV, JSON, XML и другими:
# Работа с модулем CSV import csv # Чтение данных из CSV-файла with open('file.csv', newline='') as csvfile: reader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in reader: print(', '.join(row)) # Запись данных в CSV-файл with open('file.csv', 'w', newline='') as csvfile: writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerow(['John', 'Doe', '25']) writer.writerow(['Jane', 'Doe', '30'])
Регулярные выражения
Регулярками называются шаблоны, которые используются для поиска соответствующего фрагмента текста и сопоставления символов. Подробнее о регулярных выражениях в Python.
Тестирование
Основная идея тестирования в Python заключается в том, чтобы написать тесты для каждого модуля или функции в отдельности и проверить, что они проходят успешно. Для этого используются специальные инструменты и библиотеки, которые позволяют запускать тесты автоматически и получать отчеты о результатах выполнения.
Две наиболее популярные библиотеки для тестирования на языке Python — unittest и pytest:
- Unittest — это стандартный модуль тестирования в Python, с которым можно писать и запускать тесты для проверки работоспособности кода и который Python-разработчик должен знать с нуля. Он содержит множество методов и атрибутов для создания тестовых сценариев, утверждений и сбора результатов тестирования.
- Pytest — библиотека тестирования в Python, которая обеспечивает более простой и элегантный подход к написанию тестов, чем unittest. Она предоставляет широкий спектр возможностей, включая автоматическое обнаружение и запуск тестов, улучшенный вывод результатов тестирования, множественные плагины и расширения, а также поддержку различных типов тестирования.
Популярные библиотеки и фреймворки Python — 2023
Data Science
- NumPy — библиотека для работы с массивами данных, матрицами и алгоритмами линейной алгебры.
- Pandas — библиотека для обработки и анализа данных, предоставляющая удобный интерфейс для работы с таблицами данных.
- Matplotlib — для визуализации данных, создания графиков, диаграмм и других типов графических представлений данных.
- Scikit-learn — содержит реализации многих алгоритмов машинного обучения, включая классификацию, регрессию, кластеризацию и другие.
- TensorFlow — обеспечивает мощные инструменты для создания, обучения и использования нейронных сетей.
Веб-разработка
- Django — высокоуровневый фреймворк для веб-разработки, обеспечивающий удобную абстракцию для создания веб-приложений, включая аутентификацию, авторизацию, работу с базами данных и многие другие функции.
- Flask — легкий и гибкий фреймворк для веб-разработки, который позволяет создавать быстрые и масштабируемые веб-приложения.
- SQLAlchemy — библиотека для работы с базами данных, обеспечивающая удобный и гибкий интерфейс для работы с различными типами баз данных.
- Requests — библиотека для работы с HTTP-запросами, которая позволяет отправлять и получать данные с веб-серверов.
- Beautiful Soup — библиотека для парсинга HTML- и XML-документов, которая обеспечивает удобный способ извлечения данных из веб-страниц.
Геймдев
- Pygame — это библиотека для разработки 2D-игр на Python. Она содержит инструменты для управления графикой, звуком и событиями, такими как нажатия клавиш и мыши.
- Panda3D — фреймворк для разработки 3D-игр на Python. Обеспечивает разработчикам высокую степень контроля над графикой и физикой игры, а также облегчает создание сложных 3D-сцен и объектов.
- Arcade — библиотека для разработки 2D-игр на Python. Предоставляет инструменты для работы с графикой, физикой и анимацией, а также поддерживает множество вспомогательных функций, таких как загрузка изображений и звуков.
- PyOpenGL — библиотека для работы с графикой OpenGL на Python. Предоставляет высокоуровневый интерфейс для создания 3D-объектов и сцен, множество инструментов для управления освещением, материалами и текстурами.
Дополнительные материалы
Книги
Изучаем Python
Изучаем Python. Программирование игр, визуализация данных, веб-приложения
Чистый Python. Тонкости программирования для профи
Подкасты
- https://podcast.python.ru/
- https://realpython.com/podcasts/rpp/ — для тех, кто владеет английским.
Также можете посмотреть и послушать полезные подкасты от MoscowPython:
Курсы
Хотите быстро освоить весь базис, представленный в нашей дорожной карте? Это легко реализовать с онлайн-университетом Skypro, который выпускает уверенных разработчиков на Python. Специальный онлайн-курс «Python-разработчик» с трудоустройством от Skypro предполагает обучение программированию на Python с нуля до профи.
Для тех, кто не хочет учиться в большой группе, предусмотрен тариф «Премиальный». Здесь будущий Python-разработчик получит индивидуальное обучение: тариф предусматривает мини-группы по пять человек.
В программу также добавлены уроки по английскому для IT-специалистов.
Где и как изучать Python?
Всё зависит от уровня самоорганизации. Самообучение хорошо подойдет людям с развитым тайм-менеджментом и возможностью дисциплинированно выполнять поставленные перед собой задачи без внешнего контроля.
Но у данного подхода есть существенный недостаток: ваш уровень знаний и навыков некому оценить. В этом случае можно оплачивать услуги ментора, который время от времени будет проверять ваши таски и давать советы.
Но есть ли смысл оплачивать одного специалиста, если есть возможность пройти полноценные курсы Python-разработчика, где вашим развитием будут заниматься опытные наставники?
Например, у SkyPro есть курс Python-разработчика с нуля. За 10 месяцев вы освоите базу, познакомитесь с необходимыми инструментами на практике, создадите 7 пет-проектов для портфолио и сможете претендовать на позицию младшего разработчика. По окончанию курса вы получите диплом о профессиональной переподготовке, а карьерные консультанты помогут правильно составить резюме и подготовиться к вопросам рекрутеров на собеседованиях.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Мы же надеемся, что статья оказалась для вас полезной. Остались вопросы? Задайте их в комментариях.
Реклама ОАНО ДПО «СКАЕНГ» LjN8JvxFj
С какого языка программирования лучше всего начать обучение новичку?
Хочу освоить новую профессию, заинтересовала ИТ сфера. Изучил разные варианты и решил начать с Java. На данный момент остановил свой выбор на двух курсах на Яндекс практикуме (Java-разработчик и Веб‑разработчик), но в момент оплаты возникли сомнения.
Все же насколько лучше начинать именно с Java, а, может, лучше с Python?
Дискуссии. Обсуждаем финансовые вопросы и даем советы друг другу
Задать свой вопрос
Что бы вы посоветовали читателю?
Отредактировано
Порекомендую два бесплатых отличных курса по основам ООП (питон). Проходить именно в таком порядке. Самые основы, синктакстис, структуры данных, циклы:
https://stepik.org/course/67/info
ООП, работа с csv/json на питон:
https://stepik.org/course/512/info
Самые лучшие курсы по программированию, которые я видела. Начните с них, ибо бесплатно, а то вдруг программирование не зайдёт, будете жалеть, что купили дорогущие курсы
Если захотите жести и алгоритмов - вот, тоже бесплатно:
https://stepik.org/org/compscicenter
Алиса, Степик топ)
Посмотри в каких областях применяется Java, а в каких Python. Что больше понравится, туда и топай. Python более человекопонятен, чем Java, но, само собой, есть свои особенности, которые могут раздражать кого-то больше, чем особенности Java. А вообще, первично умение писать алгоритмы и умение разбираться в сфере, а синтаксис вторичен
Большой разницы между java и Python для новичка нет. Единственный минус это высокий порог вхождения на позицию джуна на java в отличие от python. На java банально нужно больше разбираться в фреймворках и сопутствующих технологиях. Если нужно "по быстрому вкатиться в IT разработку", то Python наверное подойдёт лучше. И касательно курсов яндекса. Яндекс практикум как и большинство онлайн курсов дают супер поверхностные знания и просто тратят ваше время и деньги. Пара хороших книг + youtube дадут больший выхлоп(если у вас конечно есть желание, иначе никакие курсы вам не помогут).
Еldarus, ни курсы ни питон не помощники новичку. Вообще джун питонист мало кому нужен.
Еldarus, курсы дают пинок, там задачи ставят и общее направление что изучать. А так да, информации в свободном доступе более чем достаточно. Если есть мотивация и способности к самоконтролю. Можно ещё менторов поискать.
Отредактировано
Начни не с курсов, а с самостоятельного изучения. Что понравится, то и изучай. Да, Java сложнее, чем Python, но как-то люди и джавистами становятся.
Выбирать язык по простоте изучения имхо ловкушка. Проще выучить html+css+js, а человеку интересно бэкенд для банковских приложений писать, или искусственный интеллект.
Пробуй разное, выбирай то, что интересно.
Посоветую хорошо подумать совет от такого же "входящего", который уже десятый месяц в процессе. Составить в осязаемом виде список причин почему вы этого хотите, какие цели ставите, чем готовы пожертвовать. Мотивации для почитайте статьи на Хабре из серии "почему не нужны джуны". Вопрос не в языке, а в направлении. Ну и реально на рынке очень много джунов, с чем связаны низкие зарплаты на входе и большой конкурс
Веник, ну зачем вы так с человеком
Снусмумрик, он же не ассемблер ему посоветовал 🙂
Петр, все равно жестоко! Можно еще советовать Javascript, самое то для начинающих
Снусмумрик, Хотел потролить))
C# ясное дело, и невальная хрень и не супер сложно и работа есть))
rediska, в качестве первого языка лучше F#, пожалуй.
Kira, я как бы большой мальчик и могу сам решить что для меня не надо выдавать свою точку зрения за истину в последней инстанции
Bobo, всех нас денюжка интересует. И не надо выставлять это как упрёк, любой труд должен хорошо оплачиваться. За "идею" работают либо отчаянные, либо те кто имеет для себя профит не в денежном эквиваленте. Одно дело зарабатывать чем придётся и другое делать при этом то что тебе нравится.
Михаил, не с февраля, последние лет 5 такой тренд, просто потому-что условия труда в айтишке куда выше чем в целом по стране. И зарплаты, и бонусы всякие, и начальство не пинает, и коллективы дружные, потому-что в этой сфере без тесного взаимодействия просто никак. Гибкие графики и удалёнка.
Ну и конечно же востребованность на мировом рынке, одна из самых простых возможностей куда-то уехать, потому-что никаких дипломов и сертификатов айтишникам не нужно чтобы доказывать квалификацию, её доказывает твой код на гите, это тоже очень многих привлекает.
Отредактировано
Смотря, чем интересно заниматься. Я начал с Swift, очень нравится техника Apple и писать на данном языке одно удовольствие, очень прост в плане синтаксиса
Вопрос: сильно ли нужно шарить в матиматике и ее производных, что бы начать программировать?
Евгений, нужны базовые знания по типу логических операций, множеств и тд, школьный уровень
Евгений, Не сильно. Если когда-то изучали математику и алгебру в школе, то хватает. Те же производные и первообразные, синусы-косинусы вспомнить, если когда-то зал никаких проблем.
Хотя не момню, чтобы это когда-то нужно было. А вот алгоритмы, хотя бы самые важные знать нужно. Основное хорошо издожено в книге "Грокаем алгоритмы". Рекомендую. Изложено нужное, простым языком с картинками. Не изучение, а поедание мороженного! :))
Евгений, больше формальной логики, чем алгебры с геометрией 🙂
У java очень высокий порог входа, оцените свои силы и возможности заранее
У python ниже, вкатитесь быстрее, но и зп будет ниже
С джавы начинать оч сложно. Начните с Python. Без работы не останетесь, а там и спекнуться можно при желании
По мне - надо вообще с другой стороны начинать.
Надо понять - где есть места для новичков и чем вы будете привлекать "их", так как курсистов реально тьма.
А так - примеры входа и в веб и в андроид разрабротку видел . ..
Вы в курсе, что кроме разработчиков в IT сфере есть и другие специалисты?
Начни с 1С, а дальше будет пофиг. )))
Начать нужно с книги K&R язык программирования C
Выполнить оттуда все упражнения.
не знаю с какого лучше начинать, но лучше не начинать с джаваскрипта(я имею ввиду бэкенд, типа node.js). в нем такая логика, которой нет в других ЯП и переучиваться на другие будет более проблематично. я начинала с питона. я не считаю что это лучший яп, но когда вы начинаете учиться с си, например, то легко все забросить из-за сложности и непонимания для чего он вообще нужен. с другой стороны, изучив его вы больше погрузитесь в программирование. короче, нет лучших языков, просто начните делать хоть что-то. питон, го, джава наверное будут самыми простыми.
джава неплох, если уже начали учить - то продолжайте. на вашем месте я бы подумала именно о целесообразности покупки обучения - много чего есть бесплатного в интернете, тот же степик или курсера.
п с - нет правильного пути в изучении. у вас свой путь и не надо искать оптимального. на ошибках учатся. поэтому считаю подобные вопросы не особо целеобразными
1) Язык программирования просто должен нравится и все. А какой - уже от человека зависит. У меня пошла Java, но Python ну никак не моё.
Думаю не надо выбрать потому что это в списке топовых языков. Надо выбрать исходя из личного интереса. Изучите возможности каждого языка. Любой язык программирования можно выучить, если вы действительно этого хотите.
Присоединюсь ко всем ответам выше
1. Курсы от Яндекса просто пропиаренный слив денег. Куда ценнее сначала "пощупать" область бесплатно - книги, курсы на степике, видео на ютуб. Понять для себя - вообще ваше это или не ваше? Получать зп приятно, конечно, но сидеть в кресле с графиком 5/2 по 8 часов и смотреть в монитор, пытаясь понять, где ошибка в коде - занятие специфичное
2. Дамп рынка IT. Очень много джунов. Очень. Много. Джунов. Сейчас даже люди с проф образованием в ВУЗе и небольшим опытом работы разрабом ищут работу. Выводы можете сделать сами
3. Язык. У каждого языка свои нюансы. Определитесь, что нравится именно вам, но и рынок трудоустройства помониторьте. Ну и ещё python джуны сейчас и правда никому не нужны, вакансий 1 штука на 1000 откликов
Плюс независимо от выбранного вами языка, нужно будет в обязательном порядке изучать и другие вещи для трудоустройства: sql, алгоритмы, git. Так что приготовьтесь изучать что-то новое всю жизнь - сначала базу с сетевыми протоколами, ОС, памятью, а потом и всякие докер кубернетисы. Таков путь
Всех благ
с:
Начинать надо с того языка с которого вы можете найти работу!
Ян, Я как-то написал два варианта одной программы сортировки одного и того же массива на C++ и Python.
Массив один и тот же.
Программа одинаковая, только два разных языка.
Комп один и тот же.
Замерил время обработки обеими программами.
Python - 32,3 сек.
С++ - 2,8 сек.
Без комментариев.
Рекомендую начинать с Java. На ютубе есть пару курсов, но советую читать книги. Python слишком простой язык и зачастую портит новичкам впечатление о программировании, так что изучай его после java.
Рекомендую начинать с Java. На ютубе есть пару курсов, но советую читать книги. Python слишком простой язык и зачастую портит новичкам впечатление о программировании. Java, кстати, тоже не сложный, но в отличии от python, у него строгий синтаксис, что положительно будет влиять на процесс обучения.
Так всё таки Java или веб. Разберитесь сначала с языком (веб - Java Script)
Hexlet.io. дорого, но прекрасно.
JavaScript /python
Смотря что вы хотите программировать.
Не с выбора "названия языка" нужно начинать, а с области в которой вы хотите программтровать.
Посмотрите на Ю-Тьюбе пару видео на эту тему. Наиболее кратко и точно с цифрами этот вопрос освещен в канале "Александр Ильин про IT". Хорошо рассказано в нескольких видео на канале Сергея Немчинского.
Посмотрите эти видео. Да и потом другие и сами ответите на свой вопрос. Причем правильно ответите!
Отредактировано
ezdiumno,
Решил продолжить на своем примере.
В 81 в институте пришлось изучать Fortran. По программе институтской. Выбирать не приходилось. Но азы программирования именно тогда заложили. Можно сказать, "алфавит" программирования в голову заложили. Заодно выучил язык Basic.
Потом был язык Turbo Pascal (Borland Pascal, Delphi).
Но все это обучение спонтанным, без четкой цели, без определения отрасли IT для которой язык учил.
Оттого и результат посредственный - не стал развиваться, забросил.
В 99-м изучал HTML. Делал сайт. Но быстро перешел на спец.программу, где знание HTML и CSS в общем то не требовалось.
Было время лет 10 назад, когда начал изучать Java. Для чего? Почему? Не знаю. Просто "захотелось попрограммировать".
Результат предсказуем - забросил на половине книги "Java для начинающих".
И вот пару лет назад снова начал изучать программирование. Но цже целенаправленно. То есть знаю что и для чего.
JavaScript, HTML и CSS - появились свои блоги, нужно подгонять и переделывать стандартный движок.
Потом пришлось изучать Python - попалась нужная книга с примерами на нем.
Теперь вот изучаю С++. Есть цель, есть осознание, что именно он мне сейчас нужен. Есть задачи, которые на нем хочу сделать.
Так что советую сначала определиться с областью IT в которой хотите работать: Фронтенд, бэкэнд, геймдев, ИИ, датасайнс и т.д., а после этого и придет понимание какой язык вам нужно начинать учить.
Да, и обязательно и ускоренно учите английский! Программист без него как птица без крыльев. Кукарекать может, летать - нет.