Junior c программист – Реально ли устроиться Junior C++ Программистом не имея профильного образования\сертификатов?

Кто такой джуниор и стоит ли идти им работать?

Джуниор-программист или джун — стар­то­вая пози­ция в про­грам­ми­ро­ва­нии. Это чело­век, кото­рый име­ет неболь­шой опыт рабо­ты с каким-то язы­ком и выпол­ня­ет рутин­ную рабо­ту с пер­спек­ти­вой роста.

Если вы уме­е­те писать про­стые про­грам­мы, пони­ма­е­те их прин­цип рабо­ты и може­те разо­брать­ся в чужом коде с ком­мен­та­ри­я­ми — зна­чит, вы може­те быть джу­ни­о­ром.

Градации программистов и фулстек

Есть четы­ре гра­да­ции в про­грам­ми­ро­ва­нии: ста­жёр, джу­ни­ор, мидл и сеньор (Junior, Middle, Senior).

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

Деле­ние услов­ное, всё зави­сит от тре­бо­ва­ний ком­па­нии. То, что одни ком­па­нии тре­бу­ют от джу­ни­о­ров, дру­гие хотят от мид­лов.

Еди­ных тре­бо­ва­ний к рабо­че­му про­цес­су у джу­ни­о­ров тоже нет. Кто-то ждёт, что чело­век на этой пози­ции будет делать толь­ко вспо­мо­га­тель­ную рабо­ту, но не допус­ка­ют до основ­но­го кода. Мак­си­мум — им могут дать писать доку­мен­та­цию. В дру­гих фир­мах джу­нов сра­зу сажа­ют на рабо­чие про­ек­ты и дают мид­ла в помощь.

За опытом

Если хоти­те быст­ро про­ка­чать­ся в язы­ке про­грам­ми­ро­ва­ния, быть джу­ном — иде­аль­ный вари­ант. Есть ком­па­нии, кото­рые не гото­вы пла­тить мно­го нович­кам, но гото­вы вкла­ды­вать­ся в их раз­ви­тие, что­бы вырас­тить себе силь­но­го про­грам­ми­ста. Они пла­тят по 30–40 тысяч руб­лей, но помо­га­ют вам осво­ить язык: ком­мен­ти­ру­ют код, дают кура­то­ров, обу­ча­ют. При этом вы тоже буде­те делать что-то полез­ное для ком­па­нии.

Тре­бо­ва­ния к кан­ди­да­там про­стые: зна­ние основ язы­ка, жела­ние раз­ви­вать­ся, упор­ство и готов­ность рабо­тать за малень­кую зар­пла­ту. Для мно­гих начи­на­ю­щих это реаль­ный спо­соб за пол­го­да про­ка­чать­ся в про­фес­сии.

За деньгами

Вто­рой вари­ант рабо­ты джу­ни­о­ром — сра­зу начать зара­ба­ты­вать, но тут слож­нее. Немно­гие ком­па­нии гото­вы сра­зу пла­тить нор­маль­ные день­ги нович­кам в надеж­де, что они сами все­му научат­ся. Мож­но рас­счи­ты­вать на зар­пла­ту все­го на 10–15 тысяч боль­ше, чем в пер­вом вари­ан­те, но тре­бо­ва­ния тут дру­гие. От вас будут ждать, что вы сами спо­соб­ны выдать рабо­чий код. Побла­жек на то, что вы толь­ко начи­на­е­те, не будет.

С дру­гой сто­ро­ны, если вы пише­те на попу­ляр­ном и про­стом язы­ке, то кон­ку­рен­ция будет выше, а зар­пла­ты — ниже, пото­му что мно­го жела­ю­щих пора­бо­тать. Тем, кто пишет на ред­ких или пер­спек­тив­ных язы­ках типа Kotlin или Rust, пла­тят боль­ше.

Медианные зарплаты джунов

Мы посмот­ре­ли на ста­ти­сти­ку зар­плат в каль­ку­ля­то­ре «Мое­го кру­га». Дан­ные на нача­ло 2019 года:

Для срав­не­ния: меди­ан­ная зар­пла­та фулстек-мидла — 80 тысяч.

Что в итоге

Джу­ни­ор — начи­на­ю­щий про­грам­мист, кото­рый зна­ет и пони­ма­ет язык, но не решал реаль­ных про­из­вод­ствен­ных задач.

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

Если не бро­сать раз­ви­тие и про­грам­ми­ро­ва­ние, мож­но вырас­ти в мид­ла с зар­пла­той и воз­мож­но­стя­ми поболь­ше, но о них — в дру­гой раз.

Что должен знать junior С#? — Хабр Q&A

Джун должен точно знать что не все в работе программиста — это программирование. Если вы можете легко и связно изъяснятся, понимаете цикл разработки (описание-согласование,разработка, тестирование, интеграция) приложения и умеете читать(!! дада, многое что нужно действительно прочитать и сделать именно так), то у вас уже есть 50% успеха.
По программированию, то что вы можете прям быстро-быстро освоить:
asp.net webforms + EF5+jquery
WebForms -действительно очень старая технология на данный момент, все просто фанатеют и бегают как угорелые за ASP.NET MVC. Но въехать сразу что куда там и как, джуну будет сложно (некоторые мидлы тяжко переваривают, хотя как по мне так все просто там, не зря ж модели основанные на MVC самые распространненные в мире : MVC, MVVM, MVP, MVT).
С EF особо не извращайтесь (например с полной моделью дб). Возьми(те?) EF6 + code first, например, «хау ту» из гугла, и пройдитесь по мануалу. Создав приложение например, которое создает-отображает-модифицирует-удаляет записи из бд, открывайте Management Studio и смотрите что у вас получилось в бд. Напишите запросы на выборку данных соединенных из двух таблиц
Если после проведенных действий вы уже можете написать запросы INSERT, SELECT, UPDATE, DELETE, то уже хорошо, никто не будет от вас ждать глубоких знаний SQL, но и теряться при виде хоть мало мальски сложно запроса нельзя. Плюс как сказал Станислав Макаров, нужно знать что такое транзакции и с чем их есть.
У вас уже не должно вызывать ужас в глазах, приложение которое может это все делать и вы ориентируетесь в его коде. По asp.net’у научились использовать n-ое количество контролов: открываете список всех webforms контролов и прям по списку берете каждый и используете. Если вы будете представлять что есть такие-то и такие-то контролы, то вам будет легче не городить адовые конструкции из таблиц и всяких повторителей.
По самому .NET: один из самых популярных вопросов «что появилось в .net версии %version%?» Поэтому чтобы не потерятся при ответе на такой вопрос, гуглите примерно так
  • Что появилось в .NET 2.0
  • Что появилось в .NET 3.0
  • Что появилось в .NET 4.0
  • Что появилось в .NET 4.5

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

Из книжек, которые можно посоветовать одна из моих любимых это Троелсен. Достаточно качественно объясняет и легко чтобы сразу взять и въехать.

Ну и плюс все что выше описали, достаточно хорошие советы. Походите по ссылкам, почитайте статьи, посмотрите курсы. И самое главное если вы еще не начали, то начинайте учить английский. Грамматика в первую очередь. Банально составлять предложения это ОЧЕНЬ ВАЖНО. Вас никто не поймет если вы будете писать по-русски английскими словами, а вы будете если не возьметесь за грамматику сразу, наравне с программированием.

Как стать «толковым джуниором». Личный опыт / Habr

На Хабре есть уже довольно много статей от джуниоров и для джуниоров. Некоторые поражают степенью зажратости юных специалистов, которые в самом начале своего карьерного пути, уже готовы давать советы корпорациям. Некоторые наоборот удивляют несколько щенячим энтузиазмом: «Ой, меня взяли на фирму настоящим программистом, теперь я готова работать хоть и бесплатно. А еще вчера на меня тимлид посмотрел — уверена, мое будущее устроено». Такие статьи в основном в корпоративных блогах. Ну, и вот я решил рассказать о своем опыте начала работы джуниором в Москве, потому что а чем я хуже? Бабушка мне говорила, что ничем. Как вы, наверное, заметили, я люблю длинные отступления и растекаться мыслью по древу, но есть же любители такого стиля — так что наливайте большую чашку чая — и поехали.

Итак, несколько лет назад: я на 4 курсе политеха в своем тихом провинциальном облцентре. Я прохожу практику в полуразрушенном ( на физическом уровне ) НИИ. «Программирую» на XML’е. Моя работа очень важна для процесса импортозамещения в приборостроительной отрасли. Наверное, нет. Надеюсь, что нет. Надеюсь, что все XML-ки, которые я в полусонном состоянии на автомате набивал в этом НИИ пошли в корзину сразу после моего ухода. Но в основном, я читаю двачи и Хабр. Там пишут о сытой жизни программистов в столицах, которые сидят в удобных и светлых офисах, зарабатывают 300К/сек. и выбирают, какую модель Бентли купить на февральскую зарплату. «В Москву, в Москву» становится моим девизом, «Три сестры» — любимым произведением (окей, я имею в виду песню БГ, Чехова я не читал, конечно, он желчный какой-то).

Пишу своему виртуальному знакомому московскому программисту:

— Слушай, программисты-джуниоры в Москве вообще нужны?
— Ну как, толковые нужны, бестолковые нафиг никому не нужны ( тут было другое слово, если что )
— А что такое «толковый» и что такое «бестолковый». И как мне понять, я вот — какой?
— Чуваааааак, блин, первое правило джуна — не быть душным. Толковый — это толковый, что тут непонятно.

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

Однако я уже очень хотел стать «толковым джуниором». И стал прицельно готовиться к переезду через год. Готовился я, естественно, на своей практике в НИИ в ущерб своей «работе», так что если проект импортозамещения провалится, то вы знаете кто виноват. Из минусов у меня было так себе образование — я потерял энтузиазм к обучению уже после первой тройки на экзамене ( то есть после первого экзамена первого семестра). Ну и еще… это… я не очень умный. Высоколобые ученые и программные архитекторы вызывают у меня немое восхищение. Но все-таки хочется же!

Итак, за время подготовки я:

  • Подучил синтаксис своих основных языков программирования. Так, случилось, что у меня это C/C++, но если бы начать сначала, я выбрал бы другие. Страуструпа я не осилил, сорян сэр, но это выше моих сил, а вот Липпман — самое то. Керниган и Ритчи — напротив отличный туториал по языку — респект таким парням. В целом, по любому языку как правило есть несколько толстых книг, из которых джуниору достаточно прочитать одну
  • Подучил алгоритмы. Кормана я не осилил, а вот Седжвик и курсы на курсере — самое оно. Просто, доступно и прозрачно. Также я тупо решал задачки на leetcode.com. Все easy-задачки я осилил, можно сказать прошел игру на изи-уровне сложности, хе-хе.
  • Выдавил из себя пет-проект на github’е. Мне было сложно и скучно писать проект «просто так, для будущего», но я понимал, что надо, на собеседованиях это спрашивают. Это получился торрент-клиент. Когда я устроился уже на работу, я с огромным наслаждением удалил его с гитхаба. Спустя год после написания мне уже было стыдно смотреть на его код.
  • Заучил гору идиотских логических задачек. Теперь я точно знаю как посчитать число включенных лампочек в зацикленном вагоне, узнать цвета шапок на гномиках и съест ли лиса утку. Но это настолько бесполезное знание… Зато теперь очень смешно, когда какой-нибудь тимлид выдает «У меня есть особая секретная задачка, которая определяет, может ли человек думать» и выдает одну из баянистых задачек, про которые знает весь интернет.
  • Прочитал кучу статей про то, что hr-барышни хотят услышать на собеседовании. Теперь я точно знаю, какие у меня недостатки, какие планы развития на 5 лет и почему я выбрал именно вашу компанию.

Итак, я закончил институт и начал осуществлять план переезда в Москву. Я разместил резюме на hh.ru, место пребывания, естественно указал Москву и откликнулся на все вакансии, хотя бы отдаленно напоминающие мой профиль. Желаемую зарплату я не указывал, потому что понятия не имел, сколько платят. Но принципиально — работать за еду я не хотел. Бабушка мне говорила, что деньги — это мерило уважения тебя работодателем, а работать с теми, кто тебя не уважает, нельзя.

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

  • Российские IT-гиганты. Ну, вы все их знаете. Они могут прислать приглашение «побеседовать» даже если вы не выкладывали резюме, типа мы все равно следим за тобой и все уже и так знаем. На собеседовании — тонкости языка и алгоритмы. Видел как посветлело лицо одного там тимлида, когда я изящно повертел бинарным деревом на листочке. Так и хотелось сказать «изи, изи, рилток литкод». По деньгам 50-60, предполагается, что за «большую честь» работать в компании с громким названием вы поскромничаете по зарплате.
  • Иностранные IT-гиганты. В Москве есть несколько офисов крупных иностранных фирм. Звучит очень круто, однако свой опыт собеседований туда могу описать только так: WTF?! В одной меня долго собеседовали психологическими загонами типа «А как вы думаете, зачем люди работают? А за какую минимальную сумму вы бы стали работать на работе мечты?». После того как градус идиотии достиг максимума мне предложили взять парочку интегралов. Интегрировать я умею только е в степени х, о чем и сообщил интервьюеру. Скорее всего, после расставания мы оба считали друг друга дурачками, но он-то дурачок старый и уже не поумнеет, хе-хе. В другой фирме сказали, что я очень клевый, послали вакансию на согласование в Америку и пропали. Возможно почтовый голубь через океан не долетел. В другой фирме предложили стажировку за 40. Нунезнаааааю.
  • Российские госконторы. Госконторы любят выпускников крутых вузов (с чем у меня проблема). Госконторы любят академические знания (с чем у меня тоже проблема). Ну и плюс госконторы бывают очень разные. В одной дамочка, похожая на школьную учительницу с уверенностью в голосе предложила 15 тысяч. Я даже переспросил — реально 15. В других 60-70 без проблем.
  • Геймдев. Тут как в анекдоте «все говорят фильм для дураков, а мне понравилось». Несмотря на плохую репутацию отрасли, по мне так нормально — интересные люди, 40-70 по деньгам, нуачо, норм.
  • Всякий трэш. В натуральном подвале сидят и пованивают 5-10-15 разрабов и пилят блокчейн/мессенджер/доставку игрушек/малварь/браузер/свой фоллач. Собеседования разные — от пристального взгляда до теста по языку на 50 вопросов. Деньги тоже разные: 30 тыс, 50 тыс, «сначала 20, потом 70», $2100. Общее одно — темные перспективы и темная схема оформления. А мне бабушка говорила, что в Москве все так и норовят обмануть такого воробушка как я.
  • Адекватные середняки. Есть такие конторы середнячки, у которых нет громкого бренда, но и нет каких-то загонов по поводу своей исключительности. Они очень жестко конкурируют за кадры, так что у них нет 5-тиэтапных собеседований и попыток намеренно задеть на собеседовании. Они прекрасно понимают, что кроме зарплаты и крутых проектов — остальные мотиваторы, они уже дополнительные. Собеседования адекватные — по языку, что есть/чего хочешь, какие есть пути развития. По деньгам 70-130. Я выбрал одну из таких контор и успешно работаю в ней по сей день.

Окей, если кто дочитал до этого места поздравляю вас — вы крутые. Вы заслужили еще одну порцию советов джуниорам:
  • Знайте синтаксис своего языка хорошо. Бывают спрашивают всякие редкости.
  • Не паникуйте, если собеседование прошло неудачно. У меня было собеседование на котором после почти каждой моей реплики интервьюеры начинали громко ржать и прикалываться над моим ответом. Когда я вышел из комнаты, мне реально хотелось плакать. Но потом я вспомнил, что у меня через два часа следующее собеседование, а этим #### желаю трудноуловимых багов в продакшне.
  • Не быкуйте на собеседованиях с hr-ками. Скажите девочкам то, что они от вас хотят и идите дальше к техническим специалистам. Я на собеседованиях многократно заверял hr-ок в том, что просто мечтаю работать в телекоме/геймдеве/финансах, разрабатывать микроконтроллеры и рекламные сети. Деньги для меня конечно же не важны, только чистое познание. Да-да-да, я нормально отношусь к переработкам, готов слушаться начальника как маму, а свое свободное время посвящать дополнительному тестированию продукта. yeah-yeah, whatever.
  • Пишите нормальное резюме. Внятно изложите какими технологиями владеете и чего хотите. Всякие «коммуникабельность и стрессоустойчивость» лишнее, особенно если вы категорически некоммуникабельны и нестрессоустойчивы как я.

Надо чем-то закончить статью, так удачи джунам, синьоры-помидоры не злитесь и не обижайте молодежь, всем пис!

от Junior до Senior / WAYUP

Обучайся бесплатно с WAYUP Premiere сегодня вечером

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

Обучайся бесплатно с WAYUP Premiere сегодня вечером

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

Как войти в профессию программиста

Как войти в IT? И с чего начинается путь программиста? Вариантов развития событий существует несколько.

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

Обучайся бесплатно с WAYUP Premiere сегодня вечером

Университет. Если вы только оканчиваете школу, то хорошим решением будет получить высшее образование в этой области. Фундаментальные знания, полученные там и вузовская «корочка» явно не навредят при дальнейшем устройстве на работу. Тем более на старших курсах чаще всего выдающихся ребят работодатели примечают еще на производственной практике и потом с радостью принимают к себе на работу.

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

Обучайся бесплатно с WAYUP Premiere сегодня вечером

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

Уровни программистов: Junior-Middle-Senior

Какой бы из вариантов входа в профессию программиста вы не выбрали в начале карьеры вы получаете гордое звание джуниор (Junior). Дальше вам предстоит миновать звание мидла (Middle) и прийти к сеньору (Senior). Деление это весьма условное, но давайте разберемся, что примерно понимается под каждым из этих уровней.

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

Обучайся бесплатно с WAYUP Premiere сегодня вечером

Middle однозначно уже обладает практическим опытом и может самостоятельно справиться с теми задачами, которые не подвластны Junior. Он может решать нестандартные задачи с минимальной помощью – ему необходима поддержка ментора, чтобы направить его и помочь определить более эффективные инструменты работы.

Обучайся бесплатно с WAYUP Premiere сегодня вечером

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

Путь от Junior к Senior

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

Обучайся бесплатно с WAYUP Premiere сегодня вечером

Что же обязательно нужно и важно делать программисту, чтобы развиваться и превратиться из джуниора в сеньора?

  • Действуйте. Обучение и наработка опыта происходит только через действие. И поэтому единственно возможный способ совершенствоваться заключается в постоянном программировании.
  • Облегчайте себе задачу. Есть даже такая шутка: джуниор пытается все сложные вопросы решить сам, а сеньор знает, где взять ответы на эти вопросы. Поэтому обязательно гуглите, это совершенно нормально, так делает большинство программистов, особенно опытных. У нас была отдельная статья про то, где можно программисту найти ответы на все свои вопросы.
  • Не копите проблемы. Это относится к работе в целом и конкретно к коду, который вы пишите. Старайтесь все проблемные места в коде исправлять сразу, не накапливая и не откладывая на потом.
  • Не пытайтесь изучать всё сразу. Вам, конечно, могут быть интересны несколько языков программирования и несколько направлений. Но с помощью ментора расставьте приоритеты и начните с чего-то одного.
  • Делайте ошибки. Да, пусть вам не кажется странным этот пункт. Делать ошибки –это и есть развитие.
  • Не стесняйтесь чего-то не знать. Если вы пришли на собеседование на позицию джуниора, адекватный работодатель не будет требовать от вас невозможного. И вы, в свою очередь, не делайте вид, что знаете то, чего знать ещё не должны.
  • Никогда не переставайте учиться. Самообразование всегда должно быть присуще вам, если вы хотите пройти этот путь от Junior к Senior.
  • Будьте любопытными. Изучайте и разбирайтесь в новых технологиях; интересуйтесь новинками в области разработки и пробуйте их применять.
  • Делитесь своими знаниями. Работая в команде даже в статусе Junior, у вас уже могут быть те знания и навыки, которых нет у других. Поэтому обязательно общайтесь с коллегами, перенимайте их опыт и делитесь своим.
  • Принимайте активное участие в жизни различных IT-сообществ, посещайте IT-мероприятия.

Как происходит переход между уровнями

Эксперты отмечают, что основным критерием для перехода от уровня к уровню является способность самостоятельно работать над проектом, принимать решения и качество итогового кода.

Опыт не всегда определяет уровень программиста. Как мы уже отметили, бывают случаи, когда программиста с опытом работы 4 года можно отнести только к новичку. И наоборот. За 1,5-2 года человек может достичь такого уровня, что получит звание, как минимум, мидла.

Получается, что для перехода между уровнями обязательно стремление программиста к постоянному росту. У него должно быть желание из раза в раз решать задачи более сложные, чем предыдущие. И при этом он должен осознавать, что ему для этого нужно пополнять свои знания.

Кстати, постоянное обучение важно также для того, чтобы оставаться на своем уровне и шагать в ногу со временем. Любые знания в сфере IT, полученные сегодня, могут устареть через 3-5 лет. Поэтому нужно держать всегда руку на пульсе, чтобы от сеньора до мидла обратно не скатиться.

 Если же процесс работы программиста сопровождается постоянным качественным ростом его знаний и навыков, то путь из Junior в Senior выглядит примерно так. Джуниор становится мидлом в среднем за два года работы. А по прошествии ещё двух-трех лет мидл уже может вырасти до сеньора.

Обучайся бесплатно с WAYUP Premiere сегодня вечером

Путь от Junior-программиста до программиста-Senior способен пройти практически каждый при должном интересе к своему делу. Интерес – это всегда основа развития. Специалист, которому действительно интересно то, что он делает, будет идти на несколько шагов впереди тех, кто просто решает поставленные перед ними задачи.

Нужно быть достаточно зрелой личностью и иметь немалую силу воли и смелость, чтобы достичь вершин профессионализма в IT-сфере.

Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше

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

Но разработчиков различных уровней отличает нечто большее, чем умение собственно программировать. Так в чем именно кроются различия?

Переведено в Alconost

Знания


Очевидно, что старший разработчик обладает гораздо более обширными знаниями. Для младшего разработчика изучить шаблоны проектирования, архитектуру, автоматизацию тестирования, методы повышения производительности и обеспечения безопасности и т. д. — отличный способ сократить этот разрыв в знаниях.

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


Фото — Clem Onojeghuo, площадка Unsplash

Программирование


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

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

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

Как вычислить «джуна»


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

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

Младшие разработчики сосредотачиваются на «компьютерной» части кода, упуская из виду «человеческую».

Как пишут код «сеньоры»


Глядя на код старшего разработчика, можно подумать: и это всё? А где остальное? Достаточно опытный разработчик пишет простой, понятный и, возможно, местами даже чересчур прямолинейный код — и это одно из самых важных качеств, если говорить о программировании. «Сеньор» следует принципу KISS, гласящему, что код должен быть простым и понятным: «Keep it simple, stupid»

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

Не программированием единым


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

Младшие разработчики, как правило, выполняют самые простые и не самые важные задачи; они не занимаются разработкой архитектуры. Разработчики среднего уровня тоже не разрабатывают решения, а просто выполняют задачи, однако их меньше контролируют — если задание довольно типовое. А вот «сеньоры» могут разработать приложение совершенно самостоятельно.

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

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

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

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

А вот в случае «джунов» не следует ожидать, что они смогут задавать нужные вопросы: у них недостаточно практики, поэтому ими должны руководить более опытные коллеги. Младшего разработчика следует обеспечить необходимыми ресурсами или хорошенько подтолкнуть в правильном направлении.

Переход на следующий уровень


Мы все хотим совершенствоваться, в том числе профессионально. Но какие шаги можно предпринять, чтобы перейти на следующий уровень?

От «джуна» — к «мидлу»


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

Что касается программирования — следует научиться писать простой код: представьте, что после вас над проектом будет работать другой человек. Кроме того, придется научиться заниматься отладкой — это углубит понимание того, что происходит во время работы программы.

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

От «мидла» — к «сеньору»


Разработчикам среднего уровня подняться выше может быть довольно сложно: некоторые остаются на этом уровне всю свою карьеру.

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

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

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

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

Заключение


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

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

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

Напоследок процитирую Мартина Фаулера:

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

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

→ Подробнее

в чем разница между Junior, Middle и Senior?

В форме вопрос-ответ кратко обсуждаем ключевые особенности карьерного роста разработчика и отличия позиций Junior, Middle и Senior.

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

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

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

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

Зависит. Чем специфичнее область, тем медленнее рост. То есть, например, в вэбе в среднем становятся Senior быстрее, чем в геймдеве. Реальный уровень определяется разнообразием задач в практике программирования. Распространены случаи, когда специалисты делают в течение длительного времени однообразный код, и остаются по опыту на позиции Junior. Зачастую это вина не только самих разработчиков, но и компании.

Junior: студент старших курсов или выпускник, без существенного опыта работы, обычно 0.5-1.5 года реального опыта. Решает стандартные задачи с незначительными рисками. Джуниору нужно помогать и проверять результаты, не давать слишком сложные и длительные задания. После выполнения приходится регулярно делать code review. Владение предметной областью неполное. Нужно понимать, что часть задач требует дополнительного времени для освоения инструментария. Однако человек должен сам к этому стремиться.

Middle: Основной работник, умеющий самостоятельно выполнять поставленные перед ним задачи. Обычно 1-3 года опыта. Простые задачи можно не ревьюить. Разработчик может делать длительные таски на 1-2 недели и принимать архитектурные решения. Справляется с нестандартными задачами, а стандартные делает быстрее и с меньшим количеством багов, чем джуниор. Предметной областью владеет достаточно, чтобы обсуждать с коллегами, спорить и находить решения. То есть уверенно знает ключевые технологии.

Senior: работник, хорошо знающий предметную область. Опыт фултайма 4-7 лет. Проводит code review, мыслит проектом на уровне архитектуры и понимает долгосрочные последствия технических решений. Умеет предложить глобальные решения и (если это имеет смысл) альтернативные стеки технологий. Нередко совмещается с управляющими должностями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *