Не идите в программисты 9: Ракетные науки

Привет, ебаное. Это снова я — нытик. У меня очередной приступ вдохновения, поэтому мы снова поговорим, почему в ИТ ни в коем случае нельзя идти ради интереса. Одна из многих, но уж точно не последняя причина — проекты.
Если ты, вайтишник, обучаешься программированию как положено, по книжкам, то у тебя обязательно возникнет впечатление, что программирование – это про высокие материи. Что программисты целый день только и делают, что решают Нетривиальные Задачи в Интересных Проектах и придумывают Расширямые Архитектуры для Передовых Продуктов. Может быть в R&D центрах Майкрософта и Гугла так и есть, но украинское ИТ – это не про интерес, что бы там не затирали рекрутерши.
Самой лучшей аналогией ко множеству местных проектов будет свалка. Большая свалка разбитых машин и токсичных отходов, в которой копошатся тысячи человечков, пытающихся слепить из этого хлама что ездящее. Или плавающее. Ну хотя бы не распадающееся на куски от дуновения ветерка. Никто в здравом уме не будет отдавать важные вещи на аутсорс, поэтому в Украину сливают всякий хлам, который самим тащить тяжело, а выкинуть – жалко. Так что, если вам рассказывают, что заказчик – Майкрософт, не спешите радоваться – скорее всего там древняя ЕРП на Классик АСПе, написанная 15 лет назад, без архитектуры, документации и единого человека который бы знал, как этот продукт жизнедеятельности индусов поднять.
Вообще, большей частью местные проекты являются обслугой западного бизнеса, обычной заменой секретарши с телефоном. Надо признать, что зачастую секретарша была бы дешевле, но пропаганда высоких технологий делает своё дело, поэтому вместо найма очередной девочки заказывают дорогущую систему. Почти все такие системы – КРУДы разной степени ебанутости. Иногда у них есть морда, иногда её нет, но сути это не меняет. Если ты вошёл в украинский веб (а большая часть местного айти – это веб) готовься писать КРУДы и морды к ним ближайшие лет 10, потому что больше ничего не нужно. И не думай, что это интересно. Максимум первый раз. Какой бы ни была бизнес логика – эти штуки очень однотипны. По сути, такой программист ничем не отличается от рабочего, который стоит на конвейере и накручивает гайки на винт. Иногда он закручивает гайку не так, а этак, но придумать работу скучней — это надо ещё постараться.
Со всем этим связан забавный факт: зачастую секретарша, которую вы будете заменять всей толпой, после релиза никуда не девается. И очередной КРУД для очередного сервиса поиска нянь или продажи квартир нахуй владельцу бизнеса не сдался. Но ИТ – это идеальное место для отмывания денег. Если ушлый мэр купил лавочки по овер 9000 гривен каждая – в это можно ткнуть носом. Но как ты сцуко оценишь стоимость программного продукта? По количеству строчек? Затраченных человеко-часов? Комиссию позовёшь? Нет, украинское ИТ – это идеальная прачечная и об этом в мире прекрасно знают. Так что есть хороший шанс, что ты, вайтишник, будешь делать не просто унылое говно, а унылое говно, которое нахуй никому не нужно. Просто подумай, потратить годы своей жизни, чтобы легализовать наворованное американским дядей, которым ты даже не знаком. Достойная цель, ничего не скажешь.
Ну ладно, возразят мне, а продукты? В Украине же разрабатывают какие-то продукты. Разрабатывают, но после этих продуктов вам захочется обратно в аутсорс. В первой статье я писал, что ракеты в космос запускают те, кто разбираются в ракетах и немного умеют программировать, а не те, кто кроме программирования ничего не умеют. Вот и с продуктами та же фигня, их начинают писать люди, знания которых о разработке ограничиваются парой семестров в университете. А значит, какими бы гениальными не были идея, мат-аппарат или бизнес-логика, реализация заставит поседеть даже стойкого пофигиста.
Я видел некоторое дерьмо. Методы с 50 параметрами (нет, это не фигура речи, моей задачей было добавить 51, и я их пересчитал). Один контроллер на всю систему с 4 операциями (REST), зато громадным свитчем внутри. Имя нужной операции передавалось в урле. Огромный год-обжект с говорящим именем BusinassLogic (это не опечатка, так и назывался). Внутри содержалась большая часть функционала системы, большей частью в виде текстовых SQL-запросов. Кстати об SQL, это вообще песня. Похоже, что процентов 90 реляционных БД проектировали люди, которые если про нормальные формы и слышали, то не поняли. Композитные ключи по всей базе. Циклические зависимости. Половина БЛ в процедурах. 3 способа разрушить атомарность. А вы думали, что можно только айдишники через запятую написать? Ха! Ко всему этому прилагается зоопарк из сторонних библиотек и технологий, потому что ещё раз: люди делали продукт, такие мелочи жизни как архитектура и сопровождаемость их не интересовали. Конечно потом там работали профессиональные программисты, может они даже накрутили поверх маразма что-то типа адаптеров, имитирующих разделение ответственности и прочий SOLID, но ядро так просто не отрефакторить, особенно в системе реального времени. Я глубоко убеждён, что в большинстве популярных коммерческих продуктов тоже таится такой вот подарочек из прошлого.
Конечно есть ещё геймдев, но он в Украине невыносимо уёбищен и большей частью состоит из браузерок и мобилочек, мобилочек и браузерок. Занятие само по себе неблагодарное, а уж учитывая насколько ебануты местные геймдев конторы… Творческие люди, что с них взять.
Ну ладно, а стартап? Как же стартапы, спросите вы. А стартап, если он создаётся ради дела, а не ради хайпа, клёпают в очень сжатые сроки, чтобы поскорее выкинуть на рынок прототип и получить финансирование. В стартапе твои прохладные истории о СОЛИДе и паттернах никого не ебут. По сути, это и есть зародыши тех самых продуктов, которые я тут так красочно описывал.
Вот и получается, что украинский программист обречён ковыряться в унылом говне и вариантов у него особо нет. Иногда у этого говна будет запах сирени, но суть останется той же, что бы там не затирали красавицы-рекрутеры. Конечно можно уехать, но не факт, что за бугром будет лучше. Ведь все эти проекты откуда-то в Украину спустились. Действительно интересные вещи делают в десятке мест на Земле. Каковы шансы, что ты туда попадёшь? Может лучше станешь сантехником? Тогда у тебя тоже будут руки в говне по локоть, зато все тебя начнут ценить и уважать, а по праздникам ставить бутыль.
Всем удачи и хорошего настроения.