Данная статья является исключительно моим видением текущего положения рынка. Она не подкреплена большими исследованиями или сложным анализом. Как любой агент рынка (сейчас - наёмный сотрудник, а в прошлом коммерсант) я стараюсь не тратить много времени на принятие решений и руководствуюсь критерием Гурвица, а не какими-то сложными схемами.
Ну и немного о том, откуда я знаю состояние рынка - я достаточно часто провожу собеседование и активно работаю с соискателями разного уровня. В том числе на должность junior разработчика. И то, что я вижу каждый день - просто пугает. Если раньше я нанимал человека и мог требовать понимание технологии уже на базовом уровне, то сегодня - вынужден смотреть, может ли человек в принципе понять IT и его паттерны.
Ниже привожу проблемы, которые повлияли на ситуацию на рынке. Для ленивых - вывод будет простой: "Рынок не здоров. И будет только хуже. Бизнес сам себе наступил на гениталии и не может слышать проблем".
Хипсторы в IT
Когда-то знание языки Си - была стандартом для рынка. Считалось, что человек который учился программированию на таких языках как Basic - потерян для профессии, так как он не понимает как работает ПО и знает только абстракции высокого уровня.
С ростом популярности IT и улучшения средств разработки бизнес пришёл к простой и понятной аксиоме: "Лучше сделать быстрее и начинать продавать первым, чем сделать хорошо и опоздать".
И этот тезис культивируется сейчас везде - среди пользователей, среди программистов, среди младобизнесменов (далее - просто стартаперов).
Почему так получилось:
- Добились успеха компании, продукты которые были собраны буквально на коленке. Успех Uber, Facebook и подобных продуктов стимулировали появления какого-то подобия "золотой лихорадки". Сегодня люди не мечтают сделать хороший продукт, который сделает их "королями" рынка. Они мечтают собрать прототип и найти инвесторов, которые сделают их богатыми.
- Стартаперы часто не понимают процесс разработки и IT. Чаще всего - это люди, которые знают пару странных ребят, которые сидят вечно за компьютером и делают что-то не понятное. У них нет принципов Силиконовой Долины ("Хорошему продукту не нужен маркетинг - он будет продавать себя сам"), они взрощены инфоцыганами поколения SMM. Им не нужен продукт. Они продажники, а не созидатели. Они хотят быстрее продавать.
- Работать в IT стало просто много. Открылось море курсов инфоцыган от IT, которые обещают получение знаний для трудоустройства, большие зарплаты. На фоне дестабилизации рынка труда и повышения интереса из-за COVID19 - на рынок хлынуло море "непрофильников", которые прошли курсы "программирование для чайников" и просят деньги сопоставимые с людьми, которые учились на IT специалистов.
Основной причиной я бы назвал пункт 2, который и стал следствием дальнейшего коллапса рынка. Я бы назвал, что сегодня мы пришли к этапу всемирного Упрощения, подобно героям книги "Гимн Лейбовицу".
Быть бородатым инженером и понимать сложное, делать качественно - стало не модно, не востребовано. Собирать прототипы из "фекалий и пало" - то, что нужно, чтобы быть успешным специалистом. Глубина знаний не имеет значения. Главное - скорость, с которой можно начать продавать.
Как на это отреагировал рынок? Правильно, дал инструменты.
Лучшее враг хорошего
Почему многие программисты с хорошим бекграундом любят такие языки как Lisp, C, Erlang, Smalltalk, Ocaml?
Они простые. На самом деле простые. Чтобы писать на них - не надо изучать большое количество сложного материала, язык "растёт" вместе с потребностями программиста, предлагая решение проблем и задач, когда специалист доходит до уровня таких работ. Просто нужно временами смотреть в стандарте языка, как решить задачу.
Минусы хороших языков
Минус таких языков - кривая обучения. Вы не можете просто сесть и набирать код, не думая как он будет работать. Вам придётся почитать введение в алгоритмы, прочесть что-то по проектированию приложений, узнать о паттернах. И обращаться к документации по языку.
А ещё на мощных языках не так много "батареек". Большая часть задач решается не установкой пакетов, а стандартными средствами языка/стандартной библиотекой. Простой пример - Common Lisp и почти полное отсутствие на нём ORM. Зачем она, когда у языка мощная система макросов, которая позволяет написать генераторы SQL?
Что же нужно компаниям?
Чтобы вчерашний выпускник курсов "для чайников" смог сделать "болванку" проекта, который можно продавать инвестором. Желательно - минимальное знание синтаксиса языка и возможность собирать из кубиков. Главное - быстрее продавать, а не делать качественно. "Кто первый, того и тапки".
Что получают в результате пользователи?
Однотипный интерфейс назовём унификацией и будем убеждать пользователей, что так будет удобнее (такое имеет место быть, но далеко не всегда).
UI/UX инженеры - это долго, дорого и замедлит скорость выпуска продукта. Поэтому от их услуг отказываемся, берём какой-нибудь "материальный дизайн" и тулкит заточенный под него. Любая кастомизация пойдёт под нож.
Производительность? Пользователи, обновите свою технику, ведь она устарела. Наша ПО работает исключительно на современном железе. Обладать новым девайсом - модно, престижно. Заодно - поможем производителям, будем развивать в пользователи идеи "О дивный новый мир", где герои при любой неисправности - выбрасывали вещи. Потребление ради большего потребления - вот девиз современного бизнеса.
А что с забагованностью? Ну мы обещаем, поправим. Вы главное - заносите и верьте. А если не поправим - выпустим другой продукт. Который исправит недостатки этого или будет его дополнять. Но заносить всё равно не забываем.
Неутешительные итоги
Как итог - мы имеем рынок, который наводнён продуктами низкого (то, что раньше называлось pre-alpha), с отвратительным UI и туманными перспективами по доработкам (ведь цель - не сделать хорошо, а сделать доходным).
В своё время, один из авторов SICP сказал, что перевод курса на #Java - был худшим, что было с образованием программистов. После введения #Python он забрал свои слова назад.
Сегодня, когда я собеседую человека по Python, JS или другой модной технологии, то стал узнавать - что он ещё знает. Если человек пишет на #Django и только на нём - сразу в утиль, мне не нужны микросервисы, инфраструктура которых стоит дороже процесса разработки.
Знает frontend фреймворки, но не понимает как работает var? \Туда же - он не программист на JS, а кубикоскладыватель на React, Vue, etc.
Получается - IT рынок сегодня имеет гораздо более лучшие инструменты, чем лет 13 лет назад, когда я только начал работать. Но в то же время - качество разработчиков стало ниже, т.к. в IT культивируется не здоровая культура разработки (подробнее можно почитать тут), мода на те или иные технологии, языки.
Простите, за то, что статья не столь содержательная. Я пытался.