Профессия программист. Призвание или путь в никуда?

    Недавно размышлял о будущем разных профессий в IT индустрии, и все больше и больше неясных моментов у меня возникло для специальности «программист». Не в том, общепринятом среди бухгалтеров и секретарш, представлении что это студент который починит принтер и устранит глюки с программой — думаю для них, все кто умеет грамотно работать на компьютере, обязательно программисты :) Имеется в виду действительно профессионал своего дела, который выбрал эту специализацию чтобы Творить и Созидать. Думаю многие выбирая свою будущую профессию делали это более-менее сознательно, и, надеюсь, имели представление о ток, как будет проходить их профессиональное развитие. Но хватит философии, ближе к делу.
    Все кто хотели стать врачами, в процессе своей жизни становятся хорошими профессиональными врачами. Юристы в процессе своей практики набирают опыт и становятся уважаемыми юристами которые востребованы среди своих клиентов.
    Что же происходит с тем, кто выбрал для себя путь программиста?

    Исследование статей, форумов, блогов да и собственный опыт общения с людьми так или иначе связанными с программированием и созданием ПО, показывает что для поддержания профессионализма программист должен постоянно быть в курсе множества новых технологий, знать новые методики решения тех или иных задач чтобы избежать изобретения своего велосипеда — в общем всячески пополнять свою копилку знаний и умений. Как показывает практика, в первые пять-семь лет это удается достаточно свободно (берем аудиторию молодых людей в возрасте 18-25 лет). И тем не менее в этот период уже встречается достаточно моментов когда технология в которой программист был профессионалом становится невостребованной.
    Вспомните прошлое десятилетие, когда ушли в никуда Fortran, Cobol, Lisp (хотя кто-то возможно скажет что это не так, но массовости уже не наблюдается); Basic — как серьезный язык разработки; Pascal/Delphi/C++Builder (да простят меня ярые приверженцы) — множество библиотек и технологий оказались вытесненными. С точки зрения компании-производителя ПО всегда будет востребована наиболее современная технология, следовательно профессионал должен быть в курсе событий. Но, например, пока профессионал работает над проектом применяя текущие знания и умения, следующее поколение уже набирается опыта в новых технологиях и областях, предлагая на рынок себя как готового специалиста, тогда как старого надо еще переучивать.
    В большинстве случаев, после определенного времени программист-профессионал превращается в руководителя проекта, т.е. фактически в менеджера, либо пытается открыть свой бизнес, либо уходит во фриланс (в принципе это и есть свой бизнес, но в ограниченных масштабах). Хотя, согласитесь, не всякий программист может стать хорошим руководителем. Что же произойдет через 10-20 лет с теми кто просто умеет создавать программы и действительно это любит?

    Получается уникальная ситуация: врач в большинстве случаев остается врачом, писатель — писателем, юрист — юристом. У программиста же перспектива одна — стать менеджером или сменить специальность. Кто-то может не согласиться, но много ли вы знаете в жизни 40-50 летних программистов работающих по специальности?
    Под конец хочу задать вопрос, всем кто выбрал для себя путь развития как программист. Кем вы себя видите в будущем? И если вы хотите стать руководителем, то не лучше ли было больше усилий приложить для продвижения именно в этой области?
    Поделиться публикацией

    Комментарии 72

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        А при чем тут системный администратор? Архитектор второе направление.
        Эти люди уже не зависят от конкретных языков и не так сильно зависят от технологий (особенно ПМ).
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            Простите, не читайте тот комментарий, спросонья писалось(
          0
          А возможно ли сразу стать PM или системный архитектором, при этом не имея опыта работы рядовым программистом?
          0
          Практически полностью согласен с вами, сам не раз об этом задумывался. Вижу себя либо руководителем комманды \ отдела веб-разработки, либо, если всё таки доберусь до университета — преподавателем. И такой путь развития, как мне кажется, и есть самый правильный. Ибо «старая школа» (вне зависимости от времени) и фундаментальные знания в области программирования будут править балом ещё очень долго. Недаром литература Кнута всё ещё очень популярна ;)
          • НЛО прилетело и опубликовало эту надпись здесь
              +2
              С врачами и юристами, да и как со всеми профессиональными специальностями все не просто. Везде нужно поддерживать свой уровень. Но IT специальности, наверное та область в которой устаревание знаний происходит наиболее быстро. Как программное так и аппаратное :)
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Ну здесь не все так линейно, мне кажется… тот же SmallTalk был реализован еще в 60-70 годах, когда в мейнстрим он попасть не мог (на сколько я понимаю, из-за железа, для которого проще и эффективней было писать на более низкоуровневых языках).
                  И, кстати, я еще ни разу не почувствовал, что знание асма мне помогает эффективней писать на .net. Скорее помогает желание разобраться в том, как «это» работает «за кулисами» (т.е. для .net — это понимание кода на уровне IL), и вообще, общее желание знать больше о технологии в целом.
              +4
              А зачем программисту менять специальность; или это типа непрестижно — быть техлидом/тимлидом/архитектором?
              Врач станет главврачом, повар — зав.столовой, программист — архитектором, юрист — уважаемым юристом или нотариусом частной практики. Почему для программиста все должно быть как-то по-другому, более романтически — профессия обязыывает? :)
                0
                Престижно, но когда манагер среднего звена, ведущий 1- 2 средних проекта получает не меньше, а то и больше, чем архитектор, это, согласитесь, не очень приятно.

                Резюмируя — желание получать больше требует изменение профессии. Для программиста есть потолок, выше которого не прыгнешь. Приходится либо мириться, либо уходить в другие степи.

                Конечно, есть и много тех, кого устраивает текущий заработок, и желания получать больше у них нет, либо небольшое.
                  +2
                  А гендиректор фирмы вообще капусту ни за что рубит, ага. А президент «получает» еще больше. Так что теперь?

                  В нормальной фирме ПМу платят сравнимо с архитекторами. Потому что ПМов много, а нормального архитектора еще поискать надо. А вообще надо не «получать», надо зарабатывать. Вы попробуйте потимлидерствовать в 2х проектах сразу, вам тоже будут платить много. Только вопрос в том, насколько легко это потянуть.

                  Потолок — он везде есть, даже в малом бизнесе. В этом смысле программист не уникален.
                +9
                Но, например, пока профессионал работает над проектом применяя текущие знания и умения, следующее поколение уже набирается опыта в новых технологиях и областях, предлагая на рынок себя как готового специалиста, тогда как старого надо еще переучивать.


                ИМХО, не совсем. Проходят годы, и опыт написания программ постепенно из количественного (языки, API, фреймворки, паттерны) переходит в качественный — как правильно производить декомпозицию кода, как проводить тестирование, документирование, контроль рабочего процесса. По собственному опыту скажу, что имея за плечами более десяти лет профессионального программирования освоить новый язык, платформу или фреймворк не представляет большого труда. Ценность начинает представлять умение создавать большие проекты так чтобы уложиться в сроки, минимизировать риски :), выбрать правильную технологию, заложить возможности расширения и изменения на будующее.
                  +1
                  А пятая смена парадигмы программирования дается куда как проще первой :)
                  +1
                  Да в общем, отрасль молодая, особенно веб — потому и нет 50-ти летних программеров, через 20 лет будут ;) — уже сейчас сталкиваюсь с 35-ти летними, а вообще все как везде, кто в руководители, кто нет, кто вообще — пирожками
                    +1
                    кстати, «там» 40-летних программеров полно, особенно заметно когда тут работаешь по аутсорсу или аутстафу — обязательно с той стороны «многодетный папа»
                    +1
                    Мне 47 и я SW Engineer. Правда, я несколько лет работал групп-лидером и, потом, CTO в небольшой фирме.
                    Да, пути 2. Или управление (частный случай — своя фирма или фриланс) или архитектором. Или переквалифицироваться в управдомы :-)
                      +1
                      хочу попасть в молодой небольшой коллектив, первое время применять непосредственно навыки по специальности, потом постепенно пытаться пробиваться в руководители. короче говоря, мечу в начальники. зачем выбрал специальность программиста? очень просто. я люблю это. у меня часто меняются интересы, а эта единственная пока область, которая мне надоедает уже на протяжении нескольких лет. я получаю от этого удовольствие. по-моему это самое главное.

                      и что плохого, если из инженера переквалифицироваться в начальника? я же не планирую быть начальником молочной фермы, правильно? я хочу остаться в своей любимой сфере, но немножко на другой роли, которая больше соответствует возраст, да и с финансовой точки зрения должно быть повыгоднее. ну и плюс чисто спортивный интерес по максимуму попробовать себя по всех ролях. один раз живем. так-то.
                        0
                        Всем сложно! У юристов законы часто меняются, у экономистов — инструкции… У программистов проблема в том, что объем необходимых знаний очень большой…
                          +21
                          Программисты системщики, пишущие уже лет 30 на Си смотрят на эту статью, как сами знаете на что.
                            0
                            в идеале будущее программиста это solution architector или project manager
                              0
                              это уже не программист
                                0
                                это развитие программиста
                                  0
                                  нет. это карьерный рост а не развития программиста.
                                    0
                                    согласен что это не развитие порграммиста. В больших конторах нужен ответственный за глобальные промахи, поэтому появляется должность «архитектор»
                                      0
                                      Архитектор в программировании нужен для другого, как, впрочем и в строительстве и прочих областях.
                                        0
                                        скажите, какого размера программу вы писали сами единолично? (в строках кода и количества классов)
                                          0
                                          Странный вопрос, Вы померяться хотите? а за более чем 20 лет программирования я написал не одну программу, чего и Вам советую, ну в смысле написать вторую :)
                                            0
                                            я всего лишь о том что когда выходишь на большие размеры так или иначе становишься «архитектором». А если начинаешь отрываться от программирования чисто в «архитектуру» перестаешь замечать проблем нижнего уровня. Получается чисто архитектор это совсем не программист. А крупный программист это так или иначе архитектор.

                                            P.S. наверное с 20 летним опытом уходят и навыки общения, надеюсь через два года не уподоблюсь
                                              0
                                              Архитектор — не программист, следующий уровень, возможно метапрограммист и это хорошо, для нижнего уровня есть программисты, работа у них разная, но, конечно не до фанатизма, этакая фигура, которая только пальцем показывает.
                                              Дык в том то и проблема, что архитекторами становятся, только тогда, когда выходят на большие объемы (для каждого разные, просто большими называют, когда трудно в голове удержать), а надо с этого начинать, возможно, независимо от предполагаемых объемов приложения (всегда пухнет и оооочень редко худеет).
                                                0
                                                Ну в одном уже согласились :) осталось доказать вам что это не программист вообще. :) Ведь архитектор пытается смотреть снаружи и не смотрит внутри, как программист. А вот программист, который смотрит внутри и пытается оптимизировать взаимосвязи — гораздо лучше чем любой выделенный архитектор.
                                                Выходить на архитектурный уровень конечно надо, без этого никуда, но выделять на это человека, который как царь становится сразу далек от народа — как правило вредно для проектов.
                                                  0
                                                  Архитектор — это человек определяющий архитектуру приложения (смотрит изнутри и снаружи), программист — работающий над конкретными блоками, который не должен лезть в их взаимосвязи, как мне кажется. В моих реалиях микроразмеров команд, архитектор — это как правило «играющий тренер», но он все равно есть.
                                                  Плох тот архитектор, который не может определить какие-то ключевые моменты приложения, пусть даже определить некоторые интерфейсы, необязательно на языке реализации. Вообщем это человек изнутри, иначе бардак будет.
                                                    0
                                                    то есть у вас это таки программист? :) или чего это он внутрь кода полез?

                                                    если же у вас это не программист, то значит в код никогда не лезет, смотрит со своей колокольни — отрыв от реальности неизбежен.

                                                    Опять же все договоренности внутри команды могут быть сделаны членами самой команды без привлечения отдельного человека. Часто для быстрого решения когото называют главным. Когда главный один и тотже его (опять же часто) назначают архитектором… и пошло расслоение в полном объеме. Уже через какойто год-два архитектор дуб дубом в программировании но пытается диктовать свои законы не владея ситуацией на нижних уровнях.
                                            +1
                                            Вопрос не только в объеме кода, который может произвести один программист (и почему только один, это не очень эффективно, т.к. внутри любого современного приложения используются несколько технологий), а в жизненном цикле приложения, это работа не на один год, при правильном раскладе. Не всякий программист смотрит так далеко, тут ему в _помощь_ приходит архитектор, он выступает первым (поэтому и отгребает за ошибки). Смято, кратко, но надеюсь поймете мою мысль.
                                              0
                                              то есть по вашему программист это такой валенок который умеет делать строго определенную вещь на строго определенном языке жизненниый цикл которой очень короток? :)
                                                0
                                                нет, конечно, он просто работает в своей нише, ну и существо, легко увлекающееся :)
                                                  0
                                                  Как вы всё таки стремитесь однобоко о программистах :) а общие требования к любому работнику насчет планирования своего времени не в счет? Или программист у вас опять валенок? :)

                                                  в нормальных конторах к программисту довольно четкие требования. Некоторым (например гуглу) не нужны программисты не умеющие планировать свое рабочее время. Увлечения увлечениями, а профессионал должен в первую очередь выполнять свою работу.
                                                    0
                                                    У всех есть планирование и Jira и тем не менее, сколько можно полировать код? бесконечно :)
                                                    И для меня программисты — это не «они», для меня это «мы» :)
                                                      0
                                                      если бесконечная полировка кода это проблема, и вы не в состоянии с ней справится надо задуматься о повышении профессионального уровня (управление временем и тп)

                                                      опять же в коммерческих проектах бесконечная полировка невозможно в принципе (так как бабло выделяется не на полировку а на конечный результат)
                                                        0
                                                        Утрируете, все понимаю, но и много про себя помню :)
                                                0
                                                вообще если над задачей трудится коллектив программистов примерно одного (высокого) уровня. То с задачей архитектуры они справятся сами без выделения лишнего рта. Главное в этом вопросе — договорится.
                                                  0
                                                  imho должен быть главный хирург, принимающий решения, но опирающийся на общее мнение, в данном случае. И это незаметно происходит, не обязательно проводить выборы лидера, он сам появляется.
                                                    0
                                                    если вам ближе врачебная тема — вспомните слово «консилиум». Архитектура приложения очень важна для здоровья «пациента».
                                                      0
                                                      Консилиум собирают в критических ситуациях, тут нельзя согласиться, что стоит доводить до критического состояния проект, что бы потом штурмом решать проблему.

                                                      «хирурги» — это из брукса, про организацию команд. Если не читали про серебряную пулю, очень рекомендую.
                                                        0
                                                        позвольте не согласится, консилиум собирается в сложных ситуациях.

                                                        хирург у брукса это таки программист в чистом виде (или команда программистов) а никак не архитектор
                                                          0
                                                          Я понял Вашу позицию. Возможно она связана с каким-то негативным опытом, слишком часто слышится про «оторванного от реальности» архитектора. Раз Ваш способ работает, отлично, но не забывайте про «there is more that one way to do it».

                                                          Насколько я помню, у него, он не пишет код. Дома посмотрю.
                                                            0
                                                            Ну и похоже Вам повезло с командой профессионалов, не у всех так.
                                            0
                                            ну скажу по себе что я начинал обычный программистом, потом был ведущий программист, потом тимлид и потом уже проджект менеджер, и это не карьера, это развитие, обычный программист не смог бы просто так стать ПМ если бы его туда поставили…
                                              0
                                              для вас это развитие, но это не развитие для программиста. Вы стали ПМ, куда делось программирование?
                                                0
                                                никуда не делось, как программировал так и продолжаю программировать (для себя) + всякие code reviews
                                                  0
                                                  то есть вы программист с функциями PM а не PM в чистом виде?
                                                    0
                                                    я ПМ в чистом виде + функции solution architector
                                                      0
                                                      то есть не программист? :)
                                                      извините за занудство, но получается что всетаки вы представитель не роста программиста, а карьерного роста вообще. Увы рост программиста слабо представлен в наших компаниях.
                                                        0
                                                        сейчас уже давно не рограммист
                                      +1
                                      … и спрашивал, автор, кем же я буду когда состарюсь в 30 лет? Пенсионером!

                                      Кем захотите, тем у будете. Я одно время руководил коллективном в котором самому молодому программисту было 22, самому зрелому под 40. Разницы в желании и возможности что то освоить новое — не заметил.
                                      Желание изобретать велосипеды — есть. Разная ответственность — да. Но это не от профессии.

                                      А хотите профессию на всю жизнь — таких осталось две древнейшие: политик и журналист.
                                        0
                                        А проститутка?)
                                        0
                                        1) совершенство недостижимо в принципе поэтому крутеть есть всегда куда (если есть желание)

                                        2) если интересует только карьерный рост, то только своя фирма где вы программист. При этом правда надо не забывать что менеджмент должен быть в руках людей которым доверять можно как самому себе

                                        3) забить на программирование и пойти в менеджеры/архитекторы и тп
                                          0
                                          Программист может написать программу, которую потом будет легко продать. А так как затраты на копирования равны нулю, то любой программист — потенциальный богач.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                            0
                                            :) Все зависит только от Вас!

                                            Есть тип людей, которые всю жизнь, работают по специальности, тракторист, металлург, юрист, врач…

                                            Есть карьеристы, которым по х.ую мороз, рвет и мечет, идет по костям, но добивается роста…

                                            Есть люди «везунчики», или просто удачливые засранцы, которые не прилагая никаких усилий растут, причем не важно где, и как… примеров тьма, начиная до Медведя и ВВП…

                                            Кто Вы ?!
                                              0
                                              Ну да, а врачи с амбициями не становятся менеджерами и прочими «не совсем врачами», как ж…

                                              В программировании только одна уникальная черта: положительная обратная связь по автоматизации, т.е. чем больше и лучше мы умеем какую-то проблему сваливать из головы и рук в компьютер, тем лучше это у нас получается.
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                  0
                                                  Видя, как сейчас развиваются технологии и процесс программирования упрощается всякими фрейворками и прочим, кажется что через 20-30 лет я буду начитывать код компьютеру, одновременно рисуюя интерфейс силой мысли. Не стоит переживать, что кто-то освоит новые технологии лучше «старичков», потому что сейчас сам процесс разработки становится только легче, а сама математика программирования осталась той же, что и 30 лет назад. Если вы будете развивать себя только как программист, то с 30-ти летним опытом работы можно будет не переживать, что вы останитесь безработным.
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                      +1
                                                      Преподаватели в универе считают, что хороший программист должен знать не только свою конкретную прикладную область, но и основы. Путь от asm до c# или куда там выше. Примерно как врачи. Ипонимание основ процесса поможет с применением более новых технологий.
                                                      Я же считаю, что это не совсем так. Точнее сказать программирование как профессия относительно молодая и динамично развивающаяся. Уже сейчас видно расслоение людей по технологиям, как врачей по специализации. Кто-то скальпелем asm выпиливает нужную программу, кто-то использует лекарства более высокого уровня. А вот раньше все было как и с врачами когда-то давно. Программист решал проблемы предприятия, врач обслуживал все болезни пациентов.

                                                      Программист всё равно знает некоторый пакет языков, технологий, методов. Даже если некоторые из них устареют, или будут вытеснены более или менее высокоуровневыми, то что мешает найти работу в смежной области? Или остаться в старой и решать старые задачи. Да, область уже не будет такой популярной, но она не схлопнется совсем. Не отто какой вариант, но на безрыбье.

                                                      Еще один момент. Технологии появляются, другие уходят, однако новые методики обычно являются агрегацией старых, так что по ходу дела и с опытом за плечами будет легче изучать новую концепцию олдскульному программисту, чем новичку. Хотя, это мне щас молодому легко рассуждать за взрослых дядек…
                                                        0
                                                        >Уже сейчас видно расслоение людей по технологиям, как врачей по специализации.
                                                        Оно и раньше было. Были системные программисты, были прикладные, были специалисты по АСУ и БД, по CAD и станкам ЧПУ.
                                                        0
                                                        >много ли вы знаете в жизни 40-50 летних программистов работающих по специальности?
                                                        40-50 летние пережили коллапс 91 года и переквалифицировались во что угодно — бомжей, продавцов, таксистов, строителей. Или просто не пережили всей этой катавасии 90-х.
                                                          +1
                                                          У меня и мама и папа — программисты.
                                                          Программисты с большой буквы, знатоки алгоритмов, смешанных схем, и перфокарт.
                                                          С концом перфокарт они, как программисты, тоже окончились.

                                                          Папаня стал чем-то средним между системным архитектором и аналитиком, а мама — бухлагтером.
                                                          Обоим сложно написать СМС, а аська это вообще что-то нечто.

                                                          А системным программиста линукса( я сам был долго программистом-ядерщиком ) достаточно показать boost, чтобы они впали в сумрачное состояние сознания.
                                                          Сверху долить ерланл и питон.
                                                          Помешивать до наступления просветления
                                                            0
                                                            Но, например, пока профессионал работает над проектом применяя текущие знания и умения, следующее поколение уже набирается опыта в новых технологиях и областях, предлагая на рынок себя как готового специалиста, тогда как старого надо еще переучивать.


                                                            Пока профессионал-стоматолог выдергивает жертвам зубы устрашающего вида щипцами, следующее поколение уже придумало бормашину.

                                                            Каждый профессионал, который перестает расти над собой, перестает быть профессионалом на следующий день. Быть специалистом — это процесс, а не явление; нельзя в какой-то момент стать крутым программистом и больше ничего нового никогда не узнавать.
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                0
                                                                Вы не правы.
                                                                Сейчас мало 50 летних программистов, потому что 30 лет назад, программирование было уделом немногих. Лет как 10 максимум пошел наплыв программистов. Но им еще не исполнилось 50. А те которые начинали 30 лет назад, и по сей день являются гуру.

                                                                Да и вообще, опытный человек отличается тем, что он любую новую технологию сразу раскладывает по полочкам. Да и в конце концов появляются новые технологии, но подходы меняются не часто. Да и сейчас технологии идут по пути упрощения работы с ними.

                                                                Так что, я себя вижу впереди архитектором, менеджером но и всегда разработчиком. Пока не надоело мне. :-)

                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                Самое читаемое