Путь программиста: через что придется пройти джуниору, чтобы стать синиором

21593
19

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

Половина разработчиков в Prom.ua стали частью команды, изначально придя на позицию junior-специалиста. По нашим наблюдениям, в среднем за 1,5-2 года джуниоры проходят путь до middle-разработчиков, а еще за 2-3 года – от middle до senior. А при желании – одолевают этот путь еще быстрее. О том, на что стоит обратить внимание студентам, устраиваясь на работу или интернатуру, в чем отличие работы в аутсорсе и в продуктовой компании, а также о том, как адаптироваться джуниору в большой девелоперской команде, специально для AIN.UA рассказывают сооснователь и технический директор Prom.ua Тарас Мурашко и разработчики продукта компании.

IMG_9650

Здесь и далее: фото нового офиса Prom.ua

Об образовании

Если вы задумываетесь о том, чтобы начать работать девелопером, самое главное – получите правильное образование в университете с хорошими IT-кафедрами. В Украине такие есть в КПИ, Харьковском политехническом и Национальном университете им. Т.Г. Шевченка. Это база. Далее — все зависит от вас и того, готовы ли вы заниматься самообразованием в режиме нон-стоп, проходить различные онлайн-курсы, лекции. Если вы новичок – вам подойдут Codecademy и Codeschool. Для совершенствования знаний — Coursera, Edx, Udacity. Также в помощь — поисковик по полезным  курсам Class Central.

Не стоит пытаться одновременно освоить несколько языков программирования. Лучше выбрать один, отточить на нем мастерство, тогда и другие языки освоить будет проще. К слову, Python — отличный язык для начала обучения, поскольку он прост в освоении и код на нем пишется очень быстро.

Прежде чем претендовать на должность junior-разработчика стоит получить опыт — практическая обкатка и реализация своих идей, работа в opensource-проектах и на фрилансе будут очень полезны.

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

Об аутсорсе и продуктовых компаниях

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

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

Первое рабочее место: чего ждать?

Игорь, девелопер:

«Естественно, от интерна или «джуна» не ожидают, что он придет и сразу будет «пилить» код главной, выдавая тысячи строк ежедневно. То же можно сказать и про чисто человеческую сторону – никто не «нависает» над новым коллегой, требуя отчет о проделанной работе с таймингом.

Если не пытаться все «проглотить за раз», то вполне легко можно за несколько месяцев понять проект, технологии, работу команды. Когда я пришел, бывало, напишу сотню строчек и – больше ничего не хочется.  Но чем больше погружаешься в проект и технологии, тем легче становится».

Антон, тим-лид:

«Сначала менторы доверяют «джуну» небольшие, но нужные для работы проекта таски (например, заменить кнопку, способы взаимодействия элементов страницы и т.п.). Я, например, знал лишь базовые функции, но не знал некоторых архитектурных особенностей, связки моделей с базами данных, некоторые фреймворки, базы данных (например, PostgreSQL), API и т.п. У меня около года ушло на то, чтобы изучить разные «уголки» проекта. А потом я быстро набил руку».

Начинающие девелоперы в Prom.ua выполняют такие же задачи, как и все остальные. Да, конечно, сложность задач у джуна и «бывалого» — разная, но степень важности этих задач для проекта – такая же, как у более опытных коллег. И на продакшн выполненные джуниорами таски уходят ровно так же, как и у всех. Кроме того, спустя какое-то время видно, как работает новоприбывший и какой делает вклад. Отчасти поэтому нет нужды в каких-то титулах, «погонах».

«Однажды, будучи джуниором, я выполнил одну большую задачу и… на полчаса «вырубил» главные страницы подкатегорий, то есть после того, как я выполнил задачу и она ушла в «деплой» — прошел всего день. Так я увидел насколько мой, пусть небольшой вклад, сразу же повлиял в прямом смысле на работу проекта. И это, я считаю – плюс работы в продуктовой компании: когда ты сразу видишь результат того, что сделал сам, и отзывы реальных клиентов-пользователей, которым твоя работа пригодилась».

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

«Все через это проходят и даже спустя пару лет работы на проекте, я ловлю себя на том же страхе «синдрома самозванца». Но потом понимаю, что коллеги в команде обладают своими специфическими знаниями, и один человек не может знать все нюансы проекта. При этом, вклад каждого из нас становится уже коллективным опытом и это есть суть самого проекта».

«И на самом деле, это круто и это плюс – работать с людьми, которые умнее тебя и имеют огромный опыт разработки, которым с тобой поделятся. У нас с этим очень просто: достаточно подойти к любому разработчику, тим-лиду или даже СТО – и ты всегда получишь помощь и рекомендации. Наверное, было бы, печально прийти в компанию, в которой ты новичок, но знаешь значительно больше, чем твои новые коллеги».

Если вы хотите действительно хорошо писать код – не нужно бояться самому решить проблему. Часто, ну просто очень часто, «джун» боится сказать о том, что «застрял» на решении. Даже, если не совсем понятно, как выполнить задачу, стоит разобраться в способах решения самому: залезть в исходники, например. Или посмотреть как до вас решали такую же задачу люди, у которых большой опыт работы: зайти на StackOverflow, подсмотреть на GitHub, погуглить, в конце концов. И даже, если застрял – не стоит сидеть над задачей два дня, лучше подойти и задать ментору вопрос.

IMG_9683

Что должен сделать молодой разработчик, чтобы устроиться на работу:

  • Сделать собственными руками любой проект (сайт, интернет-магазин, простые приложения, и т.п.).
  • Постоянно учиться: просто примите тот факт, что вы не самый большой в мире молодец. Всегда будет кто-то лучше, профессиональнее, моложе, с большим объемом знаний и большим опытом их применения. В IT то, о чем вы прочитали вчера на «Хабре» устарело уже, в лучшем случае, год назад.
  • Быть любопытным, как кот: изучать и разбираться в новых технологиях; интересоваться новинками в технологиях разработки и пробовать их применять;
  • Искать любые возможности для стажировки/интернатуры, обращать внимание на различные курсы с возможностью трудоустройства.
  • Найти и активно вовлекаться в IТ-сообщества разработчиков и ходить на их встречи.
  • Выбирая компанию мечты, активно продвигать себя и прозванивать рекрутеров после отправки резюме.
  • Много работать: если хотите работать в хорошей компании, которая будет о вас заботиться, платить достойные деньги и развивать вас, то будьте готовы много работать.

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

Автор: Тарас Мурашко, сооснователь и технический директор Prom.ua

Оставить комментарий

Комментарии | 19

  • Как то все очень депресивно, мляво. Эта статья не для тех кто хочет стать программистом а для тех кто ну как бы не против… Особо порадовало что после КПИ идет Codecademy. Почему бы тогда просто не начать с Codeacademy и самообразование.

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

      • Ну Вы зря так взяли и все ВУЗы обобщили)

        Касательно протирания штанов слышал от людей, которые шли учиться например на физика-ядерщика, на курсе 3-4 шли девелопить куда-то в аутсорсинговую компанию, а потом, полностью уйдя в айти начинали петь все ту же песню, что ВУЗ им ничего не дал. Может просто нехрен было получать непрофильное образование, желая стать айтишником, нет?

        ВУЗы много дают, если понимать зачем ты туда идешь и что ты хочешь в итоге получить. Если этого понимания нет — тогда да, это протирание штанов

        • 5 лет и куча денег. А ради чего? Лично сам ни разу не встречал препода, — которого взяли бы на работу в ИТ компанию 🙂

          • Вы так говорите, как будто стоит очередь преподов перед каждой айтишной компанией, и их не берут, вот блин досада то. Знаю лично достаточно людей, которые, занимают должности SE/архитекторов/руководителей направлений (могу сказать за Самсунг, Люксофт и GlobalLogic), и которые параллельно преподают в КНУ и в КПИ (в свое удовольствие). И чаще всего у них экспертиза покруче будет (особенно в каких-то scientific-related направлениях), в сравнении с обычным выращенным в компании SE из джуна.

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

          • Я ж не говорю о всех…. Чисто среддестатистицески….

        • базовый курс программирования который преподают в ваших ВУЗах можно весь просмотреть на YouTube и понять за 2 месяца. Остальные предметы аля Тригонометрия, Сопромат, теоретическая Физика и прочая херотня для того чтобы стать хорошим it шиком не нужна и в жизни мало пригодится.

          • А мат. анализ, дискретка, линейная алгебра, теор. вер?)
            Да, если клепать говносайты — тогда это возможно и не нужно. А например машинное обучение, 3D рендеринг, распознавание образов, data mining, семантический анализ, в общем список можно продолжать бесконечно, да вот даже построить самый короткий маршрут (чем занимаются собственно GPS навигаторы), вы здесь без минимальных знаний по теории графов не обойдетесь.

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

  • как-то офис оптимизма не внушает)

    • вижу, как и я, мало кто здесь поверил в то что в наших ВУЗах чему нибудь учат 🙂

    • В основном этот вопрос задают два типа людей.
      Первый, это те, кто закончил вуз и ноет что убил 5 лет, при этом не пытаясь сравнить как его экспертиза изменилась с момента поступления и до момента окончания ВУЗа.

      И вторые, которые не поступали никуда или учились в ВУЗах, в стиле ОМУРЧ Украина. Уровень который достигали такие люди — это уровень мидл-эникейщика (знают «много всего», т.е. ни в чем нет конкретной экспертизы, если задача чуточку нетривиальна — все, тупик ). В 95 процентов случаев (специально захожу на linkedin профиля таких людей и смотрю на их опыт работы) вот именно такая ситуация. Да, знаю пару людей, которые не имея формального высшего образования, имеют очень крутые знания и опыт (и в основном благодаря своей усидчивости, устремленности, настойчивости), но это скорее исключение.

      Опять же, это инструмент. Если Вы можете получить знания другим способом (и это более доступно по ценам/по срокам/более удобно), и Вы уверены, что у вас хватит усидчивости и настойчивости закончить определенный курс (Вы видели какой процент людей, которые просматривают полностью курс/сдают все задания на той же Курсере?), тогда я только рад за Вас. Но опять же, люди, забив х*р на ВУЗ, потом и забивают так же и на самообразование.

  • Как називаеться в КПИ факультет на котором изучают програмированние?

  • По поводу математики,она нужна,но смотря какому программисту,я работаю full stack разработчиком правда начинающим,математику кроме арифметики не использую вообще.Даже двухмерные массивы не приходилось использовать.А если нужно построить график,отсортировать что-нибудь или посчитать,для этих целей есть очень много open source написанных библиотек,которые реализованы лучше чем вы сможете это сделать.Например знакомый есть который стал Unity 3D разработчиком,притом что там нужны векторная алгебра и аналитическая геометрия,которых ему в вузе не преподавали.И ничего сам выучил и пошёл работать.

  • Вакансий в IT море. Если нет опыта, можно чуть потерпеть и поработать в небольшой фирме. Гляньте Авито, хх, сейчас каждая вторая контора своего кодера ищет, при том, что работа сводиться к нарисовать пару лендлингов и залить прайс в интернет-магазин. Пусть по деньгам не всегда много, но для резюме сгодится.

Поиск