Как стать программистом python
Перейти к содержимому

Как стать программистом python

  • автор:

Как стать 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

�� Подобається Сподобалось 28

До обраного В обраному 33

Схожі статті

Як стати .NET-розробником. План дій для початківцівЯк стати .NET-розробником. План дій для початківців

Ivanna Tkachuk 15 липня 2022

Як стати PHP-розробником. План дій для початківцівЯк стати PHP-розробником. План дій для початківців

Ivanna Tkachuk 1 вересня 2022

Як стати Rust-розробником. План дій для початківцівЯк стати 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-разработчиком: история Алексея Курылева

В отличие от многих моих коллег я не был рожден программистом. Я был рожден музыкантом. Я не учился программировать в ВУЗе и до определенного времени даже и не собирался связывать свою жизнь с IT.

Зато меня всегда привлекала Москва, с ее широкими тротуарами, длинными набережными и огромными парками. Но оказавшись там, ты чувствуешь потребность в деньгах более чем в любом другом городе нашей удивительной родины. В то время мой старший брат снимал квартиру вместе с двумя программистами, работающими в каком-то банке. Так, в одной из кухонных бесед, я первый раз погрузился в мир Python. С того момента прошло еще немало времени перед тем как я устроился на первую работу в качестве Python-developer.

Первые шаги в программировании

Так вот, оказавшись в Москве, мне нужно было искать работу, так как долго жить в гостях я не мог. На тот момент моих навыков хватило только чтобы устроиться работать в техподдержку одной крупной и безнравственной компании. Я принимал заявки по телефону и ходил туда-сюда по длинным коридорам здания, чтобы подключать мышки к системным блокам, которые по очереди вылетали из гнезд у всех сотрудников офиса.

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

Первая работа

На удивление, я никогда не работал junior-ом. Сразу в middle пошел. Но попытки устроиться младшим разработчиком у меня были. Я хорошо помню то собеседование.

Два прекрасно образованных программиста (что забавно, это были муж и жена) целых два часа тестировали мои знания и мышление, после чего сделали вывод, что знаний у меня явно недостаточно, но мне не отказали, а дали список литературы и отправили доучиваться. Через две недели я вновь пришел на собеседование и продемонстрировал фантастическую способность к обучению, ответив на множество вопросов, на которые прежде ответить не мог. На следующий день мне позвонили и сказали, что я принят. Мне озвучили зарплату, которой мне не хватило бы даже на аренду жилья и еду, не говоря уже о каких-то излишествах. Я сразу отказался и ни разу не пожалел об этом, так как устроился системным администратором в компанию с мировым именем, где и продолжил самообучение как программист. Из этой истории я извлек один важный момент — ничто так хорошо не направляет и не подталкивает как собеседование!

А что дальше

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

Так вот. На моей первой работе программистом я был единственным бекенд-разработчиком в компании! Вот уж хуже не придумаешь! Ну, что хотел, то и получил. Зато на второй работе я попал в замечательный коллектив, где работали настоящие профессионалы с огромным опытом. Благодаря им я приобрел культуру кода и узнал про высокие стандарты в разработке. Миша Корсаков и Андрей Беляк — респект и уважуха!

Сейчас

А сейчас я работаю удаленно в одной международной компании и в этом есть свои плюсы! Только не подумайте, что я сейчас лежу на пляже с ноутбуком и наслаждаюсь жизнью по полной. Я все также много работаю и много устаю, но в офис ходить не нужно. Живу в Питере, иногда путешествую. Успел пожить в Португалии, в Италии, в Грузии, но не скажу, что я там как-то особо отдыхал. Организация путешествия накладывает много дополнительных сложностей, и в сочетании с работой это может быть в два раза тяжелее, чем работа из дома или офиса. Но увидеть можно очень много нового, красивого и интересного. И это явный плюс!

Менторство

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

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

Как стать успешным Python разработчиком? Алексей Курылёв поделится опытом как с начинающими, так и с опытными программистами Нанять

Вопросы

Какой совет дашь новичкам, который редко встречается или считается необычным, спорным?

Вписывайтесь в любую движуху! Не упускайте ни одной возможности практиковаться! Будьте открыты всегда и к любым предложениям!

И что очень важно:

“Встретив двусмысленность, отбрось искушение угадать.” — zen of python

Как ты сохраняешь свои навыки актуальными? Как постоянно растёшь и становишься лучше как разработчик?

Ну, работа не позволяет становиться неактуальным. Каждый день приходится делать что-то новое. Ну, и читаю, конечно. Изучаю другие языки. Общаюсь с другими разработчиками. Разрабатываю в команде с друзьями разные веб-сервисы, без зарплаты, просто ради интереса. И отдыхаю побольше при возможности, это тоже необходимо, так саморазвитие идет легче и быстрее.

Топ 3 книжек для новичка
  • Марк Саммерфилд — «Программирование на Python 3. Подробное руководство»
  • Уэсли Чан, Пол Биссекс, Джеффри Форсье — “Django. Разработка веб-приложений на Python”
  • Роберт Мартин — “Чистый Код” — Читайте ее даже если не понимаете Java, там очень много просто хороших советов. А заодно и Java начнете изучать.
Фото рабочего стола

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

© Copyright 2014 — 2023 mkdev | Privacy Policy

Как стать Python-разработчиком с нуля — личный опыт

Это мой первый пост, прошу сильно не пинать. Для начала немного расскажу, кто такой тестировщик. Это специалист, который отлавливает ошибки на всех этапах разработки проекта. Работа рутинная, но ответственная. Получают тестировщики на 20-30% меньше, чем программисты: от 30 000 руб. и выше, всё зависит от опыта.

Становление тестировщиком – самый простой путь старта в IT, есть куда расти (тест-менеджмент, веб-дизайн, чистая разработка).

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

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

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

Открыв гугл, я стал искать полезные статьи по языку с нормальными ссылками на учебные материалы. Как ни странно, толковых статей очень мало. Могу отметить только несколько, которые мне понравились больше всего:

  • professii.su/programmirovanie/python-razrabotchik.html— обзорная статья, много полезной информации про Python + большой список ссылок на полезные сервисы/статьи/видеоуроки для начинающих;
  • digitology.tech — перевод официальной документации по Python;
  • ru.stackoverflow.com/questions/420125/Книги-и-учебные-ресурсы-по-python — рекомендуемая литература, курсы и документация по Python от сообщества Stackoverflow;
  • github.com/vera-l/python-resources#books_online — обучающие материалы по питону (roadmap).

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

  • stepik.org/course/58852 — «Поколение Python»: курс для начинающих с кучей тренировочных задач, удобный как для самостоятельного изучения.
  • youtube.com/c/ТимофейХирьянов — отличные видеолекции от Т. Хирьянова.

Через пару месяцев, когда я, обучаясь практически всё свободное время, освоил базу по языку, я прошёл ещё несколько, для получения более глубоких навыков программирования. Мне очень понравилось выполнять задачки по Python, над некоторыми пришлось поломать голову, но зато получаешь реальный кайф, когда всё получается. Думаю, программисты знают, о чём я говорю :).

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

  • stepik.org/course/68343 — «Поколение Python»: курс для продвинутых.
  • stepik.org/course/512 — курс посвящен базовым принципам языка Python, подойдёт тем, кто уже может писать простейшие программы на Python .
  • stepik.org/course/1547 — алгоритмы: теория и практика. Структуры данных.
  • andreyolegovich.ru/qa/pytest — учебник по Pytest – классный фреймворк для тестирования на Python.
  • pywinauto.readthedocs.io — офиц. документация по Pywinauto — библиотеке Python для автотестирования десктопных приложений на Винде.
  • docs.qameta.io — документация Allure, крутой библиотеке Python для красивеньких отчетов о результатах тестов.

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

Затем я проанализировал с пару десяток вакансий на должность тестировщика без опыта работы и выписал повторяющиеся требования. Да, я псих :). Оставалось дело за малым – получить основные навыки работы с этими инструментами. Вот что я стал изучать дальше.

Основы разных видов тестирования: unit, функциональное, интеграционное и другие. В этом мне помогли следующие учебные материалы:

  • stepik.org/course/16478 — теория тестирования ПО.
  • stepik.org/course/575 — автоматизация тестирования с помощью Selenium и Python.
  • testengineer.ru — большой учебник по тестированию.

Далее нужно научиться работать с ключевыми инструментами тестировщика, я выбрал только те, владение которыми реально нужны работодателям:

Selenium — автотестирование web-страниц:

  • Учебник Selenium на coderlessons.com.
  • dzen.ru — шпаргалка по Selenium WebDriver 4 + Python.
  • rukovodstvo.net — статья по основам работы с Selenium и Python.

Jenkins – это опен сорс (фреймворк, проект с открытым исходным кодом), поможет автоматизировать деплой и исправить ошибки для CI/CD:

  • Видеокурспо Jenkins на русском.
  • Краткое руководство на coderlessons.com.

Postman – он позволяет посылать запросы к сервисам и работать с их ответами, им можно протестировать бэкенд:

  • testengineer.ru/gajd-po-testirovaniyu-v-postman — большой гайд по тестированию с Postman для начинающих.
  • Учебникпо POSTMAN.

Jmeter — Java-апплет, который умеет всё (поиск неуловимого бага, тестирование бэкенда и много чего ещё):

Разумеется, ещё нужно изучить дополнительные технологии и инструменты, без них никак:

GIT – удобная система для командной работы и работе с версиями кода:

  • git-scm.com — большое руководство на русском языке.
  • stepik.org/course/4138 — курс на Степике.
  • Аккуратный, необходимый, слегка «продвинутый» видеокурс по Git, который делает жизнь разработчика проще.

Linux:

  • stepik.org/course/73 — курс для новичков по основам Linux.
  • Видеокурспо Linux на примере дистрибутива Ubuntu.

Docker:

  • stepik.org/course/1612 — курс по Docker для тех, кто имеет навыки работы с операционной системой Linux.
  • Видеоуроки, которые помогут вам понять как устроен Docker (контейнеризация) и где его можно использовать.
  • stepik.org/course/74010 — курс по основам (установка, написание собственных образов).
  • stepik.org/course/123300 — курс Docker для начинающих + практический опыт.

Язык SQL для работы с БД:

  • stepik.org/course/551 — основы базы данных SQL.
  • stepik.org/course/63054 — интерактивный тренажер по SQL.
  • Большой видеокурспо SQL для новичков.

Это все эти учебные материалы, которые я внимательно изучил, чтобы иметь начальные навыки тестирования. Вы можете найти в сети любые другие, какие вам больше понравятся. На всё это я потратил примерно около 10 месяцев, я учился почти каждый день по 6-7 часов в день, спать ложился далеко за полночь. И при этом я ещё работал на основной работе. Большое спасибо моей девушке, она меня всё это время поддерживала.

Важный совет! Вы должны развить навыки грамотного поиска информации в интернете, а также учиться чему-нибудь новому каждый день. Даже Senior учится новым технологиям и инструментам. Как сказал однажды Генри Форд «Любой, кто перестает учиться, стареет, и не важно, сколько ему лет: двадцать или восемьдесят. Любой, кто продолжает учиться, остается молодым. Самая великая вещь в жизни — это сохранять свой разум молодым».

Ну вот, вы теперь готовы к поиску стажировки тестировщиком (будет хорошо, если она будет оплачиваемой). Но есть один нюанс. Если вы не студент ВУЗа, то в некоторых стажировках вам могут отказать, так как компаниям интересны именно студенты или выпускники высших учебных учреждений. Но не сдавайтесь! Выполняйте все тестовые задания, прокачивайте свои скиллы, чтобы каждое следующее собеседование давалось вам легче и легче. На практике вы можете пройти 10-15 собеседований, но так и не найти работу. Это нормально, потому что кроме вас на эту должность претендуют еще десятки/сотни соискателей. Поэтому рассматривайте каждый отказ как полезный опыт, который делает вас сильнее.

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

Сколько нужно учиться, чтобы стать Python-программистом? Моё личное мнение: если у вас нет склонности к математике (вы больше гуманитарий), то придётся учиться очень долго и очень часто. А если вы математик в душе, то всё равно придётся обучаться долго и много. Такая история. Ещё — у вас будут случаться время от времени нервные срывы. Что делать, это плата за знания, сам через это прошёл.

Запомните! Если у вас не получается что-то ни с 1 или 15 раза, то в программировании – это норма. Обычное дело – постоянно гуглить, шерстить документацию и дебажить код again and again. Если на каком-нибудь курсе вам было легко, но потом вы начали самостоятельную практику = обучение через страдания. НО потом, когда ты осознаёшь, то приходит понимание, что на курсе было лишь смутное понимание программирования. Как-то так.

Поэтому нужно быть морально готовым к тому, чтобы потом не впасть в депрессию от того, что ничего не получилось. Python простой язык, но если придётся разрабатывать сложные системы на любом языке, хоть на Пайтоне, C++ или Java, вам придётся тяжело. Python имеет более читаемый код, и изучить его довольно просто – на базовом уровне (!). Если вы столкнётесь со сложными алгоритмами, то придётся задействовать мозги на все 200%.

Вывод: маловероятно, что вы освоите профессию тестировщика на Python за месяц и начнёте получать по $10k в месяц. Учиться будет тяжело, придётся люто вкалывать каждый день, если хотите добиться результатов. Если есть желание – то всё получится. Поверьте.

Накидал типовые задачи, которые могут дать на собеседовании тестировщику-стажёру:

  • Проверить функциональность логина в приложении и написать баг-репорт о найденных ошибках.
  • Протестировать платёжный сервис в интернет-магазине.
  • Составить баг-репорт для неработающего холодильника.
  • Написать чек-лист для проверки формы авторизации на сайте.
  • Не работает кнопка «Добавить в корзину». Проблема на стороне клиента или сервера?

Какие вопросы могут примерно задать:

  • Какие уровни тестирования вы знаете?
  • Можете объяснить разницу между функциональным и нефункциональным тестированием?
  • Какие категории ошибок с выполнением требований вы можете назвать?
  • Почему Selenium стал стандартом де-факто в автоматизации тестирования?
  • В чем заключается разница между абсолютным и относительным путями XPath?
  • Как определить, когда пора прекращать тестирование?
  • Что делать в случае отсутствия тестовой документации?
  • Может ли статическое тестирование обнаружить утечки памяти?
  • Опишите своими словами нагрузочное тестирование.
  • Назовите этапы жизненного цикла тестирования.

Дерзайте, всем удачи!

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

  • CS50 Гарвардский курс по основам программирования на русском.
  • PEP 8 — руководство по написанию кода на Python.
  • PyCheckIO — интерактивный тренажер на Python с проверкой решений.
  • pythonworld.ru/samouchitel-python — неплохой самоучитель Python.
  • Курсы с задачами от Информатикс.
  • Oнлайн-тренажёр Python.
  • pythontutor.ru — хороший курс по программированию с нуля.
  • kodesource.top/python-exercises —практические уроки для начинающих.
  • timus.ru — задачи с проверяющей системой.
  • Сборник упражнений и задач по основам Python — okpython.net/python/python_zadachnik/python_zadachnik.html.
  • Хендбук по Python от Яндекса.

Параллельно с прохождением курсов и просмотром видео читайте такие книги, как «Изучаем Python» Марка Лутца (4-е изд.) или «Программируем на Python» Майкла Доусона. А вообще обязательно к прочтению крутая книга «Укус Питона» (русский перевод).

  • python
  • тестирование
  • карьера программиста
  • полезная информация
  • личный опыт
  • новичкам

Как стать программистом? Python, Java, FrontEnd или .NET – что выбрать?

Тренер-консультант, эксперт по построению распределенных и веб-ориентированных приложений.

Если вы хотите начать свой путь в программировании и стоите перед выбором специальности, 7 сентября приглашаем вас на онлайн встречу с Дмитрием Охрименко, CEO CyberBionic Systematics, на которой вы получите ответы на ваши вопросы.

Мы проанализируем состояние рынка, опираясь на опросы и статистики DOU.UA и Stack Overflow. У вас будет возможность услышать объяснение разницы между различными направлениями в IT и выбрать то, которое больше по душе. Вы узнаете, как лучше учиться и как найти работу после учебы.

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

Среди участников вебинара будут разыграны подарочные сертификаты на обучение!

План вебинара:

  1. Направления в IT. Как понять, что популярно.
  2. BackEnd, FrontEnd, FullStack, Mobile, Desktop, GameDev – в чём суть, какие языки и технологии популярны.
  3. Как учить программирование.
  4. В чём разница между Junior, Middle и Senior?
  5. Как устроиться на работу, где искать и кто может помочь?
  6. BackEnd, FrontEnd и базы данных на пальцах. Примеры того, какой софт и как использует разработчик.
  7. Вопросы и ответы.

Целевая аудитория:

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

Условия участия: бесплатно. Для получения приглашения на онлайн-трансляцию заполните регистрационную форму.

Покупай подписку с доступом ко всем курсам и сервисам

Библиотека современных IT знаний в удобном формате

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

  • Все видеокурсы на 3 месяца
  • Тестирование по 10 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин

Halloween

  • Все видеокурсы на 1 год
  • Тестирование по 24 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
  • Скачивание видео уроков
  • Возможность приостановки обучения
  • Все видеокурсы на 6 месяцев
  • Тестирование по 16 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин

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

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