Сложность работы программиста зависит от того, в какой сфере работает, какой язык использует. Ну и какие задачи выполняет.
Можно привести аналогию. Программирование - это навык. Вождение, это навык, лечить людей - навык (условный терапевт), учить людей - тоже навык. Люди одной профессии могут работать в разных условиях. Например один водитель камаза может работать в Сибири, гонять по лесам, уметь управлять коробкой передач, обслуживать авто, чтобы не застрять в трясине. Другой - будет ездить по асфальту 99% времени, развозить товары со склада по магазинам. Можно взять всех водителей грузовиков и посмотреть примерно их сложность.
Аналогично с программистами. Да, количество компаний/задач растет, где нужны программисты, инсрументы становятся доступнее. Пример задач для веб программиста - сделать форму создания поста, сохранение в базу, а также формы редактирования, просмотра поста и списка постов. Большая часть задач кладется в подход "создание-обновление-просмотр-удаление" (CRUD), поэтому одних веб-программистов называют крудошлепами, а других формошлепами.
Но не все так просто. ПРедположим, что нам таки пришла задача "сделать блог" или обычный сайт-визитку для компании. При выполнении задачи появляются множество вопросов, типа.
- Где взять макет, как его хранить, делиться
- Какие технологии использовать для решения задачи
- Как сделать так, чтобы мы погли вернуться назад и вообще как-то логировать наши изменения
- Как сделать так, чтобы мы могли показать промежуточный результат
- Как сделать так, чтобы конечный пользователь мог получить конечный результат.
Т.е. при решении простой задачи, типа "сделать простую текстовую страничку" возникают подводные камни, которые нужно учитывтаь и уметь решать.
На самом деле с годами задачи программистов +- те же. Например те же самые CRUD это просто работа с данными. Такая же работа с данными была и 20 лет назад, просто изменились технологии, языки.
80% задач решаются 20% знаний, потому что задачи достаточно типовые. Есть задачи, для которых нужны оставшиеся 80% знаний, но они пригодятся только в 20% случаев. Как пример - маловероятно, что сельскому фельдшеру доведется лечить человека от вируса Эболы.
Вообще, хорошо уметь различать простоту и легкость, сложность и трудность. Об этом есть
доклад программиста Рича Хикки (создатель языка Clojure). В наше время разработка стало скорее проще
Насколько сложна деятельность современного программиста и не станет ли с годами ещё сложнее, с необходимостью знаний ещё несколько языков\наук\и.т.д.?
На самом деле с опытом изучать новые вещи и языки становится проще, потому что концепции программирования они одинаковые. Т.е. изучая один язык грубо говоря изучаешь все, просто где-то есть свои нюансы. А по поводу науки - ну математика, информатика, логика - они вряд ли поменяются. Даже законы физики практически те же, что и 200 лет назад. Просто изучение наук связано с тем, с чем работает программист (например программирует ядерный реактор или физику частиц)