paint-brush
Непопулярное мнение: стать хорошим инженером-программистом сейчас труднее, чем когда-либок@jurajmalenica
8,604 чтения
8,604 чтения

Непопулярное мнение: стать хорошим инженером-программистом сейчас труднее, чем когда-либо

к Juraj Malenica5m2023/10/15
Read on Terminal Reader

Слишком долго; Читать

Как выжить на скоростной трассе технологий: история инженеров, шумихи и сосредоточенности на том, что действительно важно в меняющемся мире
featured image - Непопулярное мнение: стать хорошим инженером-программистом сейчас труднее, чем когда-либо
Juraj Malenica HackerNoon profile picture
0-item

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


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

Определение хорошего инженера

Что значит быть инженером? Как инженеры-программисты, мы:

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

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

Распределение работы по ролям

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


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


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


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

Растущие рынки и конкуренция

Рынок технологий постоянно развивается. За прошедшие годы мы все стали свидетелями огромных успехов: от WhatsApp до Uber, Airbnb и TikTok. Пусть это и исключения, но такие примеры часто задают людям Полярную звезду – то, к чему им следует стремиться. Такой образ мышления оказывает дополнительное давление на инженеров. Они чувствуют стресс изнутри, думая, что делают что-то не так, и снаружи, когда люди сравнивают их компанию со многими конкурентами.

Общая капитализация рынка технологий

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


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

Мир — запутанное место.

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

Все библиотеки JavaScript

Честно говоря, после стольких лет работы в отрасли я все еще чувствовал угрозу со стороны новой волны перемен, которую принесли ChatGPT, GitHub Copilot и другие новые технологии. Мой мозг начал представлять сценарии, в которых я был оторван от многих вещей. Сосредотачиваюсь ли я на тех вещах, которые приносят пользу? Использую ли я свой максимальный потенциал?


Через некоторое время стало ясно, что мы в ажиотаже. Это тоже пройдет, и останутся только компании, занимающиеся искусственным интеллектом, которые создают долгосрочную ценность. Число компаний, занимающихся искусственным интеллектом, за последние пять лет в США удвоилось, причем многие стартапы просто добавили функцию поверх недавно выпущенного GPT-3. Позже они умрут с выпуском ChatGPT или GPT-4 , которые могли бы делать то же самое, но лучше. Но это не мешает армии хайпа Твиттера и других платформ провозглашать новый мировой порядок.


Несмотря на то, что я столько лет проработал в сфере технологий, меня увлекла эта шумиха. Ошибка новичка!


Языки программирования и постоянные выпуски новых фреймворков также добавляют путаницы. Tailwind, TypeScript, Haskell и Rust великолепны; У каждого из них есть свой угол, который дает им преимущество. Однако люди часто ошибочно принимают их изучение за то, что даст им преимущество. Этого не произойдет, или, по крайней мере, не должно быть. Это всего лишь инструменты, которые приятно знать, но они не могут заменить опыт. Вот почему мы никогда не указываем требования к языку/структуре в наших должностных инструкциях. Я был бы дураком, если бы упустил талантливого инженера, потому что он не знает TypeScript, оперативного проектирования или микросервисов.


Мой совет: не поддавайтесь новым тенденциям и шумихе до такой степени, что вы потеряете фокус на создании ценности.

Быстрый темп и большие ожидания

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

Положительный стресс против отрицательного стресса

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


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


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

Как мы можем добиться большего?

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

Уровни влияния

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


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


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