Данилевский Кирилл

Приветствую читателей Мегамозга. Решил я сегодня затронуть одну интересную проблему. А именно, немного пофилософствовать на тему, является ли IT область какой-то точной алгоритмической наукой, или все же это может быть нечто большее, чем просто математическая модель.

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

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


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

1) Те, которые с самого детства фанатели от создания чего-либо. Решали всякие ребусы и головоломки. Разбирали старую и поломанную электронику, чтобы узнать, что там внутри. Ходили на всякие кружки по радиоэлектронике, часами ковырялись во всяких приложениях и программах, желая узнать, как они работают и почему именно так. Думаю, суть ясна. В итоге, стать разработчиком — это был их сознательный путь с самого детства. Как правило, они поступают на профильный факультет и проходят обучение связанное с IT сектором.

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

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

Все о чем я буду рассуждать далее, это только мое личное субъективное мнение, которое совсем не обязано совпадать с мнением большинства.

Те категории, о которых я сказал выше, я бы мог сравнить с музыкой. К примеру:

1) Учатся играть на фортепиано с детства. Им это очень нравиться и приносит реальное удовольствие.
2) Родители из заставляют играть на фортепиано. Они отлично владеют инструментом, но никакого душевного кайфа от этого не испытывают.
3) Не умеют играть вообще и им это совсем и не нравится.

Итак, я бы разделил каждую категорию на еще некоторые под категории.

1) С большой долей вероятности станут композиторами. Им не достаточно кого-то копировать, они хотят творить сами.
2) Становятся отличными музыкантами. Но вероятность, что они станут композиторами, стремится к нулю.
3) Если жизнь сильно прижмет, и эти люди вдруг подумают, что именно тут зарыта золотая жила, то со скрипом могут освоить балалайку.

Теперь, понимая немного суть, какое будущее ждет каждого.

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

2) Это матерые специалисты, которые, в подавляющем большинстве случаев, абсолютно не желают, даже слышать о своем проекте. Их все устраивает. Часто, такие люди работают в одной и той же компании многие годы. Получают стабильно высокую зарплату, и абсолютно не понимают всей той бесполезной «глупости», которой чудит первая категория.

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

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

Если бы не было первой категории людей, то сам IT сектор развивался бы очень слабо, если бы вообще развивался. Из десяти идей таких людей, выстреливает одна или две. Но руки все равно эти специалисты не опускают. И именно таким специалистам обязан весь IT сегмент. Именно они создают свои новые «велосипеды», которые становятся востребованными и популярными. Именно такие люди становятся примером для многих, именно о них пишут статьи и публикации о больших успехах и горьких провалах. Именно такие разработчики становятся источниками информации, по которой учатся другие специалисты.

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

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

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

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

В финале получается некий философский и противоречивый кругооборот:

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

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

Вот такая философская каша у меня вышла.

Комментарии (16)


  1. Xu4
    04.02.2016 21:47

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

    1) Те, которые с самого детства фанатели от создания чего-либо. Решали всякие ребусы и головоломки. Разбирали старую и поломанную электронику, чтобы узнать, что там внутри. Ходили на всякие кружки по радиоэлектронике, часами ковырялись во всяких приложениях и программах, желая узнать, как они работают и почему именно так. Думаю, суть ясна. В итоге, стать разработчиком — это был их сознательный путь с самого детства. Как правило, они поступают на профильный факультет и проходят обучение связанное с IT сектором.

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

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

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

    Я думаю, если уж и делить как-нибудь людей в IT, то на две части: первой нравится IT, второй — нет. Когда человеку нравится что-то делать, он в этой области развивается самостоятельно. Если не нравится, он развивается под давлением обстоятельств (и не развивается, если обстоятельства не давят). И даже это деление условно. Если сегодня человеку нравится программировать, это не значит, что ему и завтра будет нравиться программировать.

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

    В остальном, мне нравится фраза, я уже не помню, где её услышал впервые: «люди делятся на два типа: те, кто делит людей на типы и те, кто не делит». Те, кто делит людей на типы, тратят лишнее время на вещи, которые не приносят реального профита. У меня не реже раза в год появляются мысли, что я гений, а все окружающие, в компании которых я пишу код — идиоты, не хотят развиваться, а некоторые из них, даже, не хотят осваивать такие банальные вещи, как стандарты оформления кода. При этом, я люблю заниматься самокопанием, и я пришёл к поразительному выводу, что ровно в эти же моменты времени мне влом вообще учить что-то новое и как-то развиваться. Я останавливаюсь в развитии и начинаю делить и приземлять окружающих, потому что энергию, которая раньше тратилась на развитие, нужно куда-то направлять. По аналогии с моей ситуацией, я считаю, что когда человек начинает проводить время в делении коллег на 1-2-3-й типы (скромно всем намекая, что он-то уж точно принадлежит к 1-му типу), это сигнал, что ему нравится заниматься чем угодно, но только не своей «любимой» работой, что характерно для 3-го типа.

    Лично моё мнение об этой статье: в ней нет стремления стать философской. Систему 1-2-3-типов можно ещё предельнее абстрагировать до системы 1-2-типов — то есть, получается, вопрос предельного обобщения явлений, который является очень важным в философии, не имеет должного приоритета. Ещё один немаловажный момент: чтобы назвать явление «философией IT», нужно анализировать предметную область IT. Если анализируются люди, их талантливость, их черты характера, это не философия IT. Это ближе к философии морали. По тем критериям, которые вы использовали в статье можно разделить на три группы и воспитателей в детском саду, и учителей, и преподавателей, и инженеров, и депутатов, и дворников. Это, опять же, показывает, что этот вопрос не специфичен для IT-отрасли и не может быть её фундаментом, её философией. Он может играть определённую роль в философии IT, но не может быть её основой.


    1. Kirill_Dan
      04.02.2016 23:23

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

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

      богатый — бедный
      глупый — умный
      успешный — неудачник
      сангвиник, холерик, ипохондрик и флегматик
      усидчивый — ленивый и так до бесконечности

      И то, что я поднимаю такие неприятные для многих вопросы, пытаюсь их анализировать и как-то классифицировать, то это и есть философия. Другое дело, как этими знаниями или рассуждениями воспользоваться.

      П.С. В универе Карла Маркса на каких парах учили? На факультете информатики мы его учили именно на философии.


      1. Xu4
        05.02.2016 00:36

        А по поводу того, что делить людей плохо, то это ханжество.

        А я не писал, что это плохо, даже слова такого не использовал. Я писал, что от этого нет профита. :) В частности, нет профита в том контексте, который вы представили. Если уж и увязывать в моём комментарии выражения: «делить людей» и «плохо», то только в смысле: «плохо делить людей, а называть это анализом IT».

        Нет профита — это не когда есть вредное, это когда нет полезного.

        В остальном, я повторюсь, ставить в основу IT философию морали, мне кажется, — не научный подход. Очень важный ньюанс, что именно в основу. То, что проблема дробится для анализа — ладно, понятно, логично. Но с самого начала была сделана системная ошибка, и теперь анализируются люди, хотя указывается на прямое отношение предмета к IT. Если заменить IT в этой статье на другую отрасль или профессию, не потеряется ни капли смысла. Просто потому, что IT тут вообще ни при чём. Это не помогает понять вообще ничего, связанного с IT.


      1. mindjammer
        05.02.2016 18:22

        богатый — бедный
        глупый — умный
        успешный — неудачник
        сангвиник, холерик, ипохондрик и флегматик
        усидчивый — ленивый и так до бесконечности

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


  1. a0ff
    05.02.2016 12:45

    Примитивный старый вопрос «Программирование — это творчество или работа?» развернут в много-много букв.

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

    В написании каждой, даже философской, статьи должна быть цель. Какая цель тут?


    1. Kirill_Dan
      05.02.2016 13:04

      Целей есть ряд. Разделив специалистов на примитивно-условные группы можно, приблизительно оценить из мотивации и потребности.
      1) Сложный и интересный проект с динамическим развитием. Специалист находится либо во главе проекта, либо участвует в его управлении и создании, его мнение играет большую роль. Деньги на втором плане.
      2) Не совсем важно чем заниматься. Компания должна быть авторитетной и стабильной. Зарплата должна быть стабильно высокой. Деньги на первом плане.
      3) Готов на все, на любых условиях. Просто нужны деньги.

      Вот и ответ номер один: владея такой информацией, нормальный руководитель сможет понять с кем имеет дело.

      Ответ номер два.
      Это информация для самоанализа. Если человек не может сесть, грубо говоря перед зеркалом, и искренне поговорить с самим собой о успехах и провалах. Если отказывается принять реальность, как факт и зарывает свои проблемы внутри себя, то тогда из этой ситуации выхода нет. Путь к саморазвитию будет закрыт, так как не был произведен откровенный самоанализ проблем и неудач.
      Поэтому, эта «провокационная» статья должна была стать первым толчком к тому, а кто же «Я» на самом деле. А все ли меня устраивает. А почему моя жизнь складывается так, а не иначе. А могу ли я на самом деле, что-то изменить?!

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

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

      Сам факт умения программировать делает человека умнее или нет? И зачем люди вообще идут в программисты?
      Вот я и замкнул круг. Чем вам не философия?


  1. a0ff
    05.02.2016 14:07

    «почему такие грамотные (по идее должны ими быть) люди, как разработчики, в подавляющем большинстве имеют такие же проблемы, как простые продавцы в магазине. Люди гордятся тем, что они программисты, что элита общества. А житейские вопросы у многих так же не решены, как и у остального населения.»
    Откуда вдруг вот такие сведения? =)

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

    Элитой общества они давно не являются — «программистов» сейчас миллионы, не меньше, чем «менеджеров» и «юристов».


    1. Kirill_Dan
      05.02.2016 14:17

      Элитой общества они давно не являются — «программистов» сейчас миллионы, не меньше, чем «менеджеров» и «юристов».


      Вот и возникает следующий вопрос. А программист программисту рознь, или тот, кто прочитал книжку «Как стать программистом за 10 уроков» и тот, кто 10 лет работает в крупнейшей компании — это одно и тоже?

      И рождаются три категории, про которые я написал в статье :) Круговорот «проблем» в природе. Опять круг замкнулся.


  1. iminusd
    05.02.2016 15:42

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