День 2. Всем привет. Сегодня поговорим абстрактную тему. А конкретно порассуждаем какие программисты бывают, где они работают и почему находиться в одной из этих категорий не зашкварно если выбор осознанный.
Есть куча различных классификаций разработчиков:
- джун/мидл/синьор
- кодер/программист/инженер
- рок звезда/бюрократ/эксперементатор/..
По сути их объединяет только одно, они все бесполезные и каждый их понимает по своему.
Я не буду устраивать революцию, и обещать наконец то во всем это разобраться, просто добавлю еще одну классификацию - свою. Зачем? Чисто по фану. Ну может быть из моих рассуждение кто нибудь сделает какие нибудь выводы. В любом случае если вы с чем то не согласны - пишите!
И так, 23 года назад я решил стать программистом, и мечтал как однажды я устроюсь на работу, а там вокруг будут те самые, настоящие программисты. Ну знаете, те которые могут на бумажке написать работающий компилятор и в целом шарят во всем программировании какое только есть.
Но первый тип с которым я столкнулся был - тыжпрограммист или еникейщик. Человек который работал в обычной фирме, куда купили компьютеры и наняли его что бы он как то их обслуживал.
Если кто не в курсе, это такие уверенные пользователи пк, они pc собрать могут и сеть просую протянуть и сервер 1с какой то пиратский поднять, и софт ставить/обновлять. Короче они редко обладают какими то прямо профессиональными навыками.
И работают там где это не требуется. В небольших фирмах, где есть компьютеры, а работники ими пользоваться не умеют. Получают как правило мало, но и задачи у них не сложные.
Почему это нормально? Все просто, человек вообще не хочет уметь программировать. Но ему нравится возиться с компами, есть спрос, есть зарплата, вроде лучше чем быть продавцом и не напряжно. Можно вечером домой придти и голова не болит о работе, развитии и синдроме самозванца
Второй тип - преподаватели теоретики. Этих ребят я встрил в вузе. Нет, не все преподаватели теоретики, но сейчас именно о них) Работают в вузах и школах. О программировании знают только из книжек. В своей жизни не написали ни одной полноценной программы.
Как правило знают по верхам несколько языков, умеют писать на них всякие сортировки пузырьком, обходы графов и вот это вот все. Тоже бывают двух видов, те кто отдает себе отчет что в проде все не так и те кто не отдают. Вторых я вообще не уважаю.
Почему нормально так работать? Ну основы они рассказать вполне могут и очень не плохо. Это тоже кто то должен делать. Как правило это именно преподаватели. Люди которым нравится преподавать, а не программировать. Очень полезны для погружение в программирование.
Главное что бы они не нанесли молодому поколению травму, и рассказали что основы это основы, а разработка в прод это разработка в прод. Особенно замечательно если они расскажут что читать, как развиваться, как гуглить и вот это все.
Тип номер три - Олдскульный автоматизатор. Встречается на предприятиях около совкового, ныне государственного типа. Это уже настоящий программист, который пишет код в продакшен.
Примечателен что что максимально сфокусирован на написании различного софта для каких то локальных расчетов и/или подготовки отчетов для руководства. Воспринимает программирование просто как инструмент достижения цели.
Ему по большему счету все равно на чем писать, но пишет на том же на чем начал 40 лет назад. Не интересуется ни алгоритмами, ни архитектурой, ни новыми инструментами. Ему хватает делфи/java/c++ который может сохранить/прочитать/обсчитать данные, а потом сформировать отчет.
У нас принято шеймить таких разработчиков, но в каком то смысле они правы, если они могут решать задачу имеющимися знаниями, то наверное нет смысла изучать что то еще.
Почему это нормально? В этом есть шарм, ты работаешь всегда на одном месте, все знакомо, все спокойно. Никто не бегает к тебе с задачами, спринтами и аб тестами и код ревью. Пишешь код ровно как тебе хочется и сколько тебе хочется.
Идеально для интровертов которые на работу ходят работать, а не жить. Живут они после работы, семья, дача, друзья, рыбалка.
Четвертый тип - web мастер. Занимают тем что создают небольшие веб порталы, лендинги и стандартные интернеты магазины. Знают немного php, js, html, css. Но больше они конечно знаю wordpress, bitrix, тильду, кучу плагинов, бирж тем, дизайнеров фрилансеров,
всякие seo оптимизации, как настраивать таргетированую рекламу и не редко как продавать свои услуги. Работают в небольших веб студиях или на фрилансе.
По сути они собирались стать разработчиками, но не стали. В целом клиентов, которым нужны не дорогие, простые, стандартные сайт очень много и нанимать ради этого целую команду разработчиков это как стрелять из орбитального лазера по комарам.
Зачем этим заниматься? За тем, что такой веб мастер может единолично запустить бизнес с нуля. Я такие случаи знаю и это довольно интересные ощущения. По сути, клиент понятия не имел что ему делать, пока ты не пришел и не настроил ему конвейер из клиентов.
Ну и денег можно получать довольно много если хорошо продавать свои услуги. Больше чем одну козулю в месяц.
Пятый тип - программист простой, разносторонний. Эти ребята как правило работают в небольших региональных студиях разработки или занимаются фрилансом. Основная их фишка что они знают по верхам кучу технологий. Но этого им хватает что бы сделать рабочий продукт.
Они уже как правило интересуются новинками, новыми языками, фреймворками. Отчасти потому что их требуют заказчики, отчасти потому что они помогают им делать больше за меньшее время. Алгоритмы, нюансы языков и вот это все они как правило не любят.
Мотивируют они свою нелюбовь тем, что и так же все работает, и это все не надо. В чем то они правы. Из минусов такого подхода скажу, что как правило, без основ им сложнее изучать новые фреймворки, и в своих решениях они забивают на краевые кейсы. Но как я уже сказал, не все.
В чем плюс? В том что у тебя нет команды. Ты можешь писать как хочешь, на чем хочешь. Тебе не нужно согласовывать стайлгайды, архитектуры с другими ребятами и проходить код ревью.
Так как и бек и клиенты они делают одни это все максимально согласовано и удобно для разработчика.
Еще один плюс, в том что они реально деливерят фичи, много фичей, разных фичей.
Это не как в больших компаниях, когда у каждого своя маленькая роль, и 80% времени разработчик скорее коммуницирует с командой, а оставшееся время пишет максимально простой код, потому что сложное уже все написано.
Тут у тебя есть простор, как в выборе технологий, так и в выбор задач. Сегодня можео внедрять ML, завтра VR, после завтра работать с камерой, потом с блютузом, потом с кафкой, в общем вы поняли.
Шестой тип - программист прикладной, командный. Встречаются повсеместно от обычных галер до больших корпораций.
Эти ребята как имеют специализацию (фронтенд, ios, android, php и тд). развиваются по роадмапу компании, если он есть, или перед собесами при смене работы. Знают все основные моменты необходимые для работы в их стеке и немного сверху.
Вот это сверху всегда разное, зависит от конкретных условий. Но главное что его не так много. Массово подвержены синдрому самозванца, хотят стать крутыми, массово добавляют статьи в закладки. Но эти статьи так и лежат в закладках.
По разным причинам этот тип не спешит расти. Но в целом за приемлемую зарплату, напишут приемлемый код.
Почему это нормально? Во-первых потому что не всем быть великими, кнопки тоже кто то красить должен.
Во-вторых потому что в мире есть и более интересные вещи, чем эти ваши компуктеры, что бы залипать целыми днями в статьях, книгах и пет проектах.
Тип седьмой - программист узко специализированный. Работает как правило в корпорациях. Когда то он вписался в решение какой то редкой, но важной проблемы и вот теперь шарит в ней аки боженька.
В общем то обычный разработчик, но знает слова который никто не знает и решает то что никто решить не может. Из за этого внушает благоговейный трепет всем остальным разработчикам с синдромом самозванца.
Очень крутой выбор если выбранная специализация интересна или если на нее есть спрос, а следовательно можно просить больше денег.
Тип восьмой - программист упоротый, эрудированный. Эти ребята тоже как правило живут в больших компаниях как в продукте так и галере. Или в силу интереса к разработке или в силу стремления делать хорошо. А может и потому и по другому. Они не просто делают, они лучше остальных
Они не добавляют статьи в закладки, они их пишут. Новинки они изучают по книгам, докам и капаясь в исходниках. Если у них все впорядке с сфот скилами то скорее всего они тимлиды в своей команде и тащат проект вперед, не давая множится тех долгу.
Если плохо то скорее всего это токсичные типы которые наводят ужас на код ревью, а холиварами заставляют задуматься об увольнении.
Почему хорошо таким быть (не токсичным, а эрудированный)? Им как правило больше платят, они могут ходить на конференции бесплатно как спикер, можно писать статьи и заработать какую никакую известно, что в свою очередь может и бесполезно, но жутко приятно.
Тип девятый - программист мифический тот самый. Я его так и не встретил, по этому где он обитает не скажу, но где бы он не был, он просто бог программирования. Знает основы основ, и высокоуровневые штучки.
Шутя крутит чернокрасные деревья на листочке, попутно находя столетнюю багу в коде чужого приложения который он даже не видел, просто взглянув на работу приложения. Его код всегда формирует идеальную архитектуру, которую поймет любой школьник и без проблем внесет изменения.
По утрам за завтраком он комитит в в свои опенсорс проекты, которую используют все ведущие компании мира.
Про то что он пишет код без багов и говорить нечего.
Зачем быть таким? Ну понятно, что если ты этого не достиг, то ты прожил жизнь зря и не достоит называться программистом.
Когда нибудь я найду тех самых программистов. А может даже сам стану одним из них.