Разработка программного обеспечения — это не то же самое, что программирование

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

Что не является шаблонным (ИМХО), так это фактическое программирование в том смысле, в каком это слово использовали бы Джикстра, Кнут или Мел Кей. Это то, что требует склонности, способностей и чистого таланта. Талант можно было бы заменить на «способность мыслить абстрактно», и я бы не стал спорить.

Программирование — это ремесло

А ремесло является синонимом искусства (как, собственно, и синонимом в тезаурусе). А ключ к искусству программирования — это умение мыслить абстрактно.

Большинство людей мыслят очень конкретно и поэтому не имеют способностей к программированию. Каждый раз, когда вам приходится подчищать код, написанный «промежуточным» (или часто «старшим») программистом, и видеть код, который не является СУХИМ, или видеть комментарии, которые говорят что-то вроде «Эта функция возвращает переданный параметр, разделенный на два» , или видите несколько операторов switch/case для одного и того же перечисляемого члена класса, вы имеете дело с бездарным программистом, не способным мыслить абстракциями. Никакие тренировки никогда не сделают их лучше. Они будут писать плохой код, пока работают, и когда они закончат работу, они никогда больше не напишут ни одной строчки кода. Потому что им просто наплевать на программирование.

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

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