Хотя я работаю с программным кодом лет тридцать, иногда с большими перерывами, и бывало даже непрерывно месяцами писал код за деньги, я так и не стал программистом - остался любителем и не планирую здесь что-либо менять.
На разном уровне я использую несколько языков программирования: Пролог (это мой любимый), C/AL для Navision, C#, JavaScript, Java и SQL. Однако, на первом плане у меня не сам язык как таковой, а какую программную платформу он олицетворяет и что на этой платформе можно построить. С моей точки зрения язык программирования - это интерфейс к этой самой платформе - машине логического вывода (Пролог), .Net (C#), веб-браузеру (JavaScript) и т.п.
Лет двенадцать назад я работал "программистом" в одной торговой фирме. Тогда я был еще другим. Не знал про индивидуальную изменчивость мозга, социальные инстинкты и искусственный отбор. И смотрел на людей как на таковых, не вспоминая об эволюции приматов. Счастливое было время, однако.
И сразу что-то не заладилось. Говорят, что это норма, когда в коллективе один чувак тебе не нравится - что так бывает всегда, куда бы ты не попал. Поэтому я убеждал себя и так и этак - внушал себе, что надо подождать и присмотреться - возможно, увидеть результаты, а значит, и судить о человеке именно по ним. Но ничего не получалось. Что-то маленькое, заскорузлое и агрессивное, вечно борющееся за свой уровень доминантности, постоянно напоминало мне персонажа из метафоры "если посадить тысячу обезьян за печатную машинку, то напишут они за тысячу лет 'Войну и мир' Л. Толстого, стуча по клаве случайным образом, или нет?" Да еще, как назло, постоянно тыкающий мне начальник: "Почему не ходишь на обед со всеми?, ты что - элитные войска какие-то?" А дело, напомню, на гражданке - на (условной) так сказать, свободе... Пришлось первое время ходить с этим "печатником" и на обед (вспомнил сейчас, и икнул).
Так вот однажды, мне надоел наш "сизифов труд" - мы вечно что-то пилили без конца и края - переделывали одно и тоже и т.п. И я стал искать резервы в производительности в переосмыслении - наших бизнес-процессов, которые мы автоматизировали, подходах к кодингу (чтобы использовать паттерны платформы) и т.п. Я открыто поговорил с начальником в нашем рабочем помещении, и когда уже встал, чтобы вернуться на место, "печатник" мне громко и как всегда с раздражением в мой адрес: "Ты программист? - вот и иди программируй!, а не болтай (или что-то похожее)." Тогда у меня это вызвало лишь недоумение, и я промолчал.
Я не стал объяснять ему, что программный код - это воплощение мысли. И именно она первична. И если мы что-то не успеваем, что-то не получается, часто недовольны и не хватает времени и сил на интересные и важные задачи, то, возможно, мы должны мыслить иначе. Мы можем по-другому смотреть на нашу предметную область, заметить тенденции в наших задачах, взаимодействовать с нашими бизнес-пользователями (заказчиками), разработать и использовать свою парадигму/стратегию поверх технических деталей программной платформы и, тем самым, перейти от реактивной работы к проактивной. Все это я, собственно, и говорил начальнику, но только в нашем текущем контексте, какими-то другими словами.
Ну а теперь еще дальше в мое прошлое - к самому началу 90-х, когда я только учился программировать. Всё было интересно - если только быстрее первому сесть за компьютер (и в школе, и в вузе доступ был тогда несвободным). Но никто не объяснил тогда, что кодинг это перевод мыслей человека на язык машины, и что самое важное - "типичный" программист переводит не свои мысли, а те которые получает на вход. Что профессиональное программирование - это не про создание своих собственных продуктов и систем, а тех, которые нужны другим. А если хочешь свои, то будь готов зарабатывать на чем-то еще. Правда, тогда - в конце 80-х и 90-х, расклад был немного другим, чем сейчас: в воздухе тогда витало, что "и один - в поле воин".
Во всем этом и ответ на суть и природу моего конфликта с "печатником" - это про "от сохи или от печки", это про оплачиваемое ремесло или странную науку, от которой толку ноль. И это про индивидуальную изменчивость мозга. Поэтому выбирая область деятельности, нужно не только основываться на способностях, как таковых, но и собственном менталитете (представлениях о правильном и неправильном). Отличный способ - прийти на профильное отраслевое мероприятие и посмотреть на людей - послушать о чем и как говорят, что их волнует, что их приятно возбуждает или раздражает. Уметь - не главное, главное - хотеть (стать частью чего-то).
Сегодня я работаю с профессионалами, которые почти гордятся тем, что им до "звезды" предметная область, "которую они программируют" (как пример, путают товары, единицы складского учета и поставщиков - им все равно что закрыть своим программным скриптом, а предложение разобраться вызывает раздражение). Возможно, для них это критерий силы - неважно что, я пишу крутой код, который может всё. Для меня же иначе.
А что касается той фирмешки и начальничка, то перед уходом поставил все на свои места. Как только перешел на "ты", сразу раскудахтался, что типа я ему не ровня, но все-таки обращался ко мне исключительно на "вы" последние две недели, которые нужно, как обычно, отработать. Когда я захлопнул за собой ту дверь, то погрузился в собственные "любительские" (т.е. за свой счет) разработки - проверку паттернов разработки, которые за этой дверью "слали лесом", в автоматизированное проектирование и кодирование и др. А некогда известная фирма потом исчезла, сейчас о ней и не вспоминают.
Комментарии (14)
slair
02.11.2024 22:17все должно быть в меру, в том числе - умение абстрагироваться от предметной области
erpacademy Автор
02.11.2024 22:17Конечно. Но и не отрицать её. Иначе программист становится своего рода "принтером".
Vad344
02.11.2024 22:17программный код - это воплощение мысли. И именно она первична
Ну нет же. Первичен код, а программист лишь инструмент, интерфейс для переноса кода из холодной бесконечности в среду выполнения.
Представьте себе, что у Вас есть кот, а вы, его человек, вдруг вообразили, что Вы - полноправный хозяин кота, и что именно Вы являетесь доминантой в ваших с котом отношениях. Правда, смешно? Код ничем не хуже, чем кот, так-то.
erpacademy Автор
02.11.2024 22:17Т.е. язык сам по себе и управляет человеком (программистом)? (если так, то сегодня это особенно опасно, так как тогда возникает новое прочтение русской поговорки "язык до Киева доведет")
KorvinThePoet
02.11.2024 22:17Код - есть способ воплощения мыслей. Без мысли Код - не имеет значения, он становится просто интересной абстракцией, этаким бездомным котом, забытым всеми
PsihXMak
02.11.2024 22:17Я так понимаю, что вы предпочитаете выяснять отношения с начальником и коллегами, что бы получить побольше эмоций, а на само программирование вам всё равно. А теперь вы бросили работу, что бы гнаться за модными «паттернами» и делать правильную «автоматизацию», что бы самоутвердиться?
Я бы пожелал вам иметь побольше самоконтроля…
erpacademy Автор
02.11.2024 22:17Да, теперь "выяснить отношения" - для меня важнейший пункт в работе (если есть повод). После этого, меня больше никто не трогает (и даже "обходят стороной", хоть я и на удаленке годами), и начинается спокойная работа, граничащая со счастьем. Жаль, что раньше так не делал (верил, что "молчание - золото", о чем и упоминал выше).
"Всё равно" ли мне на программирование? Нет. Еще не теряю надежды "создать программу", которая удивляла бы меня, как создателя, вновь и вновь. Либо с точки зрения поведения, либо открывающихся аспектов ее применения. (возможный совет налепить в ней ошибок и наслаждаться непредсказуемостью её работы я, пожалуй, отклоню) Но зарабатываю я сейчас на написании технических заданий.
Про паттерны: мне интересны не "модные", а "плодотворные". И больше не паттерны ООП, а высокоуровневые типа "Resources, Events, Agents" и т.п. И разработка собственных. Использование паттернов или методических/концептуальных фреймворков выводит разработку на новый уровень: ты не "внутри" кода, а "над ним" - код становится объектом управления (еще это чем-то напоминает аналогию с техподдержкой: можно самому быть вечным бобиком, бегающим по команде "фас!" и разруливающим инциденты, а можно создать систему на основе принципов, правил и инструментов ITSM, и управлять уже ею)
За пожелание - спасибо.
PsihXMak
02.11.2024 22:17Но паттерны - это не панацея, а лишь небольшой инструмент. Боюсь, вы быстро разочаруетесь.
А выяснение отношений - это совсем не рабочий процесс. Я видел, что людям помогает отринуть эмоциональную составляющую, а объясняться только фактами и логикой.
erpacademy Автор
02.11.2024 22:17Мои собственные паттерны - это как мои дети. Разве в детях можно разочароваться? Их надо любить и воспитывать - тогда станут лучше. А что касается не моих, но заимствованных мною паттернов - то это мои приемные дети. И про них тоже самое.
"Выяснение отношений" как и любое выяснение, конечно, начинается мною с "фактов и логики". И вот, например, мне как аналитику становится очевидным, что скорость кодирования - узкое место в организации, и раздражение разрабов из-за этого. Но манагеры, да и сами разрабы этого никогда не признают, так как это организационная катастрофа и все выйдет ещё на более высокий уровень. Поэтому перманентное напряжение гарантировано. Когда я понимаю, что проблема системная и решать ее никто не будет, то публично показать волчий оскал или прилюдно высмеять кого-то - самое то... не быть же овощем-терпилой, которого все пинают как крайнего. (впрочем, кому как, и кто каким звеном в пищевой цепи себя видит)
Foppa
02.11.2024 22:17Извините пожалуйста за небольшую критику. Было очень сложно читать. Спотыкался чуть не на каждом предложении.
Как человек, пришедший в ИТ из спортивной журналистики, посмею дать вам несколько советов для улучшения читаемости текстов:
Пролистайте книгу Валентина Холмогорова "Просто копирайтинг";
Позаимствуйте паттерны из книги Максима Ильяхова и Людмилы Сарычевой "Пиши, сокращай";
Перед публикацией закиньте текст на сайт https://glvrd.ru/ и перестройке его в соответствии с рекомендациями.
erpacademy Автор
02.11.2024 22:17Честно говоря, не понял вы всерьез или нет (я не копирайтер, и признаюсь, само название этой профессии мне кажется несколько ущербным - лучше просто райтер), но за советы и мнение спасибо. Материалы посмотрю. И отдельное спасибо, что, спотыкаясь, дошли до конца и даже дальше - до этих комментариев. P.S. Пишу я по-разному - в зависимости от целей и настроения (к примеру, вот мой фантастический рассказ-драма: https://litnet.com/reader/nevozmozhnoe-soglashenie-b462592).
olku
Не очень понял мораль истории. Программист может много куда развиться, и автор довольно быстро перерос удовлетворение от изящной реализации. Сейчас вполне платят за знание предметной области. ИТ консалтинг, который знает что и как автоматизировать, ценен. Джунов, которые кодируют готовые спеки, начали успешно заменять ИИ помощники. Успехов вам!