«Найти время на учёбу и семью легко, если знаешь цели»

«Найти время на учёбу и семью легко, если знаешь цели»

Илья Соловьёв программировал давно, а после учёбы в GeekBrains стал middle-разработчиком Python
4 минуты5890

Знакомство с программированием и выбор языка

После института я устроился работать цифровым схемотехником в один московский НИИ. Там изучал язык Verilog и писал свои первые прикладные программы для расчётов на C, иногда Matlab. Как-то раз мы делали очень специфичную микросхему. Нужно было поменять логический базис: вместо КМОП-схем, которые легко синтезируются, использовать ЭСЛ (эмиттерно-связанную логику). Мы делали синтез КМОП-схемы, а дальше я с помощью Perl приводил её к другому базису.

Позже я использовал Perl и Python для работы с автоматизированными измерительными стендами, которые делал сам. Физически такой стенд — это микросхема, соединённая с измерительными приборами (мультиметрами, анализаторами спектра) и источниками питания. Для управления стендом микросхему программируют: всем устройствам задают необходимый режим работы. Нехитрый код экономит уйму времени и защищает от случайных ошибок, возможных при ручном управлении стендом.

Со временем возможностей Perl стало не хватать: понадобилось ООП. Надо было выбрать между Python, Go и C#. У Golang, при всём удобстве языка, на тот момент не было готового графического фреймворка типа PyQt или Perl/Tk. С «шарпом» я не подружился. В итоге выбрал Python. В первую очередь мне понравился сам язык — очень гибкий и многофункциональный. Плюс я обратил внимание на огромный набор библиотек и фреймворков, практически на все случаи жизни.

В Москву? Нет, спасибо

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

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

Курсы GeekBrains: что пригодилось

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

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

Ещё за время учёбы мы написали свой интернет-магазин. Правда, он получился так себе. А вот чат вышел хорошим, хоть я и оставил его на сокетах и PyQt. Он умеет сохранять историю сообщений, находить нужные контакты, подсказывает смайлы, позволяет форматировать текст. Код проекта лежит на GitHub.

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

Самыми интересными были два курса по JS c Андреем Кривохатько: по созданию чата и компьютерным сетям.

Время на учёбу

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

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

В среднем я занимался один-два часа в день. С учётом работы это оптимально. Кроме дней с лекциями — там важнее слушать. Изучать большинство предметов было довольно легко, только Django давался с большим трудом. Тогда я понял, что принцип освоения сложных тем всегда один и тот же: садишься, ещё раз попробуешь разобраться, а там смотришь — дело идёт. Вне GeekBrains очень помогает Stack Overflow — без него никуда. Иногда приходят на помощь друзья-программисты.

Моя новая работа

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

Сейчас я уже год работаю в компании «Стратосфера» на должности Middle Python Developer. Основной стек — Flask, SQLAlchemy и куча небольших библиотек для работы с разными форматами файлов.

Что дальше

Продолжаю вникать в систему: не хватает знания некоторых библиотек для работы с xls, docx, pdf. Впервые руками пощупал xml, до этого не было необходимости. Мне всегда больше был интересен десктоп в качестве целевой платформы, хоть и работаю сейчас с вебом. Хочу глубоко изучить базы данных и стать гуру в JS. От этого не уйти ни в веб-разработке, ни в десктопе: очень многое сейчас делается как веб-страница, а потом запаковывается в исполняемый файл.

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

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

программирование
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup