До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Истории успеха

Как я сделал программирование инструментом для решения своих бизнес-задач

Python Время чтения статьи ~10 минут 20
Как я сделал программирование инструментом для решения своих бизнес-задач главное изображение

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

Знакомство с программированием: от безудержной любви — до тотального отвращения

Мое знакомство и увлечение программированием началось еще в школе — и там же внезапно оборвалось. В 9-11 классах мы программировали на Basic и Pascal, и я был одним из немногих в потоке, кто показывал неплохие результаты — даже несколько раз участвовал в городских олимпиадах по алгоритмам. Всё благодаря преподавательнице — она уделяла нам много времени, организуя внеклассные уроки, на которых мы решали алгоритмы и разные задачи.

И вроде всё было хорошо, я даже собирался поступать в институт на инженерную специальность, связанную с разработкой. Но неожиданно прямо в 11 классе мой интерес к программированию одномоментно пропал. Тогда я написал игру, на которую потратил несколько недель, и показал ее одноклассникам и преподавательнице.

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

На тот момент мое отношение к программированию сменилось с безудержной любви на тотальное отвращение.

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

Python-разработчик — с нуля до трудоустройства за 10 месяцев
  • Постоянная поддержка от наставника и учебного центра
  • Помощь с трудоустройством
  • Готовое портфолио к концу обучения
  • Практика с первого урока

Вы получите именно те инструменты и навыки, которые позволят вам найти работу

Узнать больше

Первая работа в интернете и трафиковые проекты

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

В тот период я познакомился с типовыми CMS, HTML и CSS и даже немного «пощупал» PHP, но глубоко погружаться в программирование не было ни цели, ни желания. Зато, погрузившись в SEO-продвижение и маркетинг, я познакомился с движением манимейкеров — людей, зарабатывающих аффилейт-маркетингом, разработкой и монетизацией трафиковых и контентных проектов. И я плотно погрузился в эту тему.

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

Проблемы с заказной разработкой и погружение в IT

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

Однако меня преследовал комплекс неполноценности: я вроде бы варился в IT, мы делали проекты, которые приносили неплохие деньги. Но взять и сделать какой-то нестандартный сервис — мне уже было тяжело. А в общении с разработчиками постоянно присутствовала какая-то дискоммуникация: они постоянно разговаривали на своем птичьем языке, срывали дедлайны, не читали технических заданий, часто делали фигню, и стоили (как мне тогда казалось) неоправданно дорого. Ну как при таких вводных, не имея компетенций в IT, можно разработать какой-то сервис или даже несколько сервисов? Никак!

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

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

К 2020 году модель трафиковых и контентных проектов сломалась, а ковид окончательно добил это направление, поломав всю экономику трафиковых проектов. Пора было что-то менять, и я понимал, что нужно уходить в разработку сервисов. А для этого нужно было глубоко погружаться в программирование.

На YouTube-канале SHIFU Николая Ясинского я узнал про курсы Хекслета — он рекомендовал их как одни из лучших среди тех, что были представлены в тот момент на рынке. И так началось мое знакомство с Хекслетом.

Тяжелая учеба в Хекслете и бесконечные доработки проектов

Проходить курсы в Хекслете я начал в 2020 году, вообще не понимая, чего я хочу и зачем мне это нужно. Начал прохождение курсов с основ PHP, но постоянно колебался в своем выборе — а может, лучше JavaScript? Или даже Python? В итоге поигравшись несколько месяцев с PHP, сменил программу обучения на Python. А дальше начались мучения и в буквальном смысле перманентное насилие над собой и своей психикой.

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

Первые модули были простыми и с основами самого Python проблем не возникало. Но модули по настройке окружения вызывали вопросы и требовали понимания, как устроена операционная система: что такое процессы, какие там есть слои, зачем нужно разграничение прав и ответственности между ними и еще куча всего. И это я не говорю про алгоритмы, основы компьютерных сетей, базы данных... В общем, темный лес. «Да и зачем мне это вообще?», — думал я тогда.

В рамках профессии «Python-разработчик» я выполнял проекты с наставником – ох и намучился же я тогда! Когда один и тот же проект мне отправляли на доработку по пять и более раз, меня бесило все.

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

В общем, я мучился, страдал, но все равно шел дальше. Даже разобрался с рекурсией во втором проекте, сделал третий проект. Но потом все пошло не так.

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

Я искренне был убежден, что проблема во мне, и я чего-то не понимаю — ведь в курсах Хекслета все написано про ООП. Я проходил разные курсы и изучал туториалы по Django и Flask и от других авторов, вроде что-то писал, но уверенности не появлялось. Ну какой из меня разработчик?

Ловушкой для меня стала фраза в чате комьюнити Хекслета, что материалов, представленных в курсе по Python, достаточно, чтобы найти первую работу. Но меня не интересовал поиск работы — мне нужно было начать писать первые проекты. Пусть и примитивные — от идеи до полной реализации, в том числе деплоя. И от того, что у меня как будто ничего не получается, мой интерес к обучению угас (но не пропал!).

Читайте также: Из инженера-электрика и альпиниста — в бэкенд-разработчики. Мой путь в программирование

Работа проджектом в найме и тотальное выгорание

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

Проходя курсы Хекслета, я не понимал, зачем все это нужно. Зачем покрывать код тестами? Зачем автоматизировать деплой и развертывание инфраструктуры? Теперь и с инженерной, и с менеджерской точки зрения понимаю, зачем.

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

Повторное осознанное погружение в разработку через книги

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

Если раньше я хотел изучить все по-быстрому, прочитав какую-нибудь статью или пройдя курс, то после увольнения сел и прочитал в оригинале «Изучаем Python» Марка Лутца. Более 1500 страниц — от корки до корки! Эту книгу часто советуют для полноценного изучения Python, и она заслуженно считается «библией Python», потому что закрывает многие вопросы о том, как устроен язык изнутри и почему он устроен именно таким образом.

Именно прочтение Марка Лутца дало мне уверенность и глубокое понимание языка — то, чего мне не хватало раньше. Всем рекомендую!

Следующей книгой была «Asyncio и конкурентное программирование на Python» Мэтью Фоулера — она закрыла вопросы с конкурентностью и асинхронностью, без которой никуда, если вы хотите писать по-настоящему промышленный код. Отправить 1 миллион запросов через AIOHTTP, а потом через bulk_create записать результаты в БД? На изи!

Третья книга, которую читаю сейчас — «Python. К вершинам мастерства» Лучано Рамальо — в ней Python разбирается еще глубже. Автор показывает лучшие практики использования языка. Еще одна маст-рид книга для тех, кто уже знает базу.

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

А дальше у меня все пошло-поехало. Я просто начал писать код и прикладные приложения на Django, постоянного гугля и в последнее время активно используя ChatGPT. Параллельно изучаю разные библиотеки типа Celery, покрываю код тестами. Недавно автоматизировал сборку Docker-контейнеров и их деплой через GitHub Actions, настроил плейбуки для конфигурирования сервера с помощью Ansible — все, чему учился в Хекслете.

Что в результате?

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

Результатом для меня стало то, что я окончательно вкатился в разработку и прокачал скилл, нехватку которого ощущал предыдущие несколько лет. Ушел в свои проекты и разработку сервисов (сейчас пилю один сервис на уровне MVP). Не мытьем, так катаньем — но своей цели я достиг. И самое главное — я начал получать удовольствие от этого занятия.

И знаете что? Это невероятное ощущение, когда ты можешь взять и реализовать приложение — от идеи до прототипа, а потом и законченного проекта, пусть и небольшого. Сделать все самостоятельно — это просто кайф!

Профессия «Python-разработчик»
  • Изучите Python — язык с простым и понятным синтаксисом
  • Научитесь создавать полноценные сайты и веб-приложения
  • Освойте популярный фреймворк Python — Django
  • Разберитесь в базах данных и научитесь управлять ими с помощью SQL
Узнать больше

Аватар пользователя Дмитрий Волков
Дмитрий Волков 24 июля 2023
20
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 21 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 21 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 21 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 21 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 21 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 21 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 21 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 21 ноября