Чем больше я работаю кодером, тем больше меня всё разочаровывает. Я наплакал небольшое полотно, пусть тут повисит, короче.
Все IT-спциальности по факту целиком состоят из дилетантов в том смысле, что образование их не готовит. Судя по всему, ни у нас, ни там. Программистов не учат в универе приёмам, которые они потом используют. У самих приёмов и технологий нет необходимых доказательств или даже исследований, доказывающих, что они действительно что-то делают. Нет доказательств, что, скажем, ООП работает. Всё сводится к тому, что все кодеры входят в какие-то секты, основанные на вере и личных переживаниях. Программисты не доучивают ничего до какого-либо логического конца, будь то теория графов, ООП или MySql, и постоянно сталкиваются с задачами, решать которые тупо не готовы по знаниям или навыкам.
Все программы не дописаны полностью, баги никогда не правятся полностью, многие программы работают медленно из-за плохой оптимизации. Программисты рекламируют своим заказчикам, что те потом смогут всё в программе поменять, а когда доходит до дела, то уже поменять что-либо оказывается невозможно. Многие вещи делаются хуже и медленнее, чем можно было, потому что так это смогут доделывать более глупые и дешёвые кодеры, которым можно меньше знать и уметь. Во многих случаях производительность труда из-за этого меньше, чем могла быть.
А ещё все трубят, что кодеров много как собак нерезаных, и это уже не пристижно нифига. А когда открывают вакансию, то оказывается, что на самом деле никого нет, и заполнять её некому, потом набирают кого попало.
Баги в программах имеют много уровней - баги созданные самим разрабами, баги в использованных либах, баги в либах, которые используются в либах. Ничего невозможно написать без либ, а следовательно - без багов. Как бы хорошо ты ни писал, как минимум баги либ всегда есть. Ты находишь и намереваешься написать репорт, чтобы узнать, что баг уже известен, и вот уже 10 лет его не исправляют, так как он совсем минорный, хоть и баг. Воркэраунд заставляет написать в 100 раз больше кода и вот ты уже не укладываешься в сроки. Платная поддержка нужна, чтобы узнать из первых рук, что так задумано, или оно так не поддерживает.
Часто программисты используют либы, которые они в принципе не знают, как работают, так как документация недописана или не написана вообще, если на инглише есть, это ещё хорошо, а уж кодеры, не знающие инглиш, - так вообще - часто рыщут в потёмках.
Разрабы говорят заказчикам, что они всегда могут обновляться, и всё должно работать, и очередной апдейт снова и снова привносит баг, и функциональности отваливаются, а бизнес иногда простаивает. Пользователи активно вовлекаются в процесс тестирования, и каждый релиз идёт со вздрагиванием, и все сразу знают, что что-то сломается.
Все постоянно думают, что они смогут один раз быстро написать программу, и потом её не менять, а потом годами меняют её снова и снова, и каждый раз удивляются.