Как развиваться программисту, не меняя работу

Можно ли расти профессионально, не меняя работу. Думаю, я не одна, кто задавался этим вопросом.
Всем привет! Меня зовут Настя и я frontend разработчик. Начинала в небольшой веб-студии, где приходилось создавать интерфейсы с поддержкой Internet Explorer 8. Но не будем о грустном) Последние 5 лет я работаю в международной IT компании с главным офисом в Дании. Когда я сюда устраивалась, все было новое — процессы, стек технологий, общение с иностранными коллегами. Но за несколько лет узнала все это настолько хорошо, что работа превратилась в рутину. Проекты плюс-минус однотипные, новые технологии вводятся с запозданием. Но как специалиста меня ценят. Я могу сама выбирать график работы, и это не про “плавающее начало дня с 9 до 11”, а то количество часов/дней, которые я готова уделять проектам. Например, сейчас я работаю только 3 дня в неделю. Регулярные командировки за границу (в доковидное время), коллеги — классные ребята и отличные специалисты, оплата по рынку и регулярно растет, баланс работы и личной жизни соблюден.
Есть мнение, что, чтобы расти профессионально, нужно менять работу каждые 2-3 года. Так и у рекрутера не будет сомнений, что у предыдущей компании не было с вами проблем, и стек технологий снова станет новым и интересным. Но можно ли расти профессионально, не меняя работу? Тем более сейчас, когда в условиях нестабильности количество открытых вакансий резко сократилось. А при одной только мысли о том, что снова придется проходить собеседования и доказывать, что ты не верблюд, по спине пробегает холодок. Я нашла для себя несколько вариантов, как можно поддерживать форму и увеличивать свою ценность в качестве программиста, но при этом оставаться в той же любимой компании.
Pet проекты

Думаю, этот вариант очевиден. Считается, что для расширения кругозора необходимо изучать парадигмы и сферы разработки, отличные от тех, с которыми вы привыкли работать. Мне доводилось немного работать с PHP, когда в веб-студии мы натягивали верстку на CMS системы. А также пришлось поближе познакомиться с С# и базами данных, когда в другой компании я занималась полной техподдержкой сайта. Что мне это дало? Я поняла, что backend это не мое. Что ж, отрицательный результат — тоже результат, я вернулась во frontend.
Но меня никогда не хватало на то, чтобы писать код по вечерам после работы. Тестовые задания то приходится заставлять себя делать, не то что целые проекты вести. А вот Go-программисту Владу Гукасову это удается. Он разработал сервис автоматизации рекламных компаний, который начинался как pet проект, чтобы автоматизировать работу коллег. Во время работы над ним он изучил PHP-фрейворк Laravel, поработал с асинхронными запросами, погрузился в оптимизацию нагрузок с помощью горизонтального масштабирования. Всего этого как раз не хватало в его резюме. А теперь этот сервис также является источником небольшого, но дополнительного дохода.
Когда идей нет, но есть силы и желание, можно поучаствовать в open-source проектах или помочь некоммерческим организациям.
Open Source. Помощь проектам с открытым исходным кодом. Что можно делать? Исправить баг, или самостоятельно добавить фичу. Участие в open-source разработке прививает хорошие навыки, такие как соблюдение стандартов и написание тестов, ведь ваш код увидят тысячи других разработчиков. PHP-разработчик Андрей Нестер уже писал о том, как волнительно для него было делать первый pull request. И хоть опыт был не совсем удачный, он продолжил и периодически отправлял pull request’ы в любимые проекты Yii2, Design Patterns, Django. Взамен получил гораздо больше — знакомство с интересными людьми и новый неповторимый опыт разработки.
Если вы не готовы разбираться и оптимизировать чужой код, то помогайте с документацией, отвечайте на вопросы в Stack Overflow, выступите с докладом или сами организуйте митап по технологии, как например это позволяет сделать NodeSchool. И хотя под «опенсорс» чаще всего понимают программное обеспечение, есть книги, списки и курсы, которые разрабатываются как опенсорс-проекты. В общем, со всеми подробностями вам в помощь целое руководство по участию в опенсорс-проектах.
НКО. Некоммерческим организациям также время от времени требуется помощь: отредактировать страницу на сайте, починить базу данных, настроить оплату или нарисовать логотип, для этого привлекаются онлайн-волонтеры. Подобные задания можно найти на специальных площадках.
Ко мне обращался специалист по профориентации подростков, и я участвовала в зум звонке, на котором рассказывала о плюсах и минусах работы программиста. Было интересно попробовать проанализировать профессию с точки зрения человеческих качеств. Что тебе должно нравится, чтобы ты выбрал эту работу? Если не программирование, то где еще можно применить свои навыки? Самым запоминающимся вопросом на этом звонке был “Правда ли, что у программистов скучная жизнь?”. А я то думала все представляют программиста в шезлонге у моря, лениво клацающим по клавиатуре, или на вечеринке, отмечающим очередной успешный релиз.
Блог

Каждый из нас прошел свой путь и имеет уникальный опыт, которым стоит поделиться. Я считаю, что не стоит переживать, если нет опыта в написании текстов — все придет с практикой. Все же помнят свою первую программу? Вот и тут тоже самое. Блог помогает закреплять полученные знания и учит формулировать свои мысли, а еще дает отличный толчок к карьере.
Статьи. Мне сложно даются тексты, предложения не льются рекой, их из себя приходится доставать клещами. Поэтому я начала с постов в Instagram* (признан экстремистским и запрещен в России), так как думала, что к полноценной статье не готова и материала мало. К тому же в контактах у меня в основном друзья, и шквала критики я не рассчитывала там получить. И да, не одним Твиттером живет IT сообщество, в Instagram* тоже есть полезный контент. В качестве картинок я использовала личные фотографии, а тексты были не о конкретных технологиях, а про IT в целом — объяснения каких-то терминов и принципов работы, типа “почему не стоит деплоить в пятницу”. У меня было всего 170 человек в подписчиках, но этого вполне хватило, чтобы получить несколько предложений по работе и сотрудничеству, как только в аккаунте появился контент по профильной теме.
Ну а если вы читаете этот текст, значит я наконец написала что-то больше чем пост в Instagram. Кстати, статью можно разместить не только на Хабре, но и на одной из следующих площадок.
Высший пилотаж, это ведение блога на собственном домене, так как здесь вам придется отвечать не только за качество текста, но и за настройку и работоспособность ресурса, а также его продвижение.
Видео. Я уже давно сотрудничаю с порталом видеоуроков LoftBlog. Когда-то откликнулась на объявление о поиске ведущей на канал, и раз в неделю мы стали записывали новости из мира IT. Первая съемка растянулась часов на 5, которые затем превратились в 5ти минутный ролик, а все потому что забывался текст, не хотели выговариваться слова. А еще было так страшно, что лицо в итоге не выражало никаких эмоций. В общем первые ролики были «ну такие», и я получала комментарии, что говорю как робот. Но мы продолжали и со временем стало лучше. Хотя новости в итоге закрыли, но я осталась работать на канале в рамках других проектов. Например, вы можете увидеть меня в серии роликов “Азбука Программиста”, где я рассказываю про IT термины. Считаю, что это отличная практика перед выступлением на конференции или проведением онлайн-занятий. У видеоуроков все те же плюсы, что и у статей — учат формулировать мысли, закрепляют знания, но также учат правильно говорить — без мычания и слов-паразитов, работать с мимикой и жестами.
Подкасты. Еще один способ поделиться своими знаниями: как делать надо или не надо, обсудить последние новости. Что-то среднее по сложности между статьей и видеоуроком, так как не нужно следить за качеством картинки и мимикой, но четкая речь и хороший звук обязательны. Также в рамках сотрудничества с LoftBlog, мне доверили записывать интервью с IT специалистами про их карьерный путь, ошибки и советы начинающим. Мы записывались в студии подкастов, и в основном эти ролики доступны на YouTube, но одно интервью (с Data инженером Артемом Гогиным) можно послушать на SoundCloud или в Apple Podcasts
Онлайн-школы

Преподавая, учишься сам. Есть несколько форматов, в которых можно сотрудничать с онлайн школами.
Наставничество. Я прошла несколько интенсивов при одной онлайн школе и в итоге решила попробовать себя там же в качестве наставника на курсе по базовому HTML и CSS. В мои обязанности входила проверка домашних заданий. Студенты поэтапно создавали веб страницу и я проверяла правильность использования тегов, помогала с расположением элементов и их стилизацией. Мне нравилось работать со студентами. Они пишут код так, как вы бы сами никогда не догадались. Например, используют position:relative и свойства top и left, там, где можно было обойтись одним margin. И нужно было приводить их к правильному решению, объяснять, почему мы делаем так, а не иначе. Но на наставничество уходило много времени, несколько часов ежедневно. Баланс работы и личной жизни явно перестал сходиться, и от наставничества пришлось отказаться.
Преподавание. Так как у меня уже был опыт записи видеоуроков, я решила попробовать себя в качестве лектора онлайн-занятий, когда представилась такая возможность. Сейчас я веду занятия в двух школах и формат работы у них отличается. В одной предоставляют все материалы, презентацию, домашнее задание. И все, что нужно сделать — это как следует подготовиться и провести занятие. В другой — есть только тема, все остальное я готовлю сама.
Иногда студенты задают вопросы, на которые у меня нет готового ответа. Если вопрос из серии “а что будет, если”, то пробуем этот вариант по ходу занятия и смотрим что же получится. Один раз спросили про горячие клавиши в Safari, а я работала только с Chrome. Попытка погуглить во время занятия с треском провалилась, пауза затягивалась, но тут пришли на помощь с ответом другие студенты. В общем, учишься быстро реагировать на нестандартные ситуации и держать лицо в любом случае. Считаю, что это отличная возможность глубже погрузиться в предметную область и структурировать информацию у себя в голове.
Хакатоны

Это соревнования, в котором команды за определенное время (обычно 36-48 часов) создают прототип продукта для решения определенной проблемы. Мне хакатоны всегда казались чем-то для ребят олимпиадников, рожденными, чтобы программировать. Я же никогда сверхспособностями к написанию кода не обладала. Но еще в доковидное время мне повезло наткнуться на рекламу хакатона “Цифровой прорыв”. Там не упоминались страшные незнакомые названия технологий, как это было обычно, да и звали не только разработчиков, но и дизайнеров, менеджеров. Уговорила себя подать заявку, пообещав, бросить эту затею, если что-то пойдет не так.
У меня не было команды. Все, кому я предлагала пойти, отказались. Но перед хакатоном был сформирован общий чат участников, где как раз такие одиночки и объединялись в команды. Я так поняла это обычная практика.
Пойти на хакатон было одним из лучших моих решений. Нам нужно было решить проблему из сферы здравоохранения: придумать систему, чтобы люди не бросали прием препаратов при первых признаках улучшения. В итоге было решено создать приложение взаимопомощи, с менторами и менти, напоминающими друг другу о необходимости принять лекарство. На мне был интерфейс для врача, который делает назначения. Для работы я использовала тот же стек, что и обычно, и этого вполне хватило. Мы с командой выиграли региональный этап и получили грант на разработку проекта в размере 200 000 рублей. Какое-то время работа над приложением продолжалась, но pet проекты требуют много времени, и, насколько я знаю, он лег на полку.
Затем был Всероссийский этап хакатона, проходивший в Казани, на котором той же командой, но уже с новым проектом мы заняли 2 место. Здесь мы решали задачу привлечения жителей к участию в переписи. Тогда же был зафиксирован рекорд Гиннесса как крупнейший хакатон по количеству участников. Впечатлений была масса)
Участие в хакатонах открывает много возможностей — можно найти работу или инвестора для своего проекта, ну и просто познакомиться с хорошими людьми со схожими интересами. Так что новичкам не стоит бояться участвовать, просто ищите хакатоны с пометкой “Beginner Friendly”.
Если перспектива писать код на выходных, еще и без сна вас не прельщает, то в хакатонах можно участвовать не только в качестве участника, но и в качестве эксперта или члена жюри, для этого нужно всего лишь заранее написать организаторам.
Конференции

Я обожаю конференции за их особую атмосферу. И это не новые технологии, а какой-то дух сообщества — много разных разработчиков, все улыбаются, общаются и соревнуются за очередной блокнот или кружку. Скучаю по этому, видеоформат совсем не то. Как-то моя компания выступала в качестве партнера конференции DUMP и мне доверили представлять ее со стендом. Мы с коллегами рассказывали о компании и приглашали на собеседования. Там же разыгрывали мерч и я разрабатывала задания по frontendу, которые нужно было решить, чтобы поучаствовать в лотерее.
Участие в конференции — отличный способ обзавестись деловыми знакомствами и заодно внести вклад в развитие профессионального сообщества. Правда, публичные выступления на сцене перед толпой даже у опытных специалистов, вызывают страх и волнение, что уж говорить о новичках. Но ведь именно там, где страшно, обычно ждут новые возможности. Пока такое выступление только в моем списке планов, но я уверена, что все получится.
Что делать, если не хочется становиться спикером? Можно вступить в программный комитет. В задачу программного комитета входит подготовка конференции — подбор и тренировка докладчиков, работа с комьюнити. На сайте любой конференции есть контакты организаторов, куда и нужно писать о своем желании и опыте. Если будут вакантные места, вам обязательно ответят.
Собеседования

Да-да, в самом начале статьи я писала про холодок по спине только от мысли про собеседования, а теперь сама же выношу их отдельным пунктом в качестве варианта для развития. Но согласитесь, что стресс от тестового собеседования, когда у тебя все хорошо и есть работа, намного меньше, чем когда этот процесс проходит вынужденно.
И все-таки зачем? Собеседования отлично подсвечивают слабые стороны, будь то soft или hard скилы, и показывают направления, где есть возможность для роста. Я была по обе стороны баррикад: и проходила собеседование и проводила их сама. Прохождение собеседований — отдельный навык. Здесь важны не только знания, но и то, как ты себя ведешь и не ляпнешь ли чего лишнего. Помню, как на одном собеседовании кандидат уровня junior, практически только после курсов, начал ругать технологии, которые используются у нас на проектах, с намеком на то, что он бы сделал лучше. Не надо так. Если вас не устраивает стек, можно просто поинтересоваться, что повлияло на такой выбор и как происходит процесс введения новых инструментов.
Итоги
Далеко не все любят писать лонгриды или готовы к публичным выступлениям. Я для себя поняла, что меня драйвит работа с начинающими разработчиками, от них всегда получаешь большую отдачу. На работе в тебя чаще прилетают баги, чем благодарности.
Я всегда была практиком в том плане, что знала, как сделать, чтобы заработало. Но почему оно работает именно так, а не иначе, меня не очень интересовало. С появлением наставничества и преподавания этот пробел в моих знаниях закрылся. Но я бы не решилась вести занятия, если перед этим у меня не было опыта записи видеоуроков. Так одно по цепочке ведет к другому.
С появлением дополнительных активностей в резюме, на него стали чаще обращать внимание рекрутеры, а мне стало проще аргументировать повышение заработной платы на текущем месте.
- Блог компании Школа Loftschool
- Программирование
- HTML
- Фриланс
- Удалённая работа
Как развиваться в IT
Всем привет. Данная статья относится к тем специалистам, которые уже нашли свою нишу в области IT и работают здесь уже несколько лет. Данная статья относится к тем, кто пришел в IT не из профильного университета. Возможно, что Вы, как и я, пришли в IT закончив экономическое направление в ВУЗе. Данный тип людей имеет одну большую проблему: в голове есть только те знания, которые пришли с решением практических задач на работе. Не хватает системного подхода в образовании, а значит данные специалисты имеют ряд «белых пятен» в образовании.
Пример: незнание простых алгоритмов, базовых структур данных.
Примеры в данной статье привожу для программистов, но смысл примеров подходит и для других направлений IT.

Зачем заниматься своим развитием если на работе и так платят зарплату, а Вы знаете, что найти новую работу не составит особых проблем ? Да и когда заниматься развитием ? После 8-ми часовой работы в офисе, а еще и 2-3 часа проведя в дороге между домой и офисом, Вы дома и у Вас есть то небольшое время которое Вы можете уделить своему хобби. Большинство IT-специалистов которых я знаю уделяют свое свободное время компьютерным играм. Сколько времени тогда остается на личностное развитие ? Выходные ? Нет, так как мы высыпаемся в это время, а потом в магазин за продуктами на неделю, кино может быть, время с семьей. В таком режиме проходят годы и что в остатке ? За 5 лет Вы узнали все технологии на своей работе и это все. Ну и да, конечно, Ваш перс в компьютерной игре стал круче (или у танка дуло стало длиннее).
Зачем нужно развиваться?
У каждого человека есть своя планка успеха. Человек ее достигает и останавливается. Кто-то только зашел в IT и останавливается на настройке компьютеров пользователей, а кто-то хочет чтобы его семья ни в чем не нуждалась и поднимает эту планку выше. Кроме материального успеха, часть людей ищут известности. Можно писать статьи в журналы, быть блогером, выступать на конференциях, участвовать и побеждать на хакатонах. Развитие дает Вам возможность получить то чего Вы хотите от жизни (при условии что Вы действительно хотите большего).
Часть людей, прочитав до этого места, подумают: «моя планка 40000-100000 рублей, я не смогу найти лучшую работу». В каком-то смысле это правда, так как каждый человек примерно ощущает свой уровень на рынке. Но многие при этом ошибаются, так как не знают сколько они стоят на рынке. Чтобы узнать это нужно ходить на собеседования.
Правило 1 — раз в полгода идем на собеседование чтобы узнать сколько мы стоим.
Как найти время для развития?
Давайте решим следующую задачу:
Дано: 8 часов в день уходит на работу, 4 часа в день на дорогу вместе со сборами, 8 часов на сон, 3 часа на любимую игру, 1 час на семью. Данные активности в сумме занимают 24 часа, а именно столько у нас часов в каждых сутках. Количество часов в сутках — величина неизменяемая. Следовательно, если мы хотим уделить время на развитие, нам нужно что-то изменить в наших ежедневных активностях. Варианты следующие:
- 8 часов день уходит на работу + 4 часа на сборы и дорогу. Лучший вариант решения — это перейти на удаленную работу. Экономия — минимум 4 часа на сборах и дороге. Плюс Вы сами решаете сколько часов у Вас будет уходить на работу. Как вариант, Вы можете работать 6 часов, но переносить часть работ на выходные дни. В итоге экономия составляет минимум 4 часа.
- 8 часов уходит на сон. Со сном лучше не шутить, сон — это здоровье. Да и любят поспать программисты. Тут ничего не меняем )
- 3 часа на любимую игру. Предлагаю пересмотреть список Ваших игр. Если это игры жанра MMORPG, то от них сразу следует полностью отказаться, так как данные игры кроме потери кучи времени еще и мешают сосредотачиваться на работе, так как Вы в рабочее время обдумываете как бы побыстрее сесть поиграть и что Вам сегодня в игре нужно сделать. В таком режиме невозможно развиваться. Я не могу полностью отказаться от игр, поэтому вместо игр на ПК выбрал одну из игр на телефоне и трачу на нее не более 1 часа в день. Этого хватает чтобы организм получал необходимую ежедневную долю эмоций. Экономия времени составляет 2 часа в день.
- 1 час на семью. Кидайтесь тапками, камнями, но факт есть факт — цифра до боли жалкая. Конечно, есть разница между тем сколько мечтаешь уделять времени детям и сколько реально уделяешь. При переходе на удаленную работу Вы сможете уделять больше времени семье. А если освободитесь от компьютерных игр, то еще больше )
Что мы получаем в итоге ? Переход на удаленную работу важен, так как это дает время на обучение. Отказ от компьютерных игр дает не только время, но и возможность обучения (мозг не занят играми).
Правило 2 — освобождаем время и сознание для своего развития.
Как развиваться?
Многие программисты работают с теми технологиями которые применили по необходимости на работе и не знают что в их стеке существуют и другие технологии.
Примеры для языка программирования C# или Java:
Знаете ли Вы о существовании Nested classes ? О том, что можно внутри класса создать вложенный класс ?
public class Sales < private class Order < >>
Или как Вы ответите на вопрос: можно ли менять переменную класса с модификатором readonly ? Варианты ответа:
- нельзя
- можно, но только в конструкторе класса
- можно делать что угодно используя рефлексии
Чтобы знать ответы на данные вопросы необходимо читать тематические ресурсы. Для .Net считаю лучшим ресурсом metanit.com
Подходим к новому правилу:
Правило 3 — читаем документацию к Вашему языку программирования, к каждому используемому фреймворку.
Английский язык в IT — это способ сильно повысить свою планку при достижении уровня Senior. На начальных уровнях английский нужен минимально. На youtube существуют отличные бесплатные каналы позволяющие поднять свой уровень английского языка. Мне понадобился 1 год чтобы за 15 минут в день поднять уровень с A2 до B2.
Правило 4 — 15 минут в день уделяем изучению английского языка.
Участие на хакатонах, конференциях, митапах
Я был удивлен, но многие люди даже в IT не знают что такое хакатоны. Хакатон — это IT соревнование между командами, обычно длится субботу-воскресенье. Хакатон — это возможность узнать что-то новое в IT, получить призы за участие или победу, познакомиться с разными людьми, а значит расширить свою сеть знакомств.
Зачем знакомиться с другими людьми ? Есть взаимосвязь между успешностью человека и количеством людей в сети знакомств этого человека. Смысл взаимосвязи следующий: если у Вас нет связей, то стать успешным практически невозможно. Если связей много, то любые проблемы решаются, а значит Вы достигаете необходимых целей.
Платите агенству 50% от месячной платы и снимаете квартиру
Кидаете клич среди знакомых и находится кто-то кто знает кого-то сдающего квартиру
Решить новую сложную проблему на работе
Тратите много часов на гугление
Обращаетесь к знакомому, который является экспертом в данной области
Найти новую работу
Отправка резюме по вакансиям hh
Шанс найти работу гораздо выше когда у Вас множество знакомств в IT
Ребенка с кем-то оставить на выходные
Когда есть знакомые, то есть и возможные варианты
Правило 5 — расширяем и поддерживаем сеть знакомств
Как находить проще работу?
Хороший способ заявить о себе миру — создать аккаунт в LinkedIn и расширять сеть знакомств там. Рассказывайте там о своих достижениях. По мере прокачки своего аккаунта Вы будете получать все большее количество предложений о работе.
Правило 6 — прокачивайте аккаунт LinkedIn
GitHub
Сложно представить себе жизнь без гит. Если Вы программируете и не пользуетесь гитом, значит Вы легко теряете свой код, делаете в лучшем случае редкие бэкапы своих данных. Кроме сохранения своего кода — это возможность командной работы, а также показать уровень своего кода любому человеку.
Правило 7 — все наработки сохраняем в GitHub.
Если Вы дочитали до конца, до спасибо. Напишите в комментариях, если Вы с чем-то не согласны.
- развитие
- программирование
- карьера программиста
- удаленная работа
- Программирование
- Учебный процесс в IT
- Карьера в IT-индустрии
- Удалённая работа
Как стать программистом: от стажёра до тимлида с минимальными издержками и огромным КПД
Илья Кучумов из «Яндекса» делится личным опытом и рассказывает, как найти своё место в IT, прокачивать навыки и расти в профессии.


Фото: Bloomberg / Getty Images

Редакция «Код» Skillbox Media
Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.

Илья Кучумов
Руководитель отдела разработки товарного поиска в «Яндексе».
Содержание:
- Как новичку выбрать своё направление в IT
- С чего программисту начинать обучение
- Общение со специалистами
- Стажировка
- По какому пути пойти программисту — эксперта или руководителя?
- Как развиваться в IT: горизонтальный переход
- Что нужно знать и уметь, чтобы стать программистом: хард- и софт-скиллы
- Саморазвитие
- Что самое главное в работе программиста
В IT есть куча разнообразных задач, и каждый может найти что-то для себя. Так что не стоит гнаться за мейнстримом или слепо повторять карьерный путь друзей — не бойтесь искать свою дорогу в профессии.
Расскажу о том, как я стал программистом; возможно, кому-то мои мысли и наблюдения окажутся полезными.
Как новичку выбрать своё направление в IT
Главное в работе — чтобы она нравилась. Поэтому в самом начале ответьте на вопрос: а что интересно именно вам? Например, можно выбирать между фронтендом и бэкенд-разработкой.
Фронтенд — это фасад продукта, который видит пользователь. Начинается он с дизайна и реализуется силами мобильной и веб-разработки.
Бэкенд — серверная часть, которая позволяет приложениям работать между несколькими устройствами или решать вычислительно сложные задачи, которые пока не под силу мобильным девайсам или десктопам. Сюда относятся: инфраструктура, аналитика, машинное обучение или программирование микроконтроллеров.
Подробно о том, чем фронтенд отличается от бэкенда и где они пересекаются, читайте в нашей статье.
За придумывание продукта и его развитие отвечает продакт-менеджер. За организацию процессов разработки — проджект-менеджер.
Есть профессии, изначально не требующие глубоких знаний технологий, менеджмента или языков программирования, но также важные при создании продукта: тестировщик, технический писатель, UX-аналитик. В общем, двери в IT открыты даже для новичков с минимальным набором начальных компетенций.
Также может быть интересно:
- Кто такой тестировщик и как им стать с нуля
- Кто такой бизнес-аналитик, сколько он получает и что надо уметь для первой работы
- Как стать разработчиком игр — 5 первых шагов к работе в геймдеве
- Как стать веб-разработчиком с нуля, почему это актуально и что нужно знать
- Что такое Data Science и кто такой Data Scientist
С чего программисту начинать обучение
Идеальный вариант — самостоятельно попробовать каждое из направлений. Можно начать с обучающих видео на YouTube, коротких курсов и маленьких pet-проектов .
Не обязательно создавать уникальные проекты. Например, обучаясь в университете на программиста, я делал онлайн-шахматы, в которые можно было играть с друзьями по сети. В процессе я познакомился со многими нюансами разработки на языке программирования Python: узнал, как организовывать большое приложение, как работает сервер, как устроены клиентские приложения.
Самым запоминающимся опытом программирования стал сбор отладочной информации с устройств игроков: требовалось сразу сделать всё идеально, ведь при возникновении каких-нибудь проблем я не мог сесть за ноутбук каждого из игроков и отладить программу в ручном режиме.
На «примерку» направления достаточно пары месяцев. Если глаза горят и хочется заниматься проектами постоянно — значит, вы нашли то, что искали.
Общение со специалистами
IT развиваются стремительно. Чтобы понять реальное состояние дел и распланировать свои шаги, неплохо было бы поговорить с людьми из индустрии.
Обратитесь к знакомым, которые уже работают программистами в интересующей вас сфере, поищите людей в LinkedIn и других соцсетях. Ходите на конференции и митапы — они бывают даже в онлайне. Там можно послушать, какие задачи решают «старшие товарищи», а после доклада подойти и задать интересующие вопросы.
Есть ещё одна забавная опция — воспользоваться сервисами Random Coffee или The Breakfast. Они позволяют встретиться с людьми из интересующего вас сообщества программистов. Специальные сервисы организуют такие встречи в крупных городах, причём не только российских.
Очень важно не перепутать этот этап с предыдущим — иначе разговор будет максимально неконструктивным. Имея представление о базовых вещах, вы можете задавать более предметные вопросы и получать более дельные советы. Формулируйте вопрос по схеме: «Я сделал Х, чтобы получить Y. Что я могу сделать ещё и как можно улучшить результат?» Так человек поймёт, что вы действительно заинтересованы и копаете в сторону решения своей задачи.
Стажировка
Почти любой опыт для программиста-новичка начинается со стажировки, поэтому обязательно постарайтесь на неё попасть. Но даже если вам откажут, просите конструктивный фидбэк. На его основе записывайтесь на долгосрочные курсы или в офлайн-школу по выбранному направлению — например, по разработке или менеджменту.
Однако старайтесь не зависать в состоянии вечного студента — пробуйте устроиться снова. Заявляйте о себе как можно чаще.
Подробно про стажировку в IT можно почитать здесь:
- Старт IT‑карьеры: как попасть на стажировку в крупную компанию
- Карьера в IT: почему бесплатная стажировка — это ок?
По какому пути пойти программисту — эксперта или руководителя?
Внутри каждого IT-направления есть два магистральных пути развития: экспертный и руководительский.
Эксперт (или Individual Contributor, IC) — это специалист, который уходит вглубь технических компетенций. Он решает всё более сложные задачи, берётся за большие проекты, изучает новые технологии и повышает скорость своей работы. Как правило, ведущие программисты могут самостоятельно выполнять крупные сложные проекты с отличным качеством и в прогнозируемый срок.
Руководитель — это в первую очередь специалист по управлению вверенной ему командой. Здесь много новых компетенций: наём и увольнение сотрудников, их оценка и мотивация, умение решать внешние и внутрикомандные конфликты, постановка и контроль задач. В руководительской ветке рост происходит в сторону увеличения команды. Сравните масштабы: руководить командой из пяти программистов или управлять пятью руководителями, у каждого из которых своя команда по пять человек.
Возможен и переход из IC в руководство и обратно. Например, при смене проекта, работы или просто по желанию. Ошибочно думать, что руководитель — терминальная точка карьеры. По зарплатам — во многих компаниях ведущие разработчики получают не меньше, чем руководители больших команд.
Как развиваться в IT: горизонтальный переход
Горизонтальный переход — это смена деятельности на смежную при сохранении прежней позиции или с небольшим понижением. Не бойтесь ошибаться в выборе направления. Я знаю много айтишников, которые горизонтально переходили между профессиями.
Простой пример — ручные тестировщики (те, кто проверяет приложение, буквально нажимая на кнопки в нём) могут стать автотестировщиками (теми, кто тестирует бэкенд или даже фронтенд при помощи кода). Автотестировщики часто переходят в бэкенд-разработку — то есть изучают языки программирования и пишут непосредственно код приложения.
Некоторые программисты из веб-разработки переходят в аналитику. Что логично: по роду своей деятельности они часто работают с аналитиками, которые помогают оценить качество и скорость их решений.
Из бэкенда можно перейти и в менеджмент. Тут у программиста два варианта: начать организовывать процессы в команде и стать проджектом или активно участвовать в развитии продукта и стать продактом.
Что нужно знать и уметь, чтобы стать программистом: хард- и софт-скиллы
Навыки специалистов делятся на две категории — хард и софт.
Хард — это профессиональные навыки, которые легко доказать и проверить. Например, умение писать на C++, работать в Excel или паять схемы. Для каждой специальности нужен свой набор хард-скиллов.
Набор необходимых программисту софт-скиллов зависит от команды, компании и ситуации в целом. Это умение объяснять свои мысли, договариваться, вести аргументированный спор, способность работать в команде или разбираться в непонятных вещах.
Для эксперта больше важны хард-скиллы в выбранном направлении, а для руководителя — софты. Например, программист может самостоятельно написать целый проект за полгода, но совсем не умеет отказывать смежникам, которые пытаются отвлечь его на свои задачи. Тогда на помощь приходит руководитель и помогает организовать работу.
Или наоборот: руководитель умеет организовывать процесс разработки, но не до конца понимает технические детали реализации. И это нормально, потому что разработка — командная игра.
Не стоит бояться, что при горизонтальном переходе ранее накопленный вами опыт пропадёт впустую. Софты, полученные во время освоения какой-то специальности или на новой работе, останутся с вами навсегда.
Более того: часто бывает, что прокачанные вами хард-скиллы пригождаются и при смене профессии на смежную. Например, разработчики по роду своей деятельности почти всегда обучаются самостоятельно делать аналитику по своим проектам или подключаются к менеджерским задачам.
Саморазвитие
Важно постоянно сравнивать, как вы и другие программисты решаете похожие задачи, — насколько эффективнее, чем они, выполняете свою работу. Если кто-то делает её быстрее, расспросите его, понаблюдайте за его работой. Узнайте всё вплоть до мелочей: какую среду разработки он использует, какими вспомогательными инструментами и хаками владеет, как выстраивает рабочий процесс и организует свой рабочий день. Затем подумайте о том, что вы делаете по-другому или не делаете вообще.
Универсальный алгоритм самостоятельного развития программиста выглядит так: формулируем проблему, честно рефлексируем, советуемся с ментором или руководителем, делаем выводы, улучшаем скиллы и повторяем попытку.
Так вы найдёте узкое место, догадаться о существовании которого самому будет довольно сложно. Сначала может показаться, что вы тонете в деталях и узнать всё никогда не получится, — и это правда. Как говорил один философ: «Чем больше я знаю, тем больше понимаю, сколько всего не знаю». Но через какое-то время вы заметите, насколько эффективнее и быстрее стали выполнять свои задачи.
Что самое главное в работе программиста
По моему опыту, главное на любом карьерном пути — добросовестное, качественное и проактивное выполнение задач в своей зоне ответственности плюс ещё немного сверх этого.
Будучи разработчиком, я старался не просто выполнять задачи, а брался за целый компонент системы, пусть даже и небольшой. Со временем, увеличивая компетенции, стал техлидом. В мои обязанности входило продумывание сложных компонентов, их декомпозиция и реализация, а иногда и делегирование этих задач. Для этого нужно было уметь просто и понятно объяснять решение как менее опытным разработчикам, так и менеджерам.
Чуть позже я стал руководителем группы программистов, начал планировать долгосрочные цели, их распределение по сотрудникам, мотивацию и контроль. Также я отвечал за наём и рост разработчиков в своей группе.
Сейчас я на позиции руководителя отдела разработки товарного поиска. Зона моей ответственности значительно расширилась, а инструменты управления изменились.
Я веду целое направление, которое нужно улучшать. Я принимаю технические решения, оцениваю возможные риски, связанные с дальнейшим развитием продукта.
Несмотря на то, что в моём ведении большой отдел, я стараюсь обходиться без фраз «не мы за это отвечаем» — часто берусь за задачи, решение которых находится на стыке с обязанностями других команд, и не всегда понятно, чья это проблема. Но именно решение таких задач позволяет программисту замечать новые зоны ответственности и расти.
Читайте также:
- Как стать программистом? Советы преподавателей Skillbox
- Тест. Сможете ли вы разговаривать с веб‑разработчиком на одном языке?
- Как начать программировать на Python
Pet-проект — проект, который разрабатывается в свободное от работы время, для себя.
Как развиваться программисту

МЕРОПРИЯТИЯ
Всероссийский хакатон по биометрии
Комментарии
Популярные По порядку
Не удалось загрузить комментарии.
ВАКАНСИИ

Преподаватель на курс БД SQL в Proglib.Academy
по итогам собеседования

Методист-педагогический дизайнер в Proglib.Academy
по итогам собеседования
ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ
Помнить все: делимся лучшей шпаргалкой по Python
Мы подготовили очень занимательную коллекцию, которая по праву может называться лучшей шпаргалкой по Python благодаря ее простоте использования.
Фриланс для программистов: подборка лучших сайтов
Многие ищут фриланс для программистов, но далеко не все знают, где искать. Мы составили список ресурсов, которые вас заинтересуют.
Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы
В этой подборке представлен список книг, веб-сайтов и онлайн-курсов, дающих понимание как простых, так и продвинутых алгоритмов.