Сложность действительно есть, но искать её надо не там, где кажется:
- Количество языков программирования действительно растёт, потому что растёт и развивается индустрия. Но в вакансиях не предъявляется требование "знать минимум N языков". Часто нужно глубокое знание одного конкретного.
- Сложность приложений тоже растёт, но сложность разработки конкретной части приложения остаётся такой же, а зачастую становится проще. Об этом хорошо написал Вадим. Программисту не нужно разбираться в том, как именно реализованы нижние слои абстракции приложения, которое он разрабатывает.
А вот сложности, с которыми сталкиваются программисты в первые годы своей работы:
- Окажется, что код надо писать не просто "чтоб работал", а ещё и такой, чтобы он был понятен другому человеку. Парадокс, но по настоящему простой и понятный код может писать только хороший опытный программист. На приобретение этого навыка у многих уходят годы.
- Нельзя написать код раз и навсегда. Код, который ты написал, потом нужно будет изменять — или тебе самому, или твоему коллеге. А ещё на его основе будет писаться другой, новый код. Получившаяся система должна расти, но не зарастать излишними усложнениями и не рушиться под собственным весом. Навык проектирования надёжной устойчивой к изменениям архитектуры формируется ещё несколько лет. Это ключевое умение для перехода в "сеньоры".
- Детальных инструкций "что надо сделать" не будет, и это нормально. Создание чего-то нового — это творческая работа с неизвестным конечным результатом. Хороший разработчик выше уровня junior должен решить возникшую у заказчика проблему, а не просто "сделать что сказали". Вообще кодирование, то есть непосредственно написание кода — это меньшая часть работы программиста. Придётся много думать и анализировать, а потом уже писать (или давать конкретные инструкции джунам). С появлением low code решений, ИИ-помощников и прочих инструментов автоматизации разработки, траты времени на чистое кодирование будут только уменьшаться.
- Для интровертов неприятным сюрпризом станет необходимость много общаться с людьми, много слушать и иногда убеждать. А ещё придётся читать чужой код и искать в нём ошибки.
- Нужно будет постоянно учиться, читать книги и документацию, причём на английском. Нельзя один раз "выучиться на программиста" и дальше просто штамповать однотипную работу (на самом деле можно, но это скорее исключение). Индустрия быстро меняется, постоянно появляется что-то новое. После набора критической массы знаний процесс обучения пойдёт легче, но так никогда и не остановится.
Сейчас действительно появилось много обучающих курсов, потому что возрос спрос. К сожалению, пока что это приводит в основном к обогащению самих авторов курсов, а не их выпускников. Рынок становится переполнен начинающими программистами, при этом опытных специалистов сейчас по прежнему дефицит. В этом смысле вхождение в профессию, действительно, стало несколько сложнее.