Перейти к содержимому

Как я стал python разработчиком

  • автор:

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

Как я 10 лет проектировал мосты, а в 33 года стал Python-разработчиком в банке

Как я 10 лет проектировал мосты, а в 33 года стал Python-разработчиком в банке главное изображение

Еще со школы я любил информатику, соответственно, эта история давалась мне достаточно легко. Однако при выборе университета, как это у многих бывает, я пошел не в связанный с IT институт, а туда, где учились друзья. Отучился на инженера путей сообщения в Московском автомобильно-дорожном институте и устроился на проектировщика мостовых сооружений. В итоге успешно по этой профессии проработал более 10 лет — во время ухода был руководителем группы инженеров и даже дорос до перехода на следующую должность. Однако в процессе работы иногда закрадывалась мысль: «А что было бы, если бы пошел все-таки на программирование».

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

Так как программирование меня все-таки интересовало, я начал узнавать у друзей, какие зарплаты в IT — и вообще, какие есть перспективы. Конечно же, меня удивила возможность достигнуть уровня зарплат хорошего инженера-проектировщика в сравнительно короткие сроки, и более высокий зарплатный потолок. В итоге я вывел для себя три критерия, каждый из которых по отдельности заставляет задуматься о смене профессии, а все вместе они не оставляют выбора: личный интерес к разработке, возможность удаленной работы, потенциально высокие зарплаты в среднесрочной перспективе.

Знакомство с Python

Мне хотелось работать именно с бэкендом, так как создание логики приложений для меня интереснее, чем интерактивность и красивость фронтенда. Краткий анализ рынка показал два самых востребованных языка для бэкенда: Java и Python. В итоге я выбрал Python — банально по причине относительной простоты его синтаксиса, так как цель была войти в профессию как можно быстрее. При этом я допускаю вариант, когда в перспективе мне придется добавить знания Java, так как он является официальным языком разработки под Android. Кроме того, думаю, что нужен будет и JavaScript — чтобы уметь делать и фронтенд-часть и двигаться в сторону фуллстек-разработки.

Получите профессию «Python-разработчик» за 10 месяцев! Python-разработчик занимается разработкой серверной части сайта, которая отвечает за логику и базы данных. Погрузитесь в практику с первого дня на Хекслете. Вы получите готовое портфолио на GitHub к концу обучения, поддержку наставников на протяжении всего курса и помощь в трудоустройстве.

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

Почему именно Хекслет

О Хекслете услышал совершенно случайно — одному другу курсы оплачивали на работе, и он мне очень их порекомендовал. Программа обучения меня устроила, отзывы в интернете тоже были везде хорошие. Определяющим критерием для меня стало наличие тарифных планов профессиональный/премиальный. На этих тарифах обучение проходит в своем темпе без привязки к группе — да, пускай это не самый эффективный подход, но он позволяет более гибко настраивать под себя обучение, что крайне важно при высокой загрузке на работе.

Читайте также: Как сохранять фокус на протяжении всего обучения: советы от Хекслета

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

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

На Хекслете я выполнил 3 проекта из 4 по профессии «Python-разработка». Проекты консольные, без веб-интерфейса. Когда выполнял, казались сложными и наверное даже не очень нужными, однако в процессе работы использую те же библиотеки уже гораздо более глубоко, и понимаю, что проекты сильно мне помогли.

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

Поиск работы

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

Создайте свое первое резюме разработчика: На сервисе «Хекслет-Резюме» опытные HR-менеджеры и разработчики бесплатно помогут вам при составлении вашего первого резюме в IT

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

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

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

Советы для тех, кто только начинает учиться

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

Получите профессию «Python-разработчик» за 10 месяцев! Python-разработчик занимается разработкой серверной части сайта, которая отвечает за логику и базы данных. Погрузитесь в практику с первого дня на Хекслете. Вы получите готовое портфолио на GitHub к концу обучения, поддержку наставников на протяжении всего курса и помощь в трудоустройстве.

Личный путь и опыт в становлении Python разработчиком

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

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

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

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

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

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

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

Кстати об опыте: мой опыт в серьезной или коммерческой, если хотите, разработке насчитывает около 3 лет, а осваивание Zen of Python продолжается на протяжении уже 5 лет.

Знакомство с ИТ и первые шаги

Начать я хотел бы с моего бэкграунда.

Меня всегда привлекала тема компьютеров и все, что с ними связано. Интерес этот, в первую очередь, основывался на желании провести время в компьютерных играх. В далеком для меня 2009 году, когда мне было около 8 лет, родители подарили мне мой первый ПК на Intel Pentium SU2700. На то время сборка с таким пеньком позволяла играть во многие игры, что для меня являлось ключевым моментом. Для меня открылся новый огромный мир интернета и компьютерных игр.

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

Спойлер: Как же я ошибался

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

Основываясь на тех же клишированных предрассудках общества, якобы «гуманитарий не может стать программистом» у меня присутствовал страх, что я не смогу, что я слишком глупый для подобного рода деятельности, да и вообще — пусть программистами становятся талантливые математики с соответствующим складом ума и мышлением. Простыми словами, мне казалось, что программирование не для меня.

Тем не менее, я всегда считал, что будущее за технологиями. На мой взгляд, моей особенностью и сильной стороной всегда являлось то, что когда мне интересен процесс или же когда я чего-то одержимо хочу — все свободное время уходит на изучение/познание данного процесса.

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

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

Во второй раз все прошло замечательно. Я без проблем прошел тестирование и подписал все бумаги о зачислении меня на курсы. К слову курс, протяженностью в год, назывался «Профориентация в ИТ» и содержал в себе несколько модулей:

  • Введение в Computer Science
  • Программирование на Python
  • Введение в графический дизайн

С этого момента начался мой путь становления в качестве разработчика. На дворе шел 2018 год.

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

  • Окончание курса и запись на новый, тематика которого сводилась только к программированию
  • Поступление на физико-математический факультет одного из лучших технических вузов моего города
  • Переезд в кремниевую долину и трудоустройство в Google или хотя бы в Microsoft
  • Чилл, лежа на диване и ежесекундные +10000$ к балансу на моем счете

Маленький спойлер: мой план сломался уже на первых двух пунктах. На второй курс я не попал из-за несерьезного отношения к делу, а в желанный вуз я так и не поступил 🙂

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

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

Здесь мой путь приостановился.

Я забил на программирование.

Мое время в основном уходило на учебу в университете И *барабанная дробь* на игры.

В таком формате проходили 9 месяцев моей жизни. В мае я уже заканчивал первый курс и весь июнь провел в таком замечательном тайтле, как 3 ведьмак. Меня затянуло. И если вы вспомните, когда меня что-либо затягивает — все время уходит на объект моего интереса. Играл я с утра до вечера с перерывами на естественные потребности.

После пары недель такого ритма жизни я начал что-то осознавать. Не могу точно описать свои чувства на тот момент, но определенно что-то было не так. Я наблюдал за некоторыми сверстниками, которые уже во всю реализовывались в определенной сфере, или же банально зарабатывали деньги. Кто-то успешно помогал родителям в бизнесе, кто-то работал грузчиком на складе, кто-то оканчивал курсы программирования и усердно искал работу. Все это время от времени вызывало у меня гнетущие мысли, но что-либо сделать у меня не хватало мужества и настойчивости. Ведь всегда легче списать все на внешние факторы: не та погода, не те условия, не те возможности, не те способности и так далее. Такими дефолтными отговорками я себя и «успокаивал».

Но в тот момент случился еще один, совершенно случайный, но ключевой момент в моей жизни. Отец скинул мне видео одного журналиста, который снимает интервью на YouTube. Тематикой этого видео являлась поездка журналиста в Калифорнию, а именно в кремниевую долину. Сначала у меня не возникало сильного желания смотреть данный ролик, ведь длился он около 3-х часов. Но я начал смотреть и не заметил, как досмотрел до конца. Мне стало интересно, и опять же,

Меня затянуло!

Я с восхищением смотрел на истории соотечественников, которые выбрались из своей зоны комфорта, уехали в другую страну и принимали непосредственное участие в создании ИТ-бизнесов с мировым именем, таких как Google, Meta(aka Facebook) и т.д.

Данное видео оставило на мне сильный отпечаток. Оно дало долгожданный толчок в развитии и желании поменять что-то в своей жизни и стремится к высоким целям.

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

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

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

Меня затянуло

Т.к. у меня уже был опыт в питоне, я решил не изобретать велосипед и использовать возможности данного языка. Я уже узнал о существовании фреймворков и библиотек, т.е. специальных инструментов, для достижения той или иной цели. Самым популярным на тот момент питоновским фреймворком для создания веб-сайтов являлся Django. Его я и выбрал.

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

*Огромное спасибо Вам за то, что отвечали! Это правда очень помогало и на тот момент данная помощь была незаменимой!*

Я занимался сутками. Поднимался я примерно в 10 часов утра и занимался до поздней ночи. Распорядок моего дня на протяжении 2-3 месяцев был примерно таким:

  • Подъем
  • Завтрак
  • Разработка проекта и изучение тех вещей, которые требовались от меня для продолжения разработки сайта

Мне очень нравился процесс. И я вам скажу такую вещь:

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

За пару недель я изучил базовую работу в Figma и создал готовый макет. Слишком много времени это не заняло, т.к. у меня уже был опыт в похожих программах, вроде Adobe Photoshop. Учился я по мини-курсам на том же YouTube, изучил несколько готовых макетов других авторов в телеграм-каналах. Смотря на этот макет сейчас я вижу кучу недостатков некоторые из которых я исправлял во время верстки, но для моего первого макета весьма неплохо, я считаю.

После этого за короткий промежуток времени я изучил верстку на нужном для реализации простого интернет-магазина уровне. Потратил я на это около 1-1.5 месяцев. Учился, опять же, на YouTube и задавал непонятные вопросы в чатах.

Остальное время ушло на саму backend разработку и минимальное изучение SQL. Как вы можете догадаться, данная часть вызывала у меня наибольшие трудности в изучении реализации. Методом кучи проб и ошибок у меня получалось реализовать нужный функционал по модулям. Пришлось часами зависать на YouTube, чатах, форумах, читать книги вроде «Django 2 в примерах» и учиться, учиться и еще раз учиться.

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

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

Таким образом я заработал свои первые 300$ на разработке.

Я работал один. Весь процесс разработки занял у меня около 5 месяцев. Я был сам себе проджект-менеджером, frontend-разработчиком, дизайнером, backend-разработчиком и так далее. Я ничего не знал о правильном флоу и жизненном цикле разработки в целом. Были моменты, когда хотелось сдаться, плюнуть, забить на все и сдаться. Имели место перегорания, приходилось делать перерывы в несколько дней. Но в конечном счете у меня все получилось. Мои ванильные мечты о легкой карьере разработчика были разбиты в дребезги. Я понял, что легкий путь на расслабоне — это не про АйТи.

Только лишь в процессе постоянного обучения, развития, переступания через себя можно добиться результата. И эти правила относятся не только к IT-отрасли. Это правила жизни, но в данной сфере по-другому ну вообще никак.

Что я понял на данном отрезке моего становления как разработчика?

  • Легко не будет. Добиться результата можно только упорным трудом и реальной! заинтересованностью делом.
  • Совершать ошибки — это абсолютно нормальное явление в процессе работы и обучения. Отсутствие ошибок — признак того, что вы стоите на месте и не развиваетесь.
  • Склад ума, предрасположенность, слова «я не смогу» и прочие отговорки — одного поля ягоды. Ничто из этого не влияет на достижение вашей цели. Главный ключ достижения этой цели — ваше отношение к делу.
  • Развитие Вас как специалиста в разработке приносит плоды, только в том случае, если вы делаете это постоянно.

Список материалов

  • Укус Питона(анг. A Bite of Python), Swaroop C.H. Классная книга для начинающих. Понятным языком рассказано о структурных основах питона. Читается просто и на одном дыхании.
  • Django 3 By Example — Third Edition, Antonio Mele На тот момент я использовал устаревшую версию книги (Django 2 By Example). В новой, актуализированной версии заменены устаревшие версии используемых автором пакетов. Отличная книга, которая помогла зеленому новичку разобраться в основах Django. В купе с официальной документацией у меня получилось создать полноценный интернет-магазин. В книге автор подробно разбирает большое количество проектов на Django, начиная от блога, заканчивая платформой дистанционного образования. Только учтите, что книга доступна только на английском. На русском имеется лишь устаревшая версия вместе с Django 2.
  • На YouTube могу выделить несколько качественных каналов. Шикарный преподаватель Тимофей Хирьянов на своем канале выкладывает свои университетские лекции по языку Python. Для новичков зайдет на отлично (даже мне было интересно недавно пересматривать записи его лекций)
  • В то время я изучал уроки Гоши Дударя. Да, многие скажут, что уроки у него отстойные, да и что сам он не программист, но на тот момент его уроки неплохо помогали мне разобраться в практической части изучения Python и Django. Я также покупал его платный курс и основной толчок мне дали именно они.
  • Также, классный канал имеется у Миши Омельченко, называется он Django School. Тут я вообще промолчу. Тонны видео с объяснением основ Django, множетсво циклов видео с разработкой целых проектов. Очень полезный канал.
  • Шикарный канал про верстку и фронтенд, называется Фрилансер по жизни, ведет его Женя Андриканич. На тот момент я не понимал, как выучить верстку и научиться хотя бы немного работать с JavaScript за короткий промежуток времени. Канал Жени очень помог мне в этом. Автор простым языком и на примерах объясняет принципы разметки, css-стилей и т.д. Одновременно с просмотром канала Жени, я сам находил разные тг-каналы, вроде этого, с готовыми макетами, и в тупую садился и верстал. Сквозь боль и слезы, спустя около 5-7 макетов я стал легко разворачивать html-конструкции, понимать, где какие теги использовать, как создать мобильную верстку и так далее.
  • Не меньшую помощь оказали тг-чаты. Например вот этот. Ребята там хорошие, без помощи я никогда не оставался. Главное, сначала пробуйте решить вопрос сами, и только после того, если у вас не получилось — пишите в чат.
  • Бонус. «Изучаем Python», Марк Лутц. Да-да, старый добрый Лутц. Какой python-разработчик не слышал об этой книге? На тот момент, к сожалению, данную книгу я не прочитал, но могу порекомендовать ее сейчас. Данная книга — это базовый учебник по программированию на Python. Она состоит из двух томов и содержит все базовые знания для того, чтобы начать программировать. Единственный, на мой взгляд минус этой книги — она написана сложны языком. Опытные программисты шутят: «Если вы смогли дочитать эту книгу до конца, то прошли экзамен на профпригодность и точно сможете стать программистом».

Промежуточная стадия

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

После успешного кейса разработки интернет-магазина, назовем это так, в моей голове возник логичный вопрос:

А что делать дальше?

К этому времени я уже учился на втором курсе универа.

Благодаря завершенному интернет-магазину со мной связался старый знакомый. К этому времени у него уже была своя молодая ИТ-компания, состоящая из 25-30 человек. Он расспросил меня про сайт и по итогу пригласил меня на собеседование. Мое первое собеседование! Еще и офлайн.

Я был одновременно в восторге, но и в состоянии дикого волнения. У меня не было опыта собеседований в ИТ. Я судорожно начал повторять все, что я знаю о разработке на Python, ведь собеседование поставили на конец недели, а до этого времени у меня оставалось несколько дней.

Это решение стало одной из моих главных ошибок, из-за чего я не попал в эту компанию

Да, звучит угрожающе. Но что здесь не так? А я вам отвечу.

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

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

Как вы уже поняли, на работу меня не взяли. Я пришел на собеседование с винегретом в голове. Чрезмерный поток информации в купе с волнением и стрессом на время «вымыли» все знания из моей головы. На многие вопросы я ответил на нормальном уровне, на некоторые я мог бы и ответить, но условия, в которые я себя сам и поставил не дали мне этого сделать. Факап случился на лайв-кодинге. Я впал в ступор на, казалось бы, простой задачке.

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

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

Администрация получила финансирование на открытие лаборатории при университете. И по счастливому совпадению (или нет), двух моих одногруппников пригласили туда работать. Были открыты позиции веб-разработчика и графического дизайнера. Дело в том, что университет мог нанять 3 студентов. Получилось так, что я в нужное время оказался в нужном месте: ребята порекомендовали меня. Таким образом, спустя две недели после моего первого собеседования, моя карьера на ближайшие 9 месяцев была определена.

Я не буду уделять много слов этому отрезку, скажу лишь пару вещей. Я работал вместе с другим начинающим веб-разработчиком, душа которого лежала в frontend-разработку. На протяжении этих месяцев мы работали с ним в паре, создали несколько проектов для университета, а также работали на фрилансе. Из этого опыта я могу выделить закрепление уверенности в правильности выбранного мной направления, т.е. backend-разработку. Я развивался, закреплял полученные знания в Django, изучил фреймворк Flask на базовом уровне, научился уверенно работать с БД, основам клиент-серверной архитектуры и разработке API при помощи Django Rest Framework, прокачался в Figma на достойном уровне. Но самое главное, чему я научился за это время — это:

Командная разработка

Нельзя недооценивать влияние soft-skills на современного инженера. Умение коммуницировать с командой и с людьми в целом — это важнейший навык, который по приоритетности ничуть ни ниже, а то и выше, чем технические навыки. Что я подразумеваю под «софт скиллс»? Если Вы умеете коммуницировать с миром вокруг, а следоавательно получать нужные ответы на Ваши вопросы — вы никогда не останетесь «в дураках».

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

Гугление, или же нахождение нужной информации — важный навык

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

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

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

Список материалов

Прошлые веб-источники остались теми же, добавились дополнительные каналы на YouTube, вроде:

  • FreeCodeCamp Классный англоязычный канал, тонна познавательных видео не только по питону и Django, но и по другим языкам и технологиям
  • Dennis Ivy Также англоязычный канал по Django и Django Rest Framework.

Ко всему этому также добавились курсы с площадки Udemy. Тут я в основном изучал курсы по конкретным технологиям:

  • Python Flask с нуля. CRUD операции в приложении
  • Python и MongoDB. Практическое руководство
  • GIT. Полный курс для начинающих и не только

Вообще, на Udemy есть множество хороших курсов и авторов. Вы можете сами поискать нужные вам курсы, оценив их качество по количеству студентов и их оценке.

Первая серьезная компания

На 6 месяце разработки при университете из 9-ти я понял, что нужно двигаться дальше.

Мне хотелось поработать в реальной большой команде, при полном составе и на большом проекте.

Для простоты отслеживания хронологии: на дворе лето/осень 2021 года.

Я создал резюме. Описал в нем все: свой опыт, стек, образование, интересы и т.д. Стал откликаться на множество вакансий. за пару месяцев я поучаствовал в примерно 7-8 собеседованиях, большинство из них проходили в онлайн формате.

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

Спустя пару недель мне ответили:

Хотела сообщить вам, что мы приняли решение пригласить вас на работу. Мы предлагаем вам оффер.

Моему счастью не было предела. Я получил серьезный оффер в серьезную компанию. Все, как я и хотел: большая команда (на самом деле нет, в компании было ~20 разработчиков), задачи, развитие. Мне казалось, что я попал в компанию мечты.

Занималась данная компания аутсорсом. Также разрабатывался внутренний продукт с ИИ.

Я поэтапно развивался, самообразовывался. Работа состояла из множества митингов, огромного количества самообразования и приемлемого количества тасок. И так по кругу.

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

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

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

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

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

Я готов сделать выводы о данном отрезке моего пути разработчика. Так что же я понял?

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

Список материалов

На данном этапе я могу поделиться стоящими книгами, которые мне посчастливилось прочесть (или прочесть не полностью) за этот период:

  • Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. Адитья Бхаргава. Уже наверное все слышали о этой шикарнейшей книге. Она идеально подойдет для знакомства с алгоритмами. В книге очень простым и понятным языком, с иллюстрациями и примерами описываются популярные алгоритмы разной сложности. Вы познакомитесь с нотацией О большое, сложностью и временем выполнения алгоритмов и т.д.
  • Чистый Python. Тонкости программирования для профи. Дэн Бейдер. Я бы не сказал, что эта книга подходит полному новичку. Я бы рекомендовал ее тем, кто уже познакомился с Python и его конструкциями на определенном уровне и уже имеет опыт практической разработки. С этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны разработчику. Автор утверждает, что вы раскопаете «скрытое золото» в стандартной библиотеке Python и начните писать чистый код уже сегодня.
  • Two Scoops of Django Полезная книга о Django best-practices. Данная книга познакомит вас с различными советами, хитростями, шаблонами, фрагментами кода и техниками, которым авторы научились за годы использования и разработки на Django.
  • Python one-liners Классная англоязычная книга, рассказывающая о том, как научиться создавать, а главное понимать однострочные конструкции кода в Python. Вот как эту книгу описывает автор:

Если вы не можете читать и писать однострочные фрагменты кода, как вы можете надеяться читать и писать более сложные кодовые базы? Однострочники Python могут быть столь же мощными, как и длинная и утомительная программа, написанная на другом языке и предназначенная для выполнения того же самого. На других языках (например, Java) это было бы почти невозможно, но в Python это сделать намного проще. Хитрость в том, чтобы придумать что-то, что «сделает многое с помощью малого». Самое главное, что читать и писать об однострочниках Python (например, в этом посте) очень весело! Существует даже целая субкультура, которая может написать самый короткий код для решения различных проблем.

  • Также я открыл для себя шикарный YouTube канал, называется он Диджитализируй! Автор — приятный человек, объясняющий сложные вещи понятным языком. На канале собрано множество интересных фишек языка Python, разборы многих современных технологий для веб-разработки. Отдельно бы порекомендовал вот это видео про PostgreSQL

Наши дни

Примерно на 9 месяце работы в компании я снова понял, что пора развиваться и двигаться дальше. Я снова стал откликаться на множество вакансий, прошел несколько интервью. Некоторые из них оказались удачными. После одного из таких собеседований мне предложили оффер. Я думал над ним около недели и по итогу отказался, хоть и все условия были в разы лучше, чем на моем текущем месте. Как так, спросите вы? Все просто. Моя потенциальная деятельность в этой компании расходилась с желаемой. Я хотел развиваться в качестве backend инженера, используя современные технологии. В той компании использовали язык-надстройку над питоном, в целом эта технология являлась очень узкоспециализированной. Компания, к слову, являлась партнером одного из конкурентов американского Salesforce.

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

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

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

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

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

Я сильно подтянул техническую часть. Я, наконец, взялся за чистый Python. Основная часть задач реализована именно на нем, без всяких фреймворков. Конечно, их мы тоже используем, например новомодный FastAPI. Но я не об этом.

За это непродолжительное время, я научился лучше работать с конструкциями языка, его фишками. Это определенно пошло мне на пользу, ведь можно быть разработчиком на Django или React, но не Python и JS разработчиком соответственно. Хорошо понимая сам язык и его концепции Вы без проблем сможете изучить инструменты, которые предоставляет этот язык.

На данный момент я понял следующие вещи:

  • Пробуйте работать в разных компаниях. Да, я выделил этот совет еще раз. Только так Вы найдете свою компанию мечты.
  • В первую очередь изучайте язык и его конструкции, и уже во вторую фреймворки и технологии.
  • Читайте техническую литературу. Я даже больше говорю о фундаментальных вещах, вроде «Чистой Архитектуры», нежели о конкретных технологиях, хотя они тоже важны. Фундаментальные вещи на то и являются таковыми, ведь они не изменяются быстро и основательно. Книги о конкретных технологиях быстро устаревают, т.к. эти самые технологии постоянно меняются. Лучший источник для их изучения — официальная документация.
  • Не опускайте руки и постоянно развивайтесь. Вы не знаете, когда перед Вами откроются новые возможности, но вы должны быть к ним готовы.

Список материалов

Как я отмечал ранее — хороший программист должен развиваться всегда, к чему я и стремлюсь. Все так же смотрю технические видео с YouTube или же на других площадках, вроде Udemy.

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

  • Чистая архитектура. Искусство разработки программного обеспечения. Роберт Мартин. Это фундаментальная работа в мире разработки программного обеспечения. В этой книге Роберт Мартин рассказывает, как достичь высот профессионализма. «Чистая архитектура» продолжает эту тему, но не предлагает несколько вариантов в стиле «решай сам», а объясняет, что именно следует делать, по какой причине и почему именно такое решение станет принципиально важным для успеха. Также автор даёт прямые и лаконичные ответы на ключевые вопросы архитектуры и дизайна. Я считаю, что эту книгу обязаны прочитать разработчики всех уровней, системные аналитики, архитекторы и т.д., то есть все, кто хотят подняться по карьерной лестнице или хотя бы повлиять на людей, которые занимаются данной работой.
  • Паттерны объектно-ориентированного проектирования. Эрик Гамма и др. Данная книга рассказывает о паттернах проектирования. Данную тему в принципе нельзя назвать легкой, но из-за стиля написания и немного устаревшего формата чтение этой книги усложняется еще больше. Если вы не боитесь перечитывать предложения по несколько раз — взамен получите подробное описание и примеры использования множества паттернов проектирования, и в целом понимание архитектурной стороны паттернов объектно-ориентированного проектирования.

Заключение

Вот таким выходит (и продолжается!) мой путь становления в ИТ в качестве python разработчика. Кто-то может отметить, что мне просто повезло и доля правды в их словах, конечно, присутствовать будет. Но удача будет способствовать Вам, только если Вы будете упорно работать и идти к поставленной цели. Как говорил один из известных английских писателей:

Победа над самим собою — единственное торжество, в котором удача не имеет доли

В заключение хотел сказать, что статья, надеюсь, оказалась для вас полезной и вы извлекли из нее кое-что ценное. Моя прогрессия в области IT и изучения Zen of Python все еще находится в начальной стадии, но я уже могу поделиться своими впечатлениями и советами, которые, по моему мнению, могут быть полезными для других.

В начале статьи я обещал, что немного подробнее расскажу о своем новом телеграм-канале.

Причина создания этого канала простая — я хочу развиваться.

Поэтому, если вам понравился мой стиль изложения мысли, или же в целом, вы сочли данную статью интересной, то вы можете перейти по ссылке и подписаться. Там я буду рассказывать о закулисье ИТ и разработке на Python глазами практикующего инженера.

Спасибо Вам за уделенное внимание! Опыт написания статей у меня минимальный, поэтому буду рад услышать фидбек или же просто пообщаться в комментариях!

  • карьера в it
  • карьера в it-индустрии
  • python-разработка
  • django
  • полезные ресурсы
  • полезные советы
  • полезные ссылки
  • опыт работы
  • backend-программирование
  • Веб-разработка
  • Python
  • Карьера в 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
  • тестирование
  • карьера программиста
  • полезная информация
  • личный опыт
  • новичкам

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

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