Часто начинающих, но подающих надежды программистов, рекрутеры замечают и хантят еще студентами или сразу после выпуска из вуза. Если вера компании в такого студента, его мотивация и желание стать профессионалом совпадают – получается хорошая команда, а проект успешным и востребованным.
Половина разработчиков в Prom.ua стали частью команды, изначально придя на позицию junior-специалиста. По нашим наблюдениям, в среднем за 1,5-2 года джуниоры проходят путь до middle-разработчиков, а еще за 2-3 года – от middle до senior. А при желании – одолевают этот путь еще быстрее. О том, на что стоит обратить внимание студентам, устраиваясь на работу или интернатуру, в чем отличие работы в аутсорсе и в продуктовой компании, а также о том, как адаптироваться джуниору в большой девелоперской команде, специально для AIN.UA рассказывают сооснователь и технический директор Prom.ua Тарас Мурашко и разработчики продукта компании.
Об образовании
Если вы задумываетесь о том, чтобы начать работать девелопером, самое главное – получите правильное образование в университете с хорошими IT-кафедрами. В Украине такие есть в КПИ, Харьковском политехническом и Национальном университете им. Т.Г. Шевченка. Это база. Далее — все зависит от вас и того, готовы ли вы заниматься самообразованием в режиме нон-стоп, проходить различные онлайн-курсы, лекции. Если вы новичок – вам подойдут Codecademy и Codeschool. Для совершенствования знаний – Coursera, Edx, Udacity. Также в помощь – поисковик по полезным курсам Class Central.
Не стоит пытаться одновременно освоить несколько языков программирования. Лучше выбрать один, отточить на нем мастерство, тогда и другие языки освоить будет проще. К слову, Python — отличный язык для начала обучения, поскольку он прост в освоении и код на нем пишется очень быстро.
Прежде чем претендовать на должность junior-разработчика стоит получить опыт — практическая обкатка и реализация своих идей, работа в opensource-проектах и на фрилансе будут очень полезны.
Самые ценные качества программиста – отличное логическое мышление, самомотивация и увлеченность программированием. Именно эти качества и нужны для того, чтобы стать хорошим разработчиком. Важна также настойчивость, если вы хотите работать в какой-то конкретной компании. В нашей практике были ребята, которые приходили на собеседование четыре раза – каждый раз они знали все больше и больше, но все-равно недостаточно. Но спустя 3-4 года настойчивости и труда все-таки стали частью нашей команды.
Об аутсорсе и продуктовых компаниях
Отношение к программистам в аутсорсинговой компании и в продуктовой – принципиально отличается. В аутсорсинговой компании программисты – это ресурс, приносящий прибыль. В продуктовой компании разработчики – неотъемлемая составляющая будущего компании, основа команды. В продуктовую компанию многие разработчики приходят для того, чтобы «играть в долгую», создавать полезный и работающий продукт.
У нас собрана одна из лучших в Украине команд Python-разработчиков. Мы постоянно обучаем наших ребят. Каждый, кто попадает в команду, с самого начала работает над общими целями проекта, перенимает опыт, разбирается, как работать над глобальными задачами. Больше всего новичков привлекает сама идеология. Мы – украинский проект, работаем на национальном рынке, для украинских предпринимателей. Сегодня нашей площадкой пользуются более полумиллиона бизнесов.
Первое рабочее место: чего ждать?
Игорь, девелопер:
«Естественно, от интерна или «джуна» не ожидают, что он придет и сразу будет «пилить» код главной, выдавая тысячи строк ежедневно. То же можно сказать и про чисто человеческую сторону – никто не «нависает» над новым коллегой, требуя отчет о проделанной работе с таймингом.
Если не пытаться все «проглотить за раз», то вполне легко можно за несколько месяцев понять проект, технологии, работу команды. Когда я пришел, бывало, напишу сотню строчек и – больше ничего не хочется. Но чем больше погружаешься в проект и технологии, тем легче становится».
Антон, тим-лид:
«Сначала менторы доверяют «джуну” небольшие, но нужные для работы проекта таски (например, заменить кнопку, способы взаимодействия элементов страницы и т.п.). Я, например, знал лишь базовые функции, но не знал некоторых архитектурных особенностей, связки моделей с базами данных, некоторые фреймворки, базы данных (например, PostgreSQL), API и т.п. У меня около года ушло на то, чтобы изучить разные «уголки» проекта. А потом я быстро набил руку”.
Начинающие девелоперы в Prom.ua выполняют такие же задачи, как и все остальные. Да, конечно, сложность задач у джуна и «бывалого» – разная, но степень важности этих задач для проекта – такая же, как у более опытных коллег. И на продакшн выполненные джуниорами таски уходят ровно так же, как и у всех. Кроме того, спустя какое-то время видно, как работает новоприбывший и какой делает вклад. Отчасти поэтому нет нужды в каких-то титулах, «погонах».
«Однажды, будучи джуниором, я выполнил одну большую задачу и… на полчаса «вырубил» главные страницы подкатегорий, то есть после того, как я выполнил задачу и она ушла в «деплой» – прошел всего день. Так я увидел насколько мой, пусть небольшой вклад, сразу же повлиял в прямом смысле на работу проекта. И это, я считаю – плюс работы в продуктовой компании: когда ты сразу видишь результат того, что сделал сам, и отзывы реальных клиентов-пользователей, которым твоя работа пригодилась».
Многих может пугать тот факт, что работа каждого разработчика в команде сразу же видна в продукте и есть страх перед тем, что все всё видят. Это так называемый «синдром самозванца» – когда новый человек в команде только начинает работу и понимает, каким огромным опытом и знаниями обладают каждый коллега и вся команда в целом. При этом, он сам пока имеет очень слабое представление о продукте.
«Все через это проходят и даже спустя пару лет работы на проекте, я ловлю себя на том же страхе «синдрома самозванца». Но потом понимаю, что коллеги в команде обладают своими специфическими знаниями, и один человек не может знать все нюансы проекта. При этом, вклад каждого из нас становится уже коллективным опытом и это есть суть самого проекта».
«И на самом деле, это круто и это плюс – работать с людьми, которые умнее тебя и имеют огромный опыт разработки, которым с тобой поделятся. У нас с этим очень просто: достаточно подойти к любому разработчику, тим-лиду или даже СТО – и ты всегда получишь помощь и рекомендации. Наверное, было бы, печально прийти в компанию, в которой ты новичок, но знаешь значительно больше, чем твои новые коллеги».
Если вы хотите действительно хорошо писать код – не нужно бояться самому решить проблему. Часто, ну просто очень часто, «джун» боится сказать о том, что «застрял» на решении. Даже, если не совсем понятно, как выполнить задачу, стоит разобраться в способах решения самому: залезть в исходники, например. Или посмотреть как до вас решали такую же задачу люди, у которых большой опыт работы: зайти на StackOverflow, подсмотреть на GitHub, погуглить, в конце концов. И даже, если застрял – не стоит сидеть над задачей два дня, лучше подойти и задать ментору вопрос.
Что должен сделать молодой разработчик, чтобы устроиться на работу:
- Сделать собственными руками любой проект (сайт, интернет-магазин, простые приложения, и т.п.).
- Постоянно учиться: просто примите тот факт, что вы не самый большой в мире молодец. Всегда будет кто-то лучше, профессиональнее, моложе, с большим объемом знаний и большим опытом их применения. В IT то, о чем вы прочитали вчера на “Хабре” устарело уже, в лучшем случае, год назад.
- Быть любопытным, как кот: изучать и разбираться в новых технологиях; интересоваться новинками в технологиях разработки и пробовать их применять;
- Искать любые возможности для стажировки/интернатуры, обращать внимание на различные курсы с возможностью трудоустройства.
- Найти и активно вовлекаться в IТ-сообщества разработчиков и ходить на их встречи.
- Выбирая компанию мечты, активно продвигать себя и прозванивать рекрутеров после отправки резюме.
- Много работать: если хотите работать в хорошей компании, которая будет о вас заботиться, платить достойные деньги и развивать вас, то будьте готовы много работать.
Ну, а когда вы устроились на работу – это совсем не значит, что не стоит дальше развиваться и учиться чему-то новому. Здесь важно не потерять любопытство, интересоваться новым, активно изучать и не стесняться задавать вопросы. Те наши коллеги, которые проработали в проекте уже несколько лет и знают продукт, которым пользуются тысячи интернет-продавцов, все-равно продолжают учиться чему-то новому.
Автор: Тарас Мурашко, сооснователь и технический директор Prom.ua