Как стать backend-разработчиком с нуля?
Backend-разработчики отвечают за внутренние процессы сайтов и приложений, выстраивают обмен данными, подбирают системы для хранения и управления информацией, обеспечивают максимум производительности при минимуме сбоев. Рассказываем, какими навыками должен обладать хороший специалист и в каком порядке их стоит изучать.
Определитесь с языком программирования
В отличие от frontend-разработчика, которому достаточно владеть HTML/CSS и JavaScript, backend-девелоперу приходится сделать непростой выбор. Языков много, одни развиваются более активно, другие применяются для узких задач. Разработчикам-новичкам подходят скриптовые языки, например Python. Во-первых, он действительно относительно несложный, его синтаксис легко читать, а значит вы сможете искать решения для своих вопросов и учиться по чужому коду. Во-вторых, в той же веб-разработке позиции Python крепнут с каждым годом. Если вы планируете погрузиться в создание интернет-ресурсов, этот язык обеспечит вам поток интересных проектов.
Освойте профессию
«Fullstack-разработчик на Python»
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Профессия / 12 месяцев
Fullstack-разработчик на Python
Создавайте веб-проекты самостоятельно
4 490 ₽/мес 7 483 ₽/мес
Cогласно исследованию The State of the Octoverse, Go входит в топ-10 языков с самым быстро растущим комьюнити. Кроме того, в 2020 году он занял первое место в списке самых высокооплачиваемых языков. В backend-разработке он нужен для создания микросервисов и высоконагруженных проектов, где много пользователей одновременно работают с сайтом или приложением. PHP не сдает позиции одного из самых популярных языков интернета, Ruby и Node.js также предлагают отличные возможности для тех, кто их изучает. Когда вы освоите базовые правила и возможности выбранного языка, сразу опробуйте их на практике. Пишите маленькие приложения, которые будут собирать веб-страницы по заданному тегу, автоматизируйте свои ежедневные задачи, придумывайте цели и выстраивайте пути к ним.
Станьте Fullstack-разработчик на Python и найдите стабильную работу
на удаленке
Познакомьтесь с пакетными менеджерами
Когда вводная часть позади, а список базовых приложений выходит за 5-10 позиций, переходите к следующему шагу. Освойте пакетные менеджеры (package manager) — специальные утилиты, которые позволяют добавлять в приложения сторонние библиотеки, чтобы расширять свои возможности и создавать новые функции. При помощи них вы также сможете предлагать свои библиотеки для использования другим разработчикам. Пакетный менеджер у каждого языка свой. В Python он называется pip, в PHP — Composer, в Ruby — RubyGems. К этому моменту вы поймете, чего недостает вашим предыдущим продуктам, улучшите их работоспособность и поставите перед собой новые цели.
Приобщитесь к лучшим практикам
Главный навык любого программиста — это умение искать информацию. Изучайте опыт других разработчиков на Github и других профильных сайтах, ищите отраслевые стандарты. Некоммерческая организация OWASP (Open Web Application Security Project) регулярно обновляет правила для создания безопасных веб-приложений. Когда вы разберетесь с пакетными менеджерами и усвоите общепринятые принципы разработки, вы сможете создавать более сложные программы. Поищите открытые проекты на GitHub, разберитесь в их устройстве, попробуйте сделать нечто похожее и добавить свои функции. Не стесняйтесь задавать вопросы, но помните, что ответы на многие вопросы уже есть на форумах.
Тестируйте свой код
Умение тестировать свой код и вычищать в нем баги входит в must-have любого разработчика. Разберитесь, как строится процесс тестирования, какие бывают тесты для приложений и как их нужно писать. Попробуйте создать такой тест и испытайте его на своих ранних программах. Помните, что от ваших усилий на этом этапе зависит то, как в будущем к вам будут относиться другие участники проектной команды — разработчиков с чистым кодом ценят везде.
Переходите к базам данных
Работа backend-разработчика часто ассоциируется с реляционными хранилищами данных, потому что именно они и составляют backend сайта или приложения. А SQL-базы остаются одной из ключевых технологий как в программной разработке, так и в веб-девелопменте. Это обширная тема, разобраться в которой может быть даже сложнее, чем выучить тот же Python. Сам по себе язык структурированных запросов (SQL) освоить нетрудно — в 70-х годах его придумали как раз для тех специалистов, которым для работы необязательно знать программирование. Однако простые на вид процессы обработки запросов в базе данных скрывают множество хитростей, так что будьте готовы отложить обучение до тех пор, пока не начнете заниматься рабочими проектами. А пока выучите базовые принципы и термины — ключи, индексы, нормализация и т.д. После этого вы сможете создавать многопользовательские приложения с возможностью сохранять данные в базе. Попробуйте написать мини-платформу для онлайн-дневников. Ее возможности обязательно должны включать функции регистрации и авторизации, создание новых записей, просмотр и удаление старых постов, а также разграничение доступа к отдельным публикациям. Когда закончите с кодом, обязательно испытайте свою программу на специально написанных тестах.
Изучите фреймворки
Фреймворки объединяют набор технических средств, которые упрощают выполнение какой-либо задачи. По сути, это мини-платформа разработки, направленная на узкий спектр целей. Если вы работаете над средними или крупными проектами, без фреймворков не обойтись. Изучайте форумы, читайте документацию, экспериментируйте с инструментами. Когда почувствуете, что разобрались, примените новые знания на приложениях из предыдущего шага — попробуйте улучшить их производительность и набор функций с помощью тех фреймворков, с которыми успели познакомиться.
Читайте также Чем занимается backend-разработчик Neon Banana?
Углубляйтесь в базы данных
От реляционных баз данных переходите к нереляционным. Эта тема чуть сложнее, поскольку решений для работы с неструктурированными данными очень много, и у многих из них своей собственный, уникальный язык. Новичку стоит разобраться с MongoDB, Cassandra, RethinkDB и Couchbase. MongoDB набирает все большую популярность у разработчиков, так что ее нужно сделать приоритетом.
Расширяйте набор умений
- Изучите кеширование данных, познакомьтесь с Redis и Memcached;
- Разберитесь с REST API, GraphQL и брокерами сообщений, которые помогают приложениям и прочим элементами программной инфраструктуры обмениваться данными;
- Узнайте, какие бывают методы авторизации и как выбрать правильный для своей программы;
- Поймите принципы работы поисковых машин и поисковой оптимизации;
- Научитесь обращаться с Docker — это полезное средство для работы с приложениями, рассчитанными на тысячи и десятки тысяч пользователей;
- Освойте технологии веб-серверов, поймите отличия между их типами;
- Попробуйте в деле веб-сокеты — они позволят вашему веб-приложению обновлять информацию в реальном времени;
- Познакомьтесь с графами и базами данных на их основе.
Как стать 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-розробником. План дій для початківців
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 и более год, на позиции от джунов до СТО. И, конечно, проходил собеседования сам. И не однократно попадал в ситуации, когда компании приглашали собеседовать закомплексованных и неуверенных в себе людей, вместо проверки просто самоутверждались в попытке поднять свою самооценку. По сути это направленная агрессия и хорошо бы уметь с ней разбираться. Но в любом случае — это опыт. Да, вам может попасться что-то типа Интеллиас, и если вы без опыта успешных собеседований, то будете думать, что проблема в вас. Мусорных компаний в Украине много. Но вы дотачиваете свой опыт и это отражается на вас. Прохождение собеседований — это навык. Как ездить на велосипеде. У кого-то быстрее, у кого-то медленнее, а кому-то приходится этому учиться по учебнику. Но вы можете управлять процессом и потратив нужное количество часов вы сможете проехать первый круг.
Как стать web-разработчиком на Python за полгода: конкретный план действий
Всем привет! Меня зовут Евгений Степанов, и я Python Full Stack-Developer в компании PVS-Studio. В этой статье вы узнаете, что нужно сделать, чтобы за полгода стать Python backend-разработчиком. После прочтения данной публикации у вас будет чёткий план, который останется только реализовать. Поехали!
Веб для тех, кто постоянно развивается
В IT необходимо постоянное развитие. Без него вас просто могут «съесть» более любопытные и совершенствующиеся программисты. Веб не исключение. Пожалуй, это одна из тех сфер, где больше всего технологий, и их число постоянно растёт. Поэтому для backend-разработчика самосовершенствование — лучший друг. Если вы к нему не готовы — чтение данной статьи будет бесполезным (почти).
Насколько глубоки ваши знания в Python?
Надеюсь, вы понимаете, что без хорошего знания Python реализация этого плана невозможна. Циклы, условия, функции, классы, миксины — во всём этом вам нужно так же легко разбираться, как в чистке зубов. Если вы уже знаете этот язык программирования — отлично, можно приступать к выполнению плана. Если нет — вот 2 хорошие книги, которые помогут его изучить:
A byte of Python
Число страниц: 158
Коротко о книге: Данная книга, на мой взгляд, является лучшей для изучения Python с нуля. В 158 страницах автор лаконично и понятно объясняет все основы этого чудесного языка.
Сам себе программист
Автор: Кори Альтхофф
Число страниц: 209
Коротко о книге: В книге объясняются основы Python и немного затрагиваются Git, bash, алгоритмы, регулярные выражения и pip (пакетный менеджер для Python). А задачи для практики помогут лучше понять теоретический материал.
После прочтения любой из этих книг вы получите ликбез по Python (а также по программированию в целом) и сможете приступить к выполнению плана.
При чтении книг по программированию важно понимать, что это не художественная литература. Чтобы получить максимум пользы от этих руководств, необходимо практиковаться параллельно с их изучением. Например, после прочтения каждой главы можно придумывать задачи (или находить в Интернете) и использовать полученные знания для их решения. Это не только поможет вам закрепить пройденный материал, но и сделает более интересным дальнейшее чтение книги.
Стратегия для составления и реализации плана
«Если бы у меня было восемь часов на то, чтобы срубить дерево, я потратил бы шесть часов на то, чтобы наточить топор».
Авраам Линкольн
План – важнейшая составляющая достижения любой цели. Поэтому его необходимо уметь грамотно составлять. Это сэкономит ваше драгоценное время и сократит ненужную работу.
Каждый год люди составляют кучу планов и ставят множество задач. Вначале всё у них идёт хорошо, но уже через пару месяцев начинается откладывание дел на потом – ведь времени ещё полно, почти целый год (да и вообще, устал я, дам себе немного отдохнуть). Так длится вплоть до осени, когда сроки начинают поджимать. И вот в последние 2,3 месяца уходящего года люди увеличивают нагрузку, пытаясь наверстать упущенное. Но, конечно же, сделать это не удаётся, и достижение целей переносится на следующий год.
Такой подход, как можно заметить, не очень эффективен, тем более для веб-разработчика. Поэтому необходимо выбрать другой. Есть много разных стратегий для составления и реализации плана. Лично я пользуюсь способом из книги «12 недель в году» (авторы Брайан Моран и Майкл Леннингтон) и рекомендую его вам (как и саму книгу). Суть стратегии заключается в том, чтобы представлять год как 12 недель, а не как 12 месяцев. Отсюда и название. При таком мышлении, у целей на год будет дедлайн – 12 недель. Данный способ помогает сильно повысить производительность и начать по-настоящему ценить каждую неделю (ведь теперь 1 неделя — это 1 месяц).
При составлении плана я использовал данную стратегию. Полгода — это 6 месяцев. 6 месяцев — это примерно 24 недели. А 24 недели — это 2 года по 12 недель. Таким образом, можно сказать, что время реализации плана — два 12-недельных года.
Как правильно ставить цель
При составлении качественного плана у каждой цели должны быть:
- Дедлайн — крайний срок, когда нужно закрыть цель. Будет поджимать вас при каждом взгляде на него;
- Время, за которое нужно её выполнить. Поможет вам рассчитать дедлайн и понять, укладываетесь вы в него или нет;
- Детальное описание. Чем детальнее расписана задача, тем быстрее вы её сделаете и тем меньше времени потратите на лишнюю работу;
- Наличие инфинитива в формулировке цели. Заставит вас больше думать о том, чтобы выполнить (сделать) эту задачу. (Например: разобрать команду commit).
Составляем план
Внимание! Установка дедлайнов не дорого идёт с расчётом на то, что вы можете уделять реализации плана 6-8 часов в день.
1. Изучить книгу «ProGit» до 171 страницы
Дедлайн — конец 2-й недели 1-го 12-недельного года
Время на выполнение — 2 недели
VCS (Version Control System) – инструмент, без которого не обойтись ни одному уважающему себя программисту. Он поможет откатить программу на рабочую версию, если вдруг в текущей вы слегка накосячили.
Самая популярная VCS и, пожалуй, самая лучшая — Git. Он прост в понимании, изучении и очень быстр – что ещё надо? (Кстати, создан он разработчиками ядра Linux). Самый лучший вариант разобраться в нём — изучить книгу «ProGit» от Скотта Шакона. На старте всю читать нет смысла. Достаточно дойти до главы «GitHub» (не включительно). Таким образом, изучив всего 171 страницу, вы сможете понять смысл VCS и то, как работает Git вместе с его основными командами: commit, add, push, pull, clone, remote. Именно эти команды вы будете использовать в 80% случаев.
Конечно, не все компании используют Git. Но даже если ваша будущая организация применяет другую VCS, вам не составит особого труда изучить её (все, кто использует SVN, нервно закурили в сторонке), поскольку команды систем контроля версий очень похожи.
2. Изучить книгу «PostgreSQL для начинающих»
Дедлайн — конец 4-й недели 1-го 12-недельного года
Время на выполнение — 2 недели
Backend-разработчику необходимо знать базы данных. Это даже не обсуждается. На первых порах у вас может отсутствовать необходимость с ними работать, но однажды этот день обязательно наступит. Помимо понимания баз данных, необходимо уметь работать с СУБД (Система Управления Базами Данных). Чаще всего в Python-проектах используется PostgreSQL. Именно эту технологию я и рекомендую изучать. Книга «PostgreSQL для начинающих» даст вам общее представление о базах данных и обучит основным командам Postgres (синоним слова PostgreSQL). Для начала этой книги будет достаточно. В будущем можно почитать официальную документацию. Она, несомненно, улучшит ваши знания в этом инструменте.
Кстати, выучив основные команды PostgreSQL, вы сможете легко сделать то же самое и для других СУБД, например MySQL. Тут все так же, как и с системами контроля версий, т. е. команды и смысл в разных технологиях очень похожи.
3. Понять, что такое Веб и какие у него есть составляющие
Дедлайн — конец 5-й недели 1-го 12-недельного года
Время на выполнение — 1 неделя
Плавно переходим к веб-программированию. Вначале нужно понять, что вообще за фрукт такой – этот Веб. Узнать, что такое адрес, домен, хост, сервер, HTTP, HTTPS, POST и GET методы, что такое куки, как работает кеширование и т. д. В этом вам помогут лекции на YouTube. Просто введите в поисковой строке фразу «веб лекции», и у вас появится много различных вариантов для изучения данной темы. Лично я рекомендую эти 2 плейлиста: «Основы веб-разработки» и «Web-технологии».
Дедлайн — конец 6-й недели 1-го 12-недельного года
Время на выполнение — 1 неделя
HTML — технология, знание которой необходимо как backend, так и frontend-разработчику. Он несложный от слова совсем. Благодаря шикарному самоучителю, понимание HTML не станет для вас серьёзным препятствием. Дальше дело за практикой и постоянным изучением новых и повторением изученных тегов. В этом, кстати, вам поможет справочник.
5. Изучить части №1 и №2 книги «Django 3.0. Практика создания веб-сайтов на Python»
Дедлайн – конец 6-й недели 2-го 12-недельного года
Время на выполнение — 12 недель
Переходим к самому сложному и самому интересному — фреймворку для веб-программирования на Python. Django и Flask занимают тут лидирующие позиции. Именно их выбирает большинство питонистов.
У Django много встроенного функционала, и за счёт этого на нём можно быстро писать сайты. Flask же не предоставляет такой возможности и почти всё требует создавать с нуля (в этом тоже полно своих плюсов). Мы остановимся на Django. К Flask можно будет вернуться позже. Его изучение сильно улучшит ваше понимание как Django, так и в целом веб-программирования.
При изучении Django я пользовался и до сих пор пользуюсь великолепной книгой Владимира Дронова «Django 3.0. Практика создания веб-сайтов на Python». Рекомендую изучить её полностью, но на старте хватит разбора частей №1 и №2. Читая их, не забывайте о практике, без неё Django выучить невозможно. Придумайте какую-нибудь тематику и сделайте простенький сайт. Например, блог о котах. Желательно практиковаться параллельно с чтением. Также не пытайтесь выучить всё, что есть в книге. Изучите основное, а второстепенное сможете подсмотреть, когда будет необходимость. И да, не забывайте добавлять код своего сайта на GitHub.
Кстати, у Django есть отличная документация, с которой точно стоит ознакомиться в дальнейшем.
6. Пройти первые 4 главы части №1 учебника по JavaScript
Дедлайн – конец 9-й недели 2-го 12-недельного года
Время на выполнение — 3 недели
Да-да! Великий и могучий JavaScript. Пришло его время. Что тут можно сказать? Изучение JS – это интересно, весело и порой больно. А ещё оно необходимо для всех, кто хочет подвизаться в веб-разработке. Бэкендеру будет достаточно базового понимания языка. На момент написания этой статьи лучшим руководством по JavaScript я считаю учебник от javascript.ru. В нём есть вся необходимая информация, она хорошо структурирована и понятно излагается. Для backend-разработчика достаточно пройти первые четыре главы из части №1.
Дедлайн — конец 11-й недели 2-го 12-недельного года
Время на выполнение — 2 недели
И последний инструмент из привычного всем набора JS/HTML/CSS – это CSS. Бэкендеру знание этой технологии особо не пригодится, но базовое понимание не помешает. Помните сайт для изучения HTML? Так вот, у него ещё есть самоучитель по CSS, который и поможет вам в освоении этой непростой технологии.
8. Составить резюме и откликнуться на подходящие вакансии
Дедлайн — середина 12-й недели 2-го 12-недельного года
Время на выполнение — 2 дня
Итак, с технологиями покончено. Минимальный набор backend-разработчика у вас в кармане. Пришло время для поиска работы. Первое, с чего стоит начать – составление резюме. Да, возможно, это самый простой этап, но он очень важен. То, как вы себя преподнесёте работодателю, скажется на скорости и качестве трудоустройства. Вот список рекомендаций, как улучшить своё резюме:
1. Если можете самостоятельно составить резюме на английском — сделайте это;
2. В списке технологий не надо писать свои личные качества, например целеустремлённость, трудолюбие и т. д. Это бесполезная информация, которую может написать про себя любой кулхацкер. Указывайте только технологии, которыми владеете (Python, Django, Git, JavaScript и т. д.);
3. Хорошо, если вы можете подтвердить знание указанных технологий. Для этого будет достаточно ссылки на репозиторий с кодом нужного инструмента (у вас же есть репозиторий на GitHub?);
4. В поле с названием профессии пишите именно название профессии, а не набор ваших технологий (такое часто можно увидеть в разных резюме). Например, в вашем случае это может быть «Junior Django Developer»;
5. Если вы раньше работали в IT, помимо названия компании, укажите, чем в ней занимались. Если есть, что показать, приложите ссылки с материалами. Также добавьте список используемых в работе технологий;
6. Напишите о себе. О своих хобби, о том, как начали изучать программирование, о любимых песнях и т. д. Лучше хотя бы что-то, чем ничего. Подойдёт даже имя кота;
7. Обязательно приложите свою фотографию. Она не только подчеркнёт вашу индивидуальность, но и покажет, что вы серьёзно подошли к составлению резюме.
Вот пример хорошего резюме (фото и данные кота конечно же надо заменить на свои):
Резюме готово? Отлично! Смело выкладывайте его на HeadHunter, даже если не считаете, что оно безупречно. Не забудьте открыть для него полную видимость.
Теперь остаётся только откликнуться на подходящие вакансии. Вводим в поисковой строке всё того же HeadHunter фразу «Python Django», ставим соответствующие фильтры и откликаемся на выпавшие варианты. Важно понимать, что даже если у вас нет всего стека технологий, указанного в вакансии, вы тем не менее можете заинтересовать работодателя, и он пригласит вас на собеседование.
9. Подготовиться к собеседованию
Дедлайн — конец 12-й недели 2-го 12-недельного года
Время на выполнение — 5 дней
Резюме — это хорошо, но без собеседования (а может, даже и тестового задания) вас никто на работу не возьмёт. Что может быть на «собесе»? Обычно вопросы бывают 2 типов: hard и soft skills. Soft skills – это ваши навыки работы в команде, ответственность, лидерские качества и т. д. Hard skills – это технические вопросы, т. е. вопросы по технологиям, указанным в вашем резюме. Оба типа вопросов важны. Подготовиться к техническим вопросам, конечно, сложнее. Вначале нужно понять, какие вопросы могут задать. В этом вам поможет умение гуглить. А если у вас его нет или вы просто не хотите тратить на это время, то вот список вопросов, который когда-то составлял я. Просматривая его и отвечая на вопросы, попробуйте представить себя на реальном собеседовании. И да, если вдруг какой-то вопрос непонятен, обязательно разберитесь в нём.
Что же, вы проделали большую работу. Теперь можно немного отдохнуть, выпить кружку ароматного чая и покурить самый дымный кальян вашего города.
Что дальше?
На изученном стеке технологий далеко не уедешь. Важно, как говорилось ранее, постоянно изучать новые инструменты. Как понять, какие из них нужны? Элементарно! Заходите на наш любимый HeadHunter, в поисковой строке вбиваете фразу «Python Django» и открываете полученные вакансии. Но теперь не откликаетесь на них, а выписываете себе указанный стек технологий. И так нужно сделать хотя бы с 15 вакансиями. После этого из всех выписанных технологий выбираете 3,5 самых часто встречающихся и начинаете их изучение в порядке важности. Данный метод поможет вам изучить самые необходимые инструменты.
Спасибо всем, причастным к написанию этой статьи и вам, дорогие читатели. Уверен, был хоть немного полезен. Удачи и до скорых встреч!
Дополнительные ссылки
И в конце несколько ссылок на публикации моих коллег, так или иначе связанные с темой работы, обучением и собеседованиями. Надеюсь, что-то из этого тоже может оказаться вам интересным.
- Глубина кроличьей норы или собеседование по C++ в компании PVS-Studio.
- Дизайн: Фриланс vs Офис.
- Собеседование на дизайнера в IT: вопросы, тестовое, подводные камни.
Как стать 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
- тестирование
- карьера программиста
- полезная информация
- личный опыт
- новичкам