Читая лекции в МТУСИ, приходилось слышать от студентов такие претензии: вот, мол, мы – программисты, а нас тут неизвестно чему учат («телекоммуникации какие-то…»). На что я неизменно отвечал, а вы знаете кто такой программист, то есть разработчик программного обеспечения, и чем он занимается? Если вы хотите стать программистами, то вы пришли учиться не туда, вам надо было идти в колледж (во времена СССР это называлось «техникум»).
Кто такой программист? Это, грубо говоря, подёнщик, которому менеджер проекта со знанием прикладной области (например, это могут быть те же телекоммуникации) и обладающий базовыми знаниями в области программирования, дает задания на разработку программных модулей по заданным входным и выходным параметрам. Этот менеджер мог бы и сам написать программный модуль, который он отдает на разработку «программисту», но его время стоит дороже и задачи его несколько иные. Таких высококвалифицированных специалистов сейчас часто называют «инженерами по программному обеспечению» (Software Engineer), в отличие от Software Developer (разработчик ПО, по сути, программист).
«Software Engineer» (SE) это профессиональный инженер, имеющий достаточно знаний и навыков для применения прикладных инженерных дисциплин при создании программного обеспечения и разработке системного проекта в конкретной прикладной области. SE занимается руководством проектов, а программист их реализует путем написания кода. Программист может вообще не разбираться в прикладной области, главная его задача – корректно написать «код».
Спрос на специалистов класса Software Engineer в последнее время чрезвычайно высок. Вот данные за 2023 год от аналитической компании McKinsey, которая имеет наивысший рейтинг среди аналитических компаний по различным секторам рынка.
На диаграмме показано число объявлений (тысяч) о вакансиях различных профессий. Как видим, в последние два года спрос на квалификацию Software Engineer необычайно возрос, в то время как на Software Developer спрос тоже растет, но совсем не так быстро, как на Software Engineer.

Software Engineer должен видеть проект в двух аспектах: общий план, дизайн проекта и отдельные задачи, необходимые для его осуществления. Он должен уметь находить верные комплексные решения, понимать требования клиентов, прогнозировать возможные последствия и ставить задачи команде программистов по разработке программных модулей.
Software Developer отвечает только за свой «кусок» и представление проекта в целом может не входить в его рабочие обязанности.
That was before 2023.
НравитсяНравится
After 2023, the trend is the same, if not even stronger.
НравитсяНравится
В России такие специалисты называются «кодировщик»
НравитсяНравится