А далее наша планета попробует в IT без генералистов
И пришел к выводу, что даже в человеческих наречиях нет предложения, которое не отражало бы всю вселенную целиком; сказать «тигр» — значит вспомнить о тиграх, его породивших, об оленях, которых он пожирал, о траве, которой питались олени, о земле, что была матерью травы, о небе, произведшем на свет землю.
— Хорхе Луис Борхес. Письмена Бога
Простите, я тут повангую и поностальгирую немного. (Не нашел для этого хаба лучше, чем этот). Когда-то, лет в 22-25, я "почти все знал про IT". Конечно, не в полной мере, но имел представление обо всем, какой-то хотя бы небольшой опыт во многом. Да, отчасти это можно списать на юношескую самоуверенность и Даннинга-Крюгера (где-то я возможно не видел границы своей некомпетентности), но только отчасти.
Я считаю себя генералистом. То есть, такой "универсальный солдат", могу кун-фу, могу самбо, могу стрелять из гаубицы и из лука, управлять гироскутером, камазом и звездолетом, и все это делаю одинаково плохо (но, тем не менее, гравицапу установить и координаты в тентуре расчитать смогу). Думаю, что я достаточно важный и ценный сотрудник там, где я работаю, и очень неплохо зарабатываю, в пересчете на час работы. Однако, если бы я пошел на собес на позицию какого-нибудь программиста или админа - наверняка завалил бы продвинутые тесты по множеству тем, кроме нескольких. Любой узкий специалист который 10 лет делает одно дело, знает это дело лучше и глубже.
Сфера IT в мои 20+ самом деле была гораздо меньше, чем сейчас. Через пару десятков лет после первого сеанса братьев Люмьер было несложно стать киноведом, который видел все фильмы.
К примеру, MySQL и PostgreSQL вышли в середине 90-ых. Тогда было несложно знать эти новые крошечные и простые проекты. Отработал JOIN слева, JOIN справа - и вот у тебя уже черный пояс по SQL, а значит и по базам данных в целом (потому что больше пока что ничего просто и нет). До появления Redis (key-value) было еще 10+ лет, до CockroachDB и Prometheus - 20 лет - можно было ничего о них не знать, и быть полноценным гуру в СУБД с полными знаниями о теме! Сейчас я не уверен, что смогу назвать даже все типы СУБД которые есть (реляционные, key-value, документные, графовые, time-series, ....), не говоря уже о названиях проектов. Что мы сейчас (в суровой реальности) можем ожидать от программиста в сфере баз данных? Мы ему объясняем проект, он нам распишет схему, как ее по табличкам разбить, какие индексы создать и что подкрутить с настройками СУБД под нашу специфику. Но это очень плохой уровень . А что я хочу от эксперта? Чтобы он сказал, к примеру: тут вам лучше вообще не реляционную использовать, а NOSQL, вот либо СУБД А, либо B, либо C (она только в прошлом году появилась, но очень интересная!). Но у A плохая лицензия, подходят только B и С. По скорости, для ваших задач лучше подойдет B, она на таком типе нагрузок по бенчмаркам быстрее работает, но у вас Debian на серверах? А у нее на Debian есть утечки памяти - возможно это блокирующая проблема. Еще, вы хотите из Java с ней работать? Для Java у нее нет клиента, только для C и Python, так что, придется доработать или дождаться.
Ни один IT-генералист не имеет сегодня достаточно компетенции, чтобы так ответить. И я сомневаюсь, что есть много DB-генералистов, которые могут так. Это сегодня. А через 10-20 лет, когда технологий будет еще больше? И это только про тему баз данных, которая составляет может быть ~5% от всего IT. Даже эти 5% - уже необъятны.
Еще интересное слагаемое этой проблемы - айтишники (нормальные, а не с курсов IT для таксистов и филологов) - это те люди, кто всегда учатся. Кто-то вширь, кто-то вглубь, но человек с условными 20 годами опыта - офигенно много знает. И пока сфера IT хоть как-то в голову впихивается - то можно найти эксперта после 20 лет стажа - который может в голове ее почти всю держать.
На заре IT мы были дикарями, которые умели собирать плоды-корешки и плясать вокруг костра и всё (нехитрые навыки). И все развитие шло в том темпе, что нам почти хватало времени его выучить. Кто-то изобрел копье, мы удивились, и научились использовать копья для охоты. Потом кто-то изобрел символы, иероглифы, буквы - и мы освоили письменность. Кто-то написал первое стихотворение - мы его разучили наизусть. Потом кто-то изобрел теорему Пифагора, с доказательством на полстранички и мы ее тоже выучили.
А как сейчас новичку в IT? Он так же умеет лишь собирать вкусные плоды и плясать вокруг костра (ничуть не глупее нас), но ему нужно усвоить весь накопленный объем знаний, и про управление истребителем, и про сложности многопроцессорной обработки, и теорему Пуанкаре, и про лечение болезней почек и про катарсис и литературные метафоры у Франсуа Вийона и про то как повышение учетной ставки ФРС США сказывается на экономике Южной Африки. И чтобы любое из этого ему полностью объяснить - надо объяснять по порядку, с изобретения копья...
Конечно, это все невозможно впихать в голову в принципе - не влезет. Не влезет и 1% этих знаний. Но, допустим, за жизнь влезет 0.1%. Это за жизнь. А за первые 3-5 лет обучения-работы? 0.01%? Получается (продолжая метафору дикарей), наш ITшник будущего будет сразу учить сложные темы, пропуская простые (или очень поверхностно их затрагивая). Причем, чем дальше в лес, тем более сжато надо учить основы. Если сейчас погружение в эти темы на метр, то далее будет на полметра, на сантиметр, на миллиметр...
То, достаточно целостное и структурное понимание, которое было у нас - сейчас невозможно получить. Не потому что молодежь тупая и тиктоки смотрит, а потому что сфера уже стала слишком большой, а голова не резиновая. Теперь в IT можно быть только узким специалистом. И любой ITшник будущего - стоит на верхних ступенях лестницы, но под этой ступенькой нет более нижней, она как бы в воздухе болтается...
А теперь сложим это вместе. Мы живем на границе времен. Последние годы эпохи, когда IT создавали люди, которые имеют более-менее полное представление об IT в целом. Молодой студент Цукерберг вполне мог создать фейсбук с нуля, потому что имел достаточно сносные знания о PHP, JS, СУБД, протоколах и HTML. Нынешний фронт-енд программист, если он хочет побыстрее освоить тему фронт-енда - не должен отвлекаться на бэкенд и тем более СУБД, ему бы разобраться с JS фреймворками! А кто будет делать фейсбуки будущего?
Начинается эпоха, где будет много специалистов и не будет генералистов... По аналогии с медициной - есть, кто может перелить кровь, есть кто может вырезать аппендицит, есть анастезиолог, но по вашей конкретной ситуации, когда "что-то тут сбоку болит" - нет никого, кто бы понимал устройство человека в целом, разобрался бы и если нужно - направил к профильному специалисту. Или, вы приходите на СТО, машина потеряла динамику... но нет того, кто бы разобрался почему. Зато есть, кто может поменять масло и фильтра и свечи. Это тоже иногда влияет на динамику. И вы меняете свечи, хотя дело не в них.
Истинно вам говорю, 4 мая 1925 года, Земля налетит на небесную ось.