Гори это ИТ синим пламенем
Когда-то давно я мечтал стать программистом. Еще со средних класов школы начал ездить на олимпиады по программированию, писал игровые моды и просто нереально кайфовал от того, что делал. Начинал еще с Turbo Pascal, потом С, потом скриптовые языки, в универе математическое моделирование на С++ и matlab. Только в универе пришлось на теор.физике тусоваться, ибо не прошел по баллам на программирование, но да ладно. Спустя 3 года я все таки решил кинуть физику, так как просто не видел денег в этой сфере в своей стране, и получил все таки первую работу в долгожданном ИТ. Это была серверная разработка на Python.
С тех пор прошло уже 6 лет. Не могу сказать, что я сверх нерд и мое мнение авторитетное - но какой-то опыт в своей сфере все таки имею. Повидать успел с десяток различных компаний - от крупнейших в СНГ и крупных на диком западе, до мелких стартапов ( не думайте, что я во всех них успел поработать - просто видел и знаю). Это печально. Я не встретил ни одной компании, за которую можно было бы гордиться. И, возможно, некоторые из компаний имеют известные имена, но сути это не меняет.
Сложилось такое ощущение, что вокруг какой-то базар: менеджеры продают огурцы, а ты их выращиваешь. Очень интересно то, что эти огурцы еще нужно уметь высаживать за время более короткое, чем натуральное время роста самих огурцов. Кроме того, можно в итоге сдавать не сами огурцы, а просто гнилую ветку с леса, но с надписью "огурец" и это отлично проходит. В итоге, это огромный рынок, где собралась толпа каких-то людей с улицы, которые краем уха слышали о программировании, их же главная цель - продать побольше различного шлака с дороги под другим названием, лишь бы покупатель (ненавижу слово "клиент") деньги отдал. А если этот покупатель потом скажет, что товар не годится, то уже ищи - свищи.
Бесконечная гонка по производству второсортных отходов. Нужно больше и быстрее. Что будет - не интересует, всунем рекламу и раскрутим. Не раскрутим - сделаем другое, третье, пятое и опять раскрутим. Цена разрабов растет - джуны с сертификатами скоро после первого месяца работы будут на меринах ездить. При этом знаний все меньше и меньше. Ну а что? Теперь можно код писать перетягивая блоки на экране. 2 года назад я очень сильно удивился, когда один молодой парень очень хвастался, что он знает этот ваш React.JS, как свои пять пальцев, но он не мог понять, как можно вставить на обычную статическую html страницу кусок кода js, чтобы он выполнился. Понимаете? Уже даже HTML - это сложно.
Давайте напишем новое приложение, оно будет простое - соберем статистику с клиента, покажем пару графиков и отправим еще парочку отчетов. Что теперь будем делать? Конечно ставить кучу всего ненужного: давайте на бек postgres как основная, redis как кеш, rabbitmq для обмена сообщениями, 3 сервиса на петухоне + селери отдельным инстансом. Потом давайте на каждую единицу сделаем кластер, все сервисы завернем в докер, потом давайте еще какой-то CI/CD настроим. На фронт давайте для простого приложения просто React возьмем, но для графиков Vue.js. Еще установим вместе с ReactJs и Vue.js пару тысяч пакетом через npm и подадим попрошайкам на еду пару баксов, которые донаты просят (на самом деле не переводите деньги, меньше денег - меньше ненужных пакетов, и лайки не ставьте. Нужно уже ввести дизлайки для проектов). Ну, это приложение точно надо будет 3 месяца делать для команды из 5 человек (1 бек, 1 фронт, 1 сис.администратор, 1 тестировщик и 1 менеджер), не считая дизайна. Подумайте про себя, за сколько времени вы сами готовы сделать что-то подобное ? Надеюсь не больше недели в одиночку, мягко поперживая на кровати и без лишних нервотрепок.
Ну ладно, это же какое-то новое приложение было и писали его наверное джуны. Хорошо, крупный отдел, людей больше сотни - все чем-то заняты, проект большой и давно работает. Приходит новый человек на работу, а там тим.лид - социофоб начинает его вводить в проект: "Вот там ридми лежит - по нему делай." Через день спрашивает: "Все ок?", в ответ: "Все ок". Такие диалоги еще 3-4 дня и потом оказывается, что ничего не работает, человек уходит. Бывали случаи, что и через месяц было тоже самое. Ну ладно, не любит человек разговаривать с людьми, всякие бывают.
Приходит человек в крупную компанию, а там никто не может толком этот проект запустить. У каждого разраба свои конфиги собранные за последние 2 года и для каждого из них - это уже свой уникальный отпечаток пальца. Ну и вот этот новый человек начинает собирать свой уникальный отпечаток и разбираться в проекте, как есть.
Или же приходит новый человек к компанию, ему выдают ключи от управления рекламой на сотни тысяч баксов. Никаких тестовых аккаунтов. Он конечно же допускает ошибки и рекламу начинает немного пошатывать, как на сильном ветре автомобиль иногда качает. Как же так получается, что в коде баги ?
Ну ладно, это все про компании да про людей. Но знаете, что больше всего мне нравится? YML-программисты. Ну, я их так называю, уверен, вы их знаете. Обычно это целый отдел, где сидят специально обученные люди, которые настраивают конфиги. Ооооооооо... Я готов просто целыми днями об этом разговаривать. В какой-то момент времени, видимо, рак на горе свистнул и кто-то решил взять JSON или YML и сделать это по сути отдельным декларативным языком. И еще попробовать туда условия засунуть. То есть, превратить формат данных во что-то совсем другое - в язык описания инфраструктуры или состояния чего-то там. Мудро, конечно, увожаю.
Погоня за деньгами. Вот что это такое, а не ИТ. Когда у меня спрашивали "а как это, писать код?", я в порыве вдохновления и гордости рассказывал, что это нереальная сфера. Что здесь люди делают чудеса, это совершенно новый коллектив. Здесь люди со всего мира могут собраться и "построить" что-то такое, что изменит мир. Они могут создать бесплатно новую технологию, которая потом будет каждому человеку делать жизнь проще. Могут ли архитекторы или механики собраться вот просто так и построить мост через реку или новый небоскреб? Конечно же нет, ибо для них нужен как минимум дорогой материал. Программисту для своей Эйфелевой башни нужен только кампухтер чуть сложнее калькулятора и он в деле. Это просто уникальная профессия. А что мы имеем: создаются не технологии, а продукты. Продукты плохого качества, не несущие никакой пользы. Это как китайский магазин, где есть все и 99.9(9)% этого вам не надо. Хочу чесалку для глаз! А, она уже есть.
Конечно, я не буду говорить, что абсолютно везде так. Есть, конечно, нормальные компании, которые делают отличные продукты, там сидят профессионалы своего дела. Но таких компаний мало, думаю, правило 95% сюда тоже подходит. Такое большое кол-во различного шлака создал слишком низкий порог входа в ИТ, где любой желающий за полгода по туториалу уже может что-то делать.
В целом, этот статья не про хейт, как все плохо вокруг, я просто хочу всем напомнить, что программирование - это немного не то, что вы привыкли каждый день делать. Это искусство, это инженерное дело. Решение проблем, ответов на которые нету на stackoverflow и в интернете в принципе.
Успехов вам, не забывайте, что кто-то пишет операционные системы, даркнеты, совершенствует алгоритмы вашей стандартной библиотеки, пока вы ставите пакет для сортировки массива из npm. Хорошего вам дня :-)
П.С. сорри за мой плохой русский, я этот язык знаю плохо.