Стадии программистов: 7 стадий становления крутого программиста | GeekBrains

7 стадий становления крутого программиста | GeekBrains

О том, что надо пережить, чтобы понять — вы на вершине.

5 минут

32345

Автор статьи

Илья Бубнов

Автор статьи

Илья Бубнов

https://gbcdn.mrgcdn.ru/uploads/post/465/og_cover_image/678c5f4999f541e30f089bb55438bdf6

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

Стадия 1. Я ничего не знаю

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

Вход в цикл: Решаете пройти обучение, разобравшись в чужом коде, а от себя добавив лишь визуальные изменения. Получилось неплохо, но для реализации новой задумки руки так и тянутся найти готовый пример в интернете. Цикл становится бесконечным, если в мозгу не проставлено условие выхода.

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

Стадия 2. Кажется, у меня есть талант

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

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

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

Стадия 3. Я невероятно хорош

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

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

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

Конец стадии: Рано или поздно сталкиваетесь с тем, что ваша работа становится объектом нескончаемой критики. Коллеги смеются над пробелами в вашем образовании, работодатель срывает телефон из-за сроков исполнения, а заказчик раз за разом находит неточности и несовершенства. Напряжение в голове доходит до точки кипения, вы начинаете допускать ошибки в элементарных решениях и понимаете – программирование не для вас.

Стадия 4. Оказывается, я всё-таки ничего не знаю

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

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

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

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

Стадия 5. Я знаю чуть-чуть и мне этого достаточно

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

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

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

Стадия 6. Не программист – вдохновитель

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

Вход в цикл: Очень мало проектов выстреливает, ни разу не столкнувшись с серьёзными финансовыми и кадровыми трудностями. Попав в одну из таких ям, вы решаете подыскать запасной выход и снизить затрачиваемые усилия. Паника, истерика и простая потеря веры послужат сбросом в предыдущее состояние.

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

Стадия 7. Не знаю почему, но от меня все ждут совета

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

развитиеработаweb_developer

Нашли ошибку в тексте? Напишите нам.

5 стадий некомпетентности программиста / Хабр

Раз за разом я вижу отблески самого себя в «молодых» программистах. Они сражаются с теми же концепциями, что и я когда-то, попадают в те же ментальные ловушки и, в общем-то, делают те же ошибки. Написав пост 4 wrong ways, я задумался, насколько распространены эти ошибки, и можем ли мы их категоризировать. Я попадался в каждую из этих ловушек хотя бы раз, в некоторые по нескольку и видел те же ошибки у других.

Новичок-энтузиаст


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

Отличительные особенности кода: Каждая программа — один файл, содержащий сотню глобальных переменных, ни одна из которых не длиннее четырех символов.
Ошибочное мнение: Программирование — это очень просто.
Подкупающая черта: Мелкий трепет каждый раз, когда он открывает IDE и пристально смотрит на пустой проект, полный потенциала.
Читает: Fan fiction.
Скорее всего скажет: «Вы только посмотрите на эту крутую флэш-игру, что я только что закончил!»

Подающий надежды гений


После нескольких лет программирования, освоив второй язык, подающий надежды гений твердо уверен, что он — Мессия мира программирования. Он убежден, что всё, что он не понимает (т.е. почти всё) — бесполезно, устарело или просто пустая трата времени.

Отличительные особенности кода: Использует собственную реализацию класса Vector. Начинает имена классов со своих инициалов.
Ошибочное мнение: Всему миру нужно научиться гораздо большему от него, чем ему от всего мира.
Подкупающая черта: Его так просто обидеть и заставить уйти в глухую оборону, упомянув что-либо, в чем он плохо разбирается.
Читает: Свой собственный блог.
Скорее всего скажет: «Ха, ну конечно же, все знают что функциональные языки программирования бесполезны для решения *каких бы то ни было* *реальных* задач!»

Поборник абстракции (Abstraction Freak)


Через некоторое время все программисты начинают осознавать, что они начинают каждую новую flash-игру, копируя 90% старой. Неожиданно им кажется, что они могут написать «супер»-движок, и тогда создание новой игры станет вопросом подбора спрайтов и написания конфигурационного файла, содержащего правила! Воодушевленный успехом, программист начинает верить, что архитектура любой программы должна быть обобщена, потом обобщена и, наконец, обобщена еще раз… К несчастью, придерживаясь этого правила слишком долго, программисты превращаются в поборников абстракции.

Отличительные особенности кода: Добавляет пять новых классов каждый раз, когда реализует новую функцию программы, и каждый из этих классов содержит в названии примененный шаблон проектирования и никакой информации о том, к какой функции программы они относятся. Любая бизнес-логика приложения спрятана в каком-то конфигурационном xml-файле где-то в репозитории.
Ошибочное мнение: Написать программу, которая интерпретирует набор конфигурационных файлов, неуклюже и с кучей ошибок описывающих программу, лучше, чем написать программу, которую нужно написать.
Подкупающая черта: Выражение болезненной концентрации на его лице в то время, как он борется с параличом анализа кода, незадолго до того как переписать функцию входа в систему четвертый раз за месяц.
Читает: Шаблоны проектирования, от корки до корки, каждый день вместо обеда.
Скорее всего скажет: «Я думаю, что мы должны начать новый проект по учету рабочего времени с написания обобщенного фрэймворка для приложений…»

Ветеран


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

Отличительные особенности кода: Первые десять строк любой функции, даже геттера или сеттера, содержат исключительно assert’ы. Все исключительные ситуации и негативные сценарии тщательно обрабатываются, комментарии щедро раскиданы повсюду.
Ошибочное мнение: Делать вещи «правильно» — это то же самое, что и сделать то, что нужно, только лучше.
Подкупающая черта: Аура взвешенности и спокойствия, которая даёт понять что даже в случае жуткой необходимости он не будет работать быстрее, оставляющая ощущение что ему бы лучше работать мастером бонсай, а не программистом.
Читает: joelonsoftware.com (да, даже после того, как Джоел перестал писать)
Скорее всего скажет: «Ну, я не смогу назвать сроки, пока я не подготовлю должным образом оценку на следующей неделе, но это будет… будет… [втягивает воздух сжатыми губами]… В общем, на реализацию предпросмотра перед печатью потребуется не меньше четырех человеко-месяцев, без тестирования и документации, конечно же.»

«Гуру»


После десятка лет скаканий от одного стереотипа к другому, наш новичок вырос и чувствует себя пустой раковиной от того энтуазиаста, которым он когда-то был. Однажды утром он просыпается и осознает, что огромная куча unit-тестов, assertion’ов, проверок и навыков проектирования, которые выросли вокруг его стиля — просто костыли. Костыли, которые тяготят его и которые ему вовсе больше не нужны! Он отбрасывает их и начинает писать такой простой и «голый» код, какой он только может придумать, лишь бы сделать именно то, что ему нужно! Свобода для новых функций! Свобода кода! Свобода!

Отличительные особенности кода: Пишет только на динамически-типизированных языках с сильно выраженной функциональной составляющей. Его код сильно похож на код новичка, за исключением того, что самого кода меньше, да и наименования переменных имеют смысл.
Ошибочное мнение: Думает, что его просветленность делает из него гуру без кавычек.
Подкупающая черта: Небольшой трепет каждый раз, когда он видит интересную проблему, которую он мог бы решить «всего шестью строками» кода.
Читает: news.ycombinator.com/newest
Скорее всего скажет: «Вы знаете, полиморфное наследование, на самом деле — жалкая замена функциональным литералам и динамическому типизированию. »

И… Вот она, моя карьера программиста как она есть. Мне интересно — кто-нибудь прошел те же стадии?

Руководство для инженеров-программистов и менеджеров по персоналу

2 июня 2020 г. |
Автор Stefan Pajović в Карьера, Программирование

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

«Если вы идете через ад, продолжайте идти!»

Фраза, приписываемая Уинстону Черчиллю , точно описывает путь, который новичок в ИТ-индустрии выбирает, чтобы стать выдающимся инженером. Эта тяжелая борьба стоит как денег, так и времени (измеряемого годами), но мы надеемся, что конечный результат окажется достойным.

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

We identified 9 programming career stages:

  1. PRE-APPRENTICE
  2. APPRENTICE
  3. SOFTWARE ENGINEER
  4. ADVANCED SOFTWARE ENGINEER
  5. SENIOR ENGINEER
  6. ADVANCED SENIOR ENGINEER
  7. STAFF ENGINEER
  8. PRINCIPAL ENGINEER
  9. ENGINEER of DISTINCTION

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

1. Подмастерье

Ранее поняв основы программирования, программист теперь готов к своей первой должности в ИТ-фирме.

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

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

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

2. Ученик

Поздравляем!

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

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

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

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

3. Инженер-программист

Несмотря на то, что профессия инженера-программиста по-прежнему считается учебной, у молодого программиста появляется совершенно новый набор обязанностей и возможностей. Это отражено в Минимум один год Стажеры должны работать в этой роли, но это может быть продлено до трех Целых лет .

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

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

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

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

Только после того, как все эти требования будут выполнены, независимо от прошедшего периода, программист готов взять на себя роль Advanced Software Engineer и впервые стать совладельцем области проектов.

Итак, путешествие продолжается!

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

4.

Опытный инженер-программист

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

Эта позиция длится от двух , до четырех лет г., который является одним из самых продолжительных периодов в отрасли. Неудивительно, поскольку продвинутые программисты должны научиться писать правильный и чистый код (под руководством), постоянно придерживаясь заявленных лучших практик. Кроме того, ожидается, что они примут участие в техническом проектировании функций, а также специализируются в одной или нескольких областях (например, Ruby, Go, разработка Javascript).

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

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

5. Старший инженер

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

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

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

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

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

В общем и целом, старший инженер — это человек, на которого все смотрят, если возникает проблема .

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

Итак, следующие две ступени карьеры программиста — продвинутый старший инженер и штатный инженер. Давайте рассмотрим, каковы роли Advanced Senior Engineer и Staff Engineer.

Пришло время для поглощения компании!

Ну не в прямом смысле, а в профессиональном, так как путь от Senior Engineer ведет к владению целыми проектами и даже организациями.

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

6. Advanced Senior Engineer

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

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

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

Что касается самой работы, программист до сих пор достиг отличного суждения. Это крайне необходимый навык, поскольку продвинутые старшие инженеры выступают в качестве ресурса, позволяющего разблокировать и включить всю команду. Они обратиться к экспертам во всей компании хотя бы по одному из направлений (Rails, Ember и т. д.).

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

7. Штатный инженер

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

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

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

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

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

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

Оставайтесь с нами, осталось всего два шага, прежде чем мы достигнем вершины программирования.

Последняя часть пазла! Как стать Главный инженер и Почетный инженер .

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

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

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

8. Главный инженер

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

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

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

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

9. Почетный инженер

Вот и все.

Это вершина всех этапов карьеры программиста.

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

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

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

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

Теперь, когда вы знакомы со всеми этапами карьеры в программировании, вы готовы стать предварительным учеником и, возможно, пройти весь путь, ибо, как однажды сказал знаменитый китайский философ Лао-цзы:

«Путешествие в тысячу миль начинается с одного шага».

Share Статья:

Этапы вашей карьеры в разработке программного обеспечения

Вы когда-нибудь задумывались, каким должен быть следующий шаг в вашей карьере?

Откуда вы знаете, какие инструменты, принципы или языки программирования изучать дальше?

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

Каждый шаг представляет собой общее «место», где вы можете оказаться в своей карьере.

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

Каждый шаг основывается на предыдущем.

Это не обязательно соответствует названию должности.

Кто-то со званием «Старший разработчик» на самом деле может быть только младшим разработчиком по своим навыкам и знаниям!

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

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

Я уверен, что большинство из вас, ребята, тоже видели это.

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

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

Начнем!

Кодировщик в основном любитель.

Черты кодера:

  • Знает синтаксис языка программирования — возможно, даже очень хорошо!
  • Может самостоятельно создавать небольшие проекты, такие как видеоигры, приложения и т. д.
  • Хорошее решение проблем
  • Работает отдельно
  • Не получает оплату за свою работу (непрофессионально)

Начинающий разработчик похож на кодера.

Но теперь они входят в сферу ИТ как оплачиваемый профессионал и работают с командой других профессионалов.

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

Они начнут изучать, как соединять разные системы вместе, например, взаимодействие клиент-сервер или подключение к базе данных из кода на стороне сервера.

Он/она является компетентным членом команды и участником.

Они научились создавать базовые системы, такие как веб-приложение.

На этом этапе некоторые из навыков, которым учится разработчик:

  • Понимание базовой архитектуры системы
  • Способен хорошо использовать профессиональные инструменты
  • Базовое понимание шаблонов проектирования, запахов кода и т. д.
  • Понимает, как хорошо работать в команде

П.С. Эта статья взята с сайта YourDevCareer.com, где вы можете найти больше статей и ресурсов, которые помогут ускорить ваш карьерный рост!


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

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

Некоторые черты старшего веб-разработчика, например:

  • Знание шаблонов проектирования, запахов кода, рефакторинга и т. д.
  • Знания об архитектурных парадигмах, таких как проектирование на основе предметной области, поиск событий, CQRS и т. д.
  • Некоторый опыт развертывания и обслуживания серверов
    Инфраструктурные знания о балансировке нагрузки, пулах соединений и т. д.

Да много всего!

В этом примере рассматривались черты Senior Web Developer . Хотя большинство из них довольно общие и используются в разных областях, они могут отличаться для тех, у кого 9 баллов.0013 Старший аналитик данных , Старший разработчик Интернета вещей и т. д.

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

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

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

Дополнительные сведения см. в этой статье.

Технический лидер зарекомендовал себя как эксперт в какой-то конкретной области (областях) и обычно имеет очень целенаправленный брендинг/позиционирование в отношении того, что он делает хорошо.

Это может быть определенный язык программирования, веб-безопасность, фронтенд-разработка с помощью React, наставник разработчика или даже конкретная отрасль!

Они строят сообщества, у которых есть последователи, которые смотрят на них как на прямых или косвенных наставников.