Комментарии 6
Но почему тогда от более опытных и крутых разработчиков звучит что важно понимать программу не на уровне кода, а на уровне взаимодействия этого кода с железом, принципов работы памяти, каким образом обрабатываются команды на уровне процессора и все такое прочее?
Но знание — не самый важный фактор.Не уж то умение задавать вопросы, анализировать ответы и вообще правильно проводить рефлексию задачи — может сделать «посредственного» программиста «сеньором»?
Опытные разработчики пишут более простой код и подходят к этому иначе. Но кроме того, чтобы уметь программировать, очень важно также знать, какие вопросы задавать и что делать с полученными ответами.
код должен быть простым и понятным: «Keep it simple, stupid»На этом момента вспомнилось выражение не программиста
Тут скорее не о мягких навыках а скорее их комбинации с техническими.
То есть по факту нужно знать
1) Особенности работы платформы на которой работаешь начиная от мануалов заканчивая пониманием того что проходит "под капотом"
2) Уметь писать код по паттернам и стандартам принятым для этой платформы
3) Уметь правильно предсказать развитие проекта и построить архитектуру проекта наиболее правильным способом
4) Уметь переводить бред заказчика в бизнес-процессы и бизнес-процессы в спецификации на основе которых собственно строить ТЗ + писать код + покрывать его тестами. Мало того еще желательно уметь проделать этот процесс в обратную сторону (реверс-инженерия)
5) При всем этом нужно не быть "токсичным", уметь followup/feedback и минимальные навыки управления хотя-бы собой и обучения других. Уметь координировать работу всех остальных где то добрым словом а где добрым словом и пистоном
6) И на сладкое понимать чем занимается контора и как оптимизировать её работу.
То есть идеальный сферический senior в вакууме это Программист + Архитектор + Проектировщик + Управленец + Специалист в предметной области.
На самом деле достаточно уметь выполнять хотя-бы 1-2 роли отлично, а остальные хоть как-то и уже все будут считать что ты и есть тот сейнер-помидор и вообще...
Но нужно понимать что это только на конкретную компанию/предметную область.
Например Senior JavaEE из банка внезапно может быть middle для галеры для студии с лендостками и wordpress, junior в 1C и полный нуль в gameDev или IOT.
Опыт и наличие мозга правда позволяют довольно быстро освоить другую предметную область.
5) При всем этом нужно не быть «токсичным», уметь followup/feedback и минимальные навыки управления хотя-бы собой и обучения других. Уметь координировать работу всех остальных где то добрым словом а где добрым словом и пистономВ целом это можно назвать «социальной адекватностью». Но ведь это должно быть как базис в принципе любого специалиста, даже умение управлять. В зачаточной стадии управление есть умение доносить свою точку зрения так, чтобы другие ее не только поняли, но и приняли.
Согласен, последнее время куча статей о том что должен делать %skill level% %platform% разработчик и в них все что угодно, начиная с обучения новичков и заканчивая поклонениями макаронному монстру развертывания k8s и общению с инверторами.
Кроме собственно выполнения прямой работы, т.е. набора решающего проблему работающего кода.
Судя по всему на западе в принципе develop входит в навыки developer by default и рассматривается как должное в следствии чего в текстах статей этот момент не учитывается и при переводах теряеться. Что и вызывает немой вопрос — мол а писать код кто будет?!
Что и вызывает немой вопрос — мол а писать код кто будет?!
Интересно, а это только в
Судя по результатам работы — качество не учитываться, код работает — работает, тесты проходит — проходит. Значит все ок.
В результате мы видим нестандартные сценарии на которые не было тестов, глюки во всех системах начиная с почтовика и апликух на мобилах заканчивая уже более серьезным оборудованием вроде падающих самолетов, машин без тормозов.
Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше