Почему не стоит учиться на программиста

Программисты

Давным-давно жили-были Программисты. Были они умные, знали дофига чего такого, что обычным людям ни в жисть не понять, и было их мало. Оттого спросом они пользовались необычайным, зарабатывали кучу денег и вообще считались уважаемыми людьми. Еще были Пользователи, которые тоже умели программировать. Даже больше того, в то время собственно пользование компьютером заключалось в написании для него программ. Каждому Пользователю приходилось учить Фортран или Бейсик, иначе компьютер превращался просто в бесполезный предмет интерьера. Конечно, до уровня Программистов Пользователям было как пешком до Луны, потому что для Пользователя программирование было лишь инструментом, подспорьем в проведении необходимых вычислений и анализа, тогда как Программист занимался написанием программ профессионально. Короче говоря, было такое счастливое время, и все были довольны. Но Программисты все же были круче.

Дальнейшая эволюция была стремительна и беспощадна. Суть революции хорошо выражается семантикой оператора shift  в некоторых скриптовых языках. Вместе с ростом числа компьютеров на душу населения росло и число пользователей, которые не умели программировать (если вообще хоть что-то умели). В то же время Программисты в связи с определенными геополитическими изменениями стали массово покидать родные края. Их нишу понемногу заняли Пользователи, умеющие программировать. В результате мы получили немоверную массу пользователей, которые не умеют ничего, некоторое количество Пользователей, которые умеют программировать, но не то чтобы очень сильны в этом, и тонкий-претонкий слой Программистов-мазохистов.

Да, вузы исправно каждый год выпускают тысячи молодых специалистов информационных специальностей. Но вот ведь какой парадокс: учили студента на Программиста, а получился Пользователь. Потому что воспитать Программиста может только другой Программист, а таких почти не осталось. Замкнутый круг.

Софт

Но это только одна сторона. Если посмотреть на рынок ПО, то несложно заметить, что ничего нового на нем фактически не появляется. Были эпохальные продукты вроде Windows, Office, 1C Что-То-Там и тому подобных монстров, которые закрыли собой гигантские ниши. Все! Нужно просто признать: эпоха разработки массового софта заканчивается. Все, что нужно среднестатистическому пользователю, уже написано. Зачем же тогда Microsoft год за годом печет новые Офисы и Винды? Что, старые чем-то плохи? Нет! Просто им хочется кушать. Поэтому они развешивают тонны маркетинговой лапши на нежные юзерские уши, лишь бы только кто-нибудь купил их новый Офис. Который от N предыдущих версий отличается только по-другому расположенными кнопками и приведенной в соответствие с веяниями моды цветовой гаммой. Без сомнения, за это стоит отдавать триста баксов!

Конечно, я преувеличиваю. В мире есть еще что разрабатывать.

  • Веб-приложения. Сейчас «программист» уже в головах обывателей является синонимом «веб-программиста». Только вот беда — вердикт «уже написано» все чаще звучит и здесь. Народ уже не знает, что бы такое написать, поэтому пишет всякую ерунду, благо процесс ее создания упростился невероятно. Операционная система в браузере? Не смешите.
  • Корпоративный софт. Опять-таки, загибающаяся область. Один универсальный инструмент (1С, SAP) и толпа низкоквалифицированных адептов (1С-«программист», хо-хо) легко заменяет большинство корпоративок. Остаются лишь только всякие банки, авиаперевозчики и т.п., которые поступили мудро, придумав настолько сложные бизнес-процессы, что хрен напишешь обобщенный инструмент. А если поднапрячься и все же написать, получится VisualStudio.
  • Специфический софт. Драйверы, управляющий софт, firmware. Пожалуй, здесь пока еще все нормально. Появляются новые железки и комплексы — должен появиться и софт для них, никуда не денешься.

Итого

У вменяемого читателя должен на этом месте возникнуть в голове диссонанс. Как так — писать больше нечего, а программисты все работают (и неплохо зарабатывают). Ничего удивительного. Программисты работают по инерции.

С одной стороны, компании все еще думают, что стоит только нанять программиста, как все проблемы исчезнут. Видимо, сказываются смутные воспоминания о золотом веке софтостроения в 90-х годах. А поскольку у нас в стране бизнес основан на связях и откатах, а не на грамотном управлении, то никто и не позаботился посчитать, действительно ли найм программистов за большие деньги приносит прибыль. Конечно, к софтверным компаниям (которые в данном случае выступают в роли этаких метапрограммистов) это не относится.

С другой стороны, программисты все еще считают себя самыми востребованными специалистами на свете и всячески это мнение поддерживают. Вместе с тем их профессионализм стремительно падает (см. выше), а самооценка столь же стремительно растет. «Российских Программистов» это касается в первую очередь. Г-н Медведев вон считает, что «наши программисты — самые программистые». А на деле выходит, что они (мы) сливаем по всем статьям западным коллегам, а денег хотим много.

Так что готовьтесь. Пройдет еще несколько лет (думаю, от 5 до 15), и запас инерции кончится. Собственно, зарплаты программистов уже падают (и в рублях, и в долларах), как и количество вакансий. А скоро мы получим:

  • в разы меньшее количество рабочих мест;
  • гораздо более высокие требования к квалификации;
  • жесточайшую конкуренцию.

Приходите через пять лет, проверим.

УжасноПлохоНормальноХорошоОтлично (11 голосов, средний: 3,64 из 5)
Loading ... Loading ...

40 комментариев

  • Нет предела совершенству. Сегодня полдня потратил на поиск Computation Geometry library с открытым кодом под C#. Не нашел. Значит, написали еще не все, ниша есть =)

    • Язык вторичен. Если нет такой библиотеки на C#, это не значит, что ее нет вообще. Главное — решена ли задача. Я с тем же успехом могу сказать, что нет написанной на Лиспе библиотеки для создания LR(1)-парсеров (пример взят с потолка).
      А вообще вот: http://www.cgal.org/ Писать обертку на плюсах и вызывать через интероп.

  • Кстати, есть еще такая здоровая ниша как CAD софт. И на производстве программисты очень нужны. ЧПУ программировать как минимум =)

    А вот киборги начнутся…

    • Про CAD мало что знаю. Неужели настолько пустая ниша? Есть же всякие AutoCAD/ArchiCAD/Catia/Whatever. Или это не про то?

      Насчет производства и ЧПУ согласен. Как я и написал, программирование под железо будет востребовано еще очень долго.

      Киборги будут программировать себя сами :)

  • whirlwind:

    и еще про игры забыли, там тоже все никогда не закончится

  • Хорошо писать такие статьи уже будучи профессионалом и успев поработать в свое удовольствие )) Но совсем не весело их читать студенту-второкурснику, желающему стать программистом (подчеркну в контексте данной статьи — именно программистом, а не «программирующим пользователем»).

    Это уже вторая статья за год (первым был бишоп) в которой так или иначе предрекаются большие перемены. И — вот досада! — все именно в ближайшие пять лет =)

    • Чтобы выжить в эпоху перемен, нужно овладевать фундаментальными знаниями. Я очень жалею, что потратил в институте кучу времени на изучение языков, и недостаточно — на изучение алгоритмов, математики и computer science в общем смысле. Выучить язык или фреймворк — вопрос максимум нескольких недель, а фундаментальные знания устаревать не будут.

      Ну, и учите Лисп. Он бессмертен =)

      Ну, а Бишоп-то больше про мифические сетевые ОС… Может, он и прав, не знаю. Я пока не вижу предпосылок к такому развитию событий.

      • Ну не знаю… На мой взгляд нынешнее время не тянет на «эпоху перемен». Развитие шло всегда и точно так же идет и сейчас. И тот, кто будет следить за ним, не останется без работы.

        Ведь сейчас не происходит никаких фундаментальных изменений. Все, что было актуальным, таковым и остается (из основ, я имею в виду). Например, страшными фундаментальными изменениями для нынешних программистов можно считать переход с персоналок на те же сетевые ОС и тонкие клиенты. Но мне как-то не верится, что это возможно в ближайшее время и причем резко. Уж слишком удобны и привычны «традиционные» PC для людей. Значит, будет и существовать рынок ПО для персоналок. Пусть и заполненный программами, созданными «по инерции».

        PS: Кстати, неплохо на мой взгляд, это иллюстрирует сайт GiveawayOfTheDay, на котором ежедневно бесплатно раздается какая-нибудь платная программа. Для большинства из того, что там появляется (редакторы, конвертеры и т.д.) можно сходу назвать известный аналог. Иногда и вовсе бесплатный. Но раз эти программы (по сути, созданные по инерции и выброшенные на и без того заполненный рынок) продаются, да еще и развиваются, значит кто-то их покупает =)

        • У меня жена недавно искала работу программиста ASP.NET в Москве. Фирма, в которой она до этого работала, развалилась — нет заказов. Всего нашла 5 вакансий (год-два назад нашла бы около 100). Интересно было бы послушать FallenGameR, он тоже к этой области, кажется, имеет отношение.

          На мой взгляд, как раз сейчас рынок софта входит в жесточайший кризис. Про корпоративки молчу, это всегда был несколько мыльный пузырь. Шаровары (в том числе которые на GiveawayOfTheDay раздают) в некотором отчаянии: на каждую задачу найдется с десяток программ, которые ее решают. Причем половина из них — бесплатные или с открытыми исходниками (а у любой успешной программы появляется опенсорсный клон рано или поздно). Веб-разработка уперлась в ту же стену. Нечего уже писать, нет идей. Кризис перепроизводства. Стагнация.

          А фундаментально ничего не изменится, да. Будут те же персоналки, те же принципы человекомашинного взаимодействия (разве что Project Natal дает надежду на некоторое развитие), те же локальные программы и скрипты в браузере. В «сетевые» ОС я не верю. Но при всей этой фундаментальной сохранности объем написания софта упадет в разы, если не на порядки. Какой смысл что-то писать, если оно уже написано?

          • В принципе, я на всю эту кухню смотрю пока несколько со стороны, т.к. это пока не является моей работой. Но — соглашусь — даже со стороны видно, что «все уже написано до нас»…

            Но! Это же не причина перестать писать, вообще делать что-либо. Все, что у нас есть можно рассматривать как основу для будущего развития. В общем, на мой взгляд, развитие идет и будет идти, пусть уже и не гигантскими скачками. Да, теперь все сложнее стать «первооткрывателем», но все еще можно стать тем, кто сделает что-то лучше, чем было сделано до него.

            Не верю я в то, что рано или поздно все остановится. Пусть старые технологии/приемы/софт будут отмирать и забываться, но будет появляться и что-то новое. Верю все же в светлое будущее =)

          • Да, предложений сейчас не много. Я недавно смотрел «Архитектор/Тимлид» — только одно интересное предложение по Москве. Но я уверен, что если ты хороший специалист, ты всегда сможешь найти себе работу. Если ты при этом еще можешь (хочешь) переехать, то найти что-то стоящее можно довольно быстро.

  • Афтор молодец!

    Предлагаю совокупить данную статью и «Как преодолеть творческий кризис»
    и породить новую на тему «что бы такое написать, чего еще не написано, что будет полезно и нужно всем»

    просто.. не хочется верить (хотя приходится) в закат эры программостроения.
    а когда заходишь на какой-нить odesk или rac — видишь одни велосипеды (клоны, ремейки, порты) 0_о
    больше хочется верить в собственный творческий кризис, как отсутствие идей великих программ (=

    вотЪ

  • SGX:

    «Все уже написано до них» )))) Глупости это все! Какие программы для PC вообще, вы о чем? Вы б еще про перфокарты вспомнили. Смотрите шире, постоянно появляются новые технологии и платформы. Лет 5 назад это был Web 2.0, сейчас это портативные платформы — iPhone, Android, BlackBerry и прочие. Или например на пустом месте возник однажды Ajax, который технически мог возникнуть еще 10 лет назад. Был бы скилл, а рынок всегда найдется.

    • Возможно я не совсем в теме, но есть у меня ощущение, что сейчас новые технологии ровно для того и появляются, чтобы программистам было чем заняться. Заметьте, я не утверждаю, что программисты сидят, скучают и не знают чем заняться. Просто функциональность, которая сейчас реализуется на iPhone, Anroid, Ajax, WebSockets и что-там-еще, в большинстве случаев не новая — завернутые в новую обертку старые добрые идеи. Да, тетрисы под iPhone отлично продаются, но можно ли назвать это прогрессом информационных технологий?

      • Шурик, я понял что ты говоришь.

        Ты говоришь что не осталось CS, которая science.
        Но программисты не только science занимаются.

        Если наука молодая, то естественно ждать что в начале будет много оригинальных исследований. Но научные прорывы не могут идти без перерыва. Вон в философии — часто что-то новое появляется? =)

        • Не-не-не, в CS как раз развитие есть. Я говорил про индустрию. Совокупность написанных программ предоставляет пользователям какое-то множество функций. Развитие индустрии ПО — это написание программ, которые это множество функций расширяют. Windows 7 — отличная ОС, но что люди с ее помощью могут делать такого, что не могли делать раньше? Word 2007 выглядит симпатичнее предшественника, но позволяет ли он делать более качественные документы?

          P.S. А философию я вообще не считаю деятельностью, достаточно самостоятельной для того, чтобы делать ее профессиональной. Наше счастье, что там ничего нового не появляется )

          • А какое сейчас развитие в CS на твой взгляд?

            • Я могу судить только со своей колокольни:
              - мейнстрим — методы и инструменты параллельного программирования;
              - в системах реального времени (особенно распределенных) дофига слабоосвоенных направлений;
              - более-менее активно развиваются методы формальной верификации всего и вся;
              - каждая пятая статья на arxiv.org посвящена мобильным ad-hoc сетям (в этой области определенно есть еще чем заняться)
              - etc, etc, ….

        • Вдогонку. Есть такая область — радиоэлектроника. И было такое явление — радиолюбительство, ныне практически исчезнувшее. В эпоху массового энтузиазма каждый мог купить себе радиодеталей и спаять усилитель/приемник/whatever. Сейчас это бессмысленно, потому что все то же самое делается в сто раз дешевле на одной микросхеме. Но это уже недоступно любителям.

          Так и в программировании: сейчас расцвет (ну или по крайней мере не упадок) любительского программирования. Каждый может взять язык по душе и написать все что захочет. Иногда получается лучше, чем у других. Но все движется к тому, что программные решения будут не писаться, а генерироваться (aka конфигурироваться из универсальной системы aka специализироваться из шаблона aka …). Когда мы дойдем до этой стадии, любительское программирование, культура хакеров — все это постепенно сойдет на нет. Конечно, никто не помешает взять язык и написать программу (как никто не мешает спаять ламповый усилитель). Но это уже будет неинтересно, потому что можно будет создать гораздо больше, приложив несравнимо меньшие усилия.

          • Обедающий философ:

            Кстати, об радиолюбительстве и микросхемах. Сейчас можно пойти, купить микроконтроллер и немного других деталей и сделать на коленке, скажем, робота или систему «умный дом». И по сложности это ничуть не сложнее средней схемы, публиковавшейся в советских журналах. При том, что так можно изобрести реально полезную в быту конструкцию, аналоги которой отсутствуют на массовом рынке. Я подозреваю, что с этим может быть связан новый расцвет радиолюбительства и любительского программирования. А там уже и до восстания машин недалеко. Хотя, конечно, этим заниматься будут далеко не все, но ведь и радиолюбителями не все были.

            А вообще я искренне надеюсь, что программирование станет таким же обязательным умением образованного человека, как умение писать-читать-считать.

            • Сложно назвать разработку устройств на контроллерах «радиолюбительством», это гораздо ближе к программированию. Беда в том, что любая область перестает быть любительской, когда в нее приходит бизнес. Те же «умные дома» уже нет смысла разрабатывать с нуля, дешевле и проще купить готовый специализированный контроллер, который даже программировать не надо. После прихода бизнеса любители становятся маргиналами, а их труд теряет смысл.

              Насчет роботов не переживайте, у них достаточно алгоритмических проблем, не до восстания им :)

              • > Сложно назвать разработку устройств на контроллерах «радиолюбительством», это гораздо ближе к программированию.

                Ну это всё вместе — и радиолюбительство, и механика, и электротехника, и программирование.

                > Те же «умные дома» уже нет смысла разрабатывать с нуля, дешевле и проще купить готовый специализированный контроллер, который даже программировать не надо.

                Ну ежели стоит задача оснастить дом в центре Москвы, то да. А ежели, например, сделать автоматику, чтобы в жаркие дни теплицу открывала? Готовые решения, насколько я знаю, будут стоить ежели не баснословно дорого, то по крайней мере неразумно для обычного дачника.

                > После прихода бизнеса любители становятся маргиналами, а их труд теряет смысл.

                Я бы сказал, что маргиналами становятся профессионалы-частники. Скажем, написал Вася на бейсике программу для распечатки школьного расписания и продаёт её, а тут эксель пришёл. Любители — они на то и любители, что не гонятся за окупаемостью, а просто занимаются чем-либо для удовольствия. К тому же автоматизация — это такая вещь, что систему на все случаи жизни создать невозможно.

                Опять же любительство важно для подготовки новых кадров — скажем, любой уважающий себя программист начинал в школе с программирования just for fun, и уже потом выбрал соответствующий вуз. Так и с робототехникой — коли у школьников будет возможность на коленке соорудить робота (а приход бизнеса будет этому только способствовать — можно вспомнить хотя бы лего-роботов), то и специалистов (а значит, и хороших специалистов) через некоторое время станет больше.

                > Насчет роботов не переживайте, у них достаточно алгоритмических проблем, не до восстания им :)

                Ну так я и говорю — коли будет много любителей, то и усилий к решению алгоритмических проблем будет прикладываться больше, и восстание произойдёт быстрее (или с большей вероятностью). Я полагаю, восстание машин будет лучшим выходом для человечества — следующую тысячу лет оно явно не проживёт, а ядрёная зима или иная гибель цивилизации — это как-то глупо.

                • Вспомнилось про 3D-принтеры. Вот они в сочетании с дешевыми микроконтроллерами и несложной схемотехникой действительно могут творить чудеса в руках энтузиастов.

            • Кстати, полностью солидарен насчет обязательности умения программировать.

              • Особенно хорошо это смотрится на фоне заголовка и содержания статьи.

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

  • AcidazaM:

    глупее статьи в жизни не видел…. сейчас компьютеры всё больше внедряются в нашу жизнь… и очень скоро… всё будет не так просто как сейчас… вовсе непонятно простым пользователям… и вот тогда нужны будут специалисты… да и сейчас… ежедневно ко мне обращаются друзья и знакомые друзей чтобы справиться с той или иной проблемой… я не беру с них денег… но приобретаю опыт… который в будущем мне очень поможет… и куча людей будет просить меня спасти их от нового вируса… кто то восстановить информацию… что то не так с железом… я во всём помогу… и ещё кучу чтук что не прописана и о которой никогда никогда не расскажет на форумах… или рассказал кто то но не нашли они… ваша лень… + компьютер в каждом доме. будет приносить мне реальные деньги… и сейчас приносит…вот и думай нужны ли программисты…

    • Дайте догадаюсь… вы не программист? Вы не опровергаете меня, а совсем даже наоборот: есть куча уже написанных программ, про которые мало кто знает и мало кто толком умеет ими пользоваться. Поэтому больше востребованы становятся админы и эникейщики.

    • Joe:

      играть ноктюрн != крутить шарманку

  • Mic:

    Статья — полная чушь…Автор не умеет ни синтезировать, ни анализировать тот материал за который взялся. И какой смысл всего вышесказанного? Проинформировать??? Кого? Ради чего? Кому это принесет пользу?

    • Комментарий одобрил, потому что он не похож на спам. Но смысла я в нем, однако, не увидел. Уважаемый автор, не могли бы вы конкретизировать свою критику?

  • Хрен с горы:

    Автомобили тоже давно уже придумали, больше века назад. И самолеты/параходы. И лекарств всяких полно наделали. А уж одежды сколько фасонов скеративили. Но ни конструкторы, ни фармакологи, ни модельеры на отсутствие работы не жалуются. Все течет, все меняется. Просто раньше программирование было чем-то элитарным, а теперь это индустрия. Я понимаю Вашу тоску по прошлому, но такое развитие событий — это нормально. Так что потребность в программистах будет увеличиваться год от года, до насыщения еще далеко.

    Радиолюбительство, кстати, не исчезло. Оно просто изменилось.

    • Спасибо, я ждал этот комментарий.

      Конечно, глупо говорить, что «Все уже изобретено, больше изобретать нечего, и можно закрывать патентное бюро». Программы пишутся, программисты работают, и, конечно, и через 20 лет, и через 100 кто-то будет писать какие-то программы. Но с превращением программирования в инженерную дисциплину процесс программирования будет постепенно сводиться к манипуляциям со сверхвысокоуровневыми абстракциями. И именно так произошло и в других областях.

      Например, разработка автомобилей/самолетов происходит с использованием типовых узлов и типовых компоновок этих узлов. Плюс есть САПРы, которые делают существенную часть грязной работы вроде рассчета аэродинамики, прочности и технологии производства деталей. Элемент творчества, конечно, присутствует, но в основном это долгая и нудная работа по подгонке действительного под желаемое.

      Вот и в программировании сейчас все больше потребность в технологах и архитекторах, то есть людях, которые могут взять уже готовое и правильным образом использовать. Мне кажется, эти навыки отличаются от тех, что считались присущими программисту в прошлом.

      Безусловно, какая-то часть программистов должна остаться программистами, иначе откуда возьмутся «орудия производства» и высокоуровневые компоненты. Требования к квалификации таких специалистов будут все расти и расти, напоминая ситуацию с современной физикой: простые законы уже открыли, теперь кому-то приходится разбираться и со сложными, недоступными простым смертным.

      • Хрен с горы:

        И пусть высокоуровневые абстракции. Я и сам раньше любил покодить на ассемблере, вылизать до блеска кошачих яиц какой нибудь кусок кода, любоваться изящным решением. Это сродни разгадыванию головоломки. Сейчас на такое нет времени, к сожалению. Забудь дедукцию, гони продукцию. И это правильно, развлечения в свободное от работы время. Вы же сами недавно (несколько постов назад) призывали не использовать всякие синшыне изыски, типа алгоритмических трюков. Ибо, как и всё приятное, вредно.

        Но такие абстракции не значат, что «позабыты хлопоты, остановлен бег, вкалывают роботы, а не человек». Хрен там, проблем выше крыши. Но проблемы стали другие, поднялись вместе с уровнем абстракции. Так что я не переживаю, скучно не будет.

        А толковых программистов, сколько их вновь не учат, хрен да маленько. Впрочем, совершенно аналогичная ситуация во всех остальных сферах деятельности человека.

        По моему так.

        • У меня еще остается надежда, что железо сделает какой-нибудь качественный скачок. Например, мемристоры в массы пойдут, и RAM сольется в экстазе с внешними носителями. Или радикально повысится производительность. Или квантовые компьютеры подоспеют. Вот тогда, действительно, появятся новые ниши, новые задачи, будет интересно.

          А так… Ну вот перешли мы на более высокий уровень абстракции. Ну проблемы стали другими, да. А задачи-то остались те же! Тот же опердень, те же бложики, тот же Word. Переписывать по новой?

          А толковых программистов мало, это да.

      • Это при условии, что повторное использование кода возможно.

        Еще мне кажется, что по своей задумке, к инструментам такого вот программиста будущего можно отнести CASE средства и DSL языки.

        Пока CASE средства почему-то не получили всеобщего применения.

        DSL же мне кажутся очень интересными. Но я пока вижу, что они обычно создаются программистами для самих же себя. А рядовые пользователи (если существуют) имеют возможность только читать их, но не писать. Так что разделение программсит / пользователь никуда не исчезает.

        • Да, DSL — это именно то, что я имел в виду. А CASE-средства, мне кажется, не стали популярными именно из-за отсутствия вменяемых графических DSL. Их расцвет еще впереди, имхо.

Оставьте свой отзыв

Или введите OpenId:

XHTML: Можно использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">