Пользователь
0,0
рейтинг
25 сентября 2013 в 16:49

Разработка → Страсть к программированию. Глава 5. Инвестируйте в свой ​​интеллект

< 4. Будь худшим | 6. Не слушай своих родителей >

При выборе, на что обратить внимание, можете просто рассмотреть технологии, которые дают наибольшее количество рабочих мест, и сосредоточить внимание на них. Java много. .NET много. Изучение Java даёт простой, переходящий эффект: если я знаю Java, я могу подать заявку, и, скорей всего, получить работу Java программиста.

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

TIOBE Software использует интернет поисковые системы, чтобы указать относительно популярные языки программирования, основанные на общении людей об этих языках в интернете. Согласно сайту TIOBE, “Рейтинги основаны на мировой концентрации опытных инженеров, курсов, и поставщиков”. Это точно не научно доказанные измерения, но очень хороший показатель.

На момент написания, самый популярный язык Java, за ним следует C. C# на почтенном, шестом месте, но с небольшой восходящей траекторией. ABAP от SAP на семнадцатом месте, и медленно движется вниз. Ruby, который является моим предпочтительным языком программирования — на котором я делал почти все свои серьезные работы, и по которому я провожу совместные международные конференции каждый год, находится на одиннадцатом месте. Но, во время первого издания этой книги, он не попадал даже в первую двадцатку. Он был ниже, чем ABAP!
Я сумасшедший, потому что использовал Ruby или просто глупый? Ну точно один из двух, да?

В своем очерке “Великие Хакеры” Пол Грэм (“Great Hackers” Paul Graham) досаждал индустрии тем утверждением, что Java программисты не так умны, как программисты Python. Он выставил многих Java программистов — глупыми (я произнес это?). В результате чего многие из них писали контраргументы на своих сайтах. Бурная реакция показывает как глубоко он задел. Я присутствовал в аудитории, когда был представлен его первый очерк, в виде беседы. У меня это вызвало воспоминания.

Я был в командировке в Индии, отбирал из сотни кандидатов лишь несколько десятков рабочих, командное собеседование само по себе было тяжелым для меня, и вышло за рамки времени из-за его плохой организации. Голова болит, мозг взорван, глаза красные, мы провели ночную встречу, чтобы обсудить стратегические изменения в том, как мы отбираем кандидатов. Мы должны были либо оптимизировать процесс, чтобы прослушивать больше людей, либо прослушивать лучшие кандидатуры (или оба варианта). Тем не менее, что осталось от моего голоса после двадцати часов стараний, вытащить ответы из ошарашенных программистов. Я настаивал на добавлении Smalltalk в список ключевых фраз, который использовали наши “охотники за головами” изучая свою базу резюме.“Но, в Индии, никто не знает Smalltalk” воскликнул директор по персоналу. Для меня это стало точкой. Никто не знал о нем, ведь программирование на Smalltalk было принципиально иным, чем опыт программирования на Java. Различный опыт обуславливает разные запросы у кандидатов, и динамический характер среды Smalltalk изменил бы подход к проблеме у Java программиста. Я надеялся на то, что эти факторы будут стимулировать уровень технической зрелости, который я не увидел до сих пор среди кандидатов.

Добавление Smalltalk в список требований, дало группу кандидатов, которая была крошечной по сравнению с предыдущим списком. Эти люди были как неогранённые алмазы. Они действительно понимали ООП. Они знали, что Java не является панацеей, роль которой ей иногда приписывали. Многие из них любили программирование.

Где вы были в течении последних двух недель?
Мы думали.

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

Для меня, как менеджера по найму, первая причина в том, чтобы показать, чем вы интересуетесь. Если я знаю, что вы изучаете что-то ради саморазвития, и (что еще лучше) просто ради удовольствия, я знаю, что вы любите свою работу и заинтересованы в ней. Спрашивая людей, видели ли они или используют ряд, не совсем, широко распространенных технологий, я сходил с ума, когда слышал в ответ “Мне никогда не давали возможность поработать с этим”. Давали возможность? Мне тоже не давали. Я сам ее нашел, и воспользовался.

Мне никогда не давали возможности? Схвати возможность!


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

Действуйте!

Выучите новый язык программирования. Но не переходите от Java к C#, или от C к C++. Выучите новый язык, который заставит вас думать по-новому. Если вы программист Java или C#, попробуйте такие языки как Ruby или Smalltalk, они сильно не используют статическую типизацию. Или, если вы долгое время писали объектно-ориентированный код, попробуйте языки функционального программирования, такие как Haskell или Scheme. Вам не нужно становиться экспертом. Проработайте достаточно кода, чтобы вы действительно почувствовали разницу в новой среде программирования.

Если вы чувствуете себя странно, или чувствуете что выбрали не тот язык, или вы применяете свои старые подходы к коду на новом языке. Сойдите с пути, чтобы узнать идиомы нового языка. Попросите старожилов проверить ваш код, и сделать замечания, которые делают его более правильным идиоматически.
Матяш Сергей @matiaspub
карма
18,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

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

  • +5
    Какой-то слишком уж корявый перевод у вас, если честно.

    А по теме — да это же аксиомы. Если ты остановился на одном языке\фреймворке, значит ты перестал расти над собой. Ты можешь изучить этот язык\фреймворк глубже, но для истинного развития программистского мышления нужно поместить себя в новую среду, чтобы стимулировать мозг к поиску и использованию новых тактик.
    • 0
      Про перевод да.
      Особенно понравилось «Попросите сторожил».

      Автору: если что, правильно «старожилов».
    • +1
      Вот кстати мне тоже всегда казалось, что аксиомы, но сложилось так, что в 4 разных командах попадались только люди, которые никогда не программируют дома. Программирование для них — это работа и точка. А интересы они ищут на стороне — тренажерка, парашюты, йога, танцы, велосипеды. Где искать программистов по призванию, а не по профессии?
      • 0
        Ок, заминусовал кто-то из моей команды бывшей. Жду когда остальные подтянутся. Должно быть где-то -60 у коммента значит.
      • +2
        Может быть это были люди с семьями и не зацикленные на узко профессиональном развитии?
        Нелепая претензия «интересы на стороне». Займитесь йогой на досуге.
        • +2
          PS: я за постоянное развитие, но это могут быть просто книги, а программировать достаточно 8ч в день
          • 0
            Я не спорю, что большинство программистов поддержат именно вас. Я понимаю вашу сторону, но принадлежу к другой. Претензий никаких нет, я просто воззразил на первый комментарий. И как раз именно у вас претензии ко мне и у тех, кто минусует. Я никого не минусую, потому что мне обе стороны кажутся нормальными. Вы же видимо считаете меня больным, раз я после рабочего дня прихожу и начинаю программировать какие то свои идеи по 4 часа в день. И еще половину выходных иногда. Мне просто с вами не по пути, вот и все. Но это не значит, что я сейчас буду свой праведный гнев на вас изливать.
            • +2
              Да я тоже так жил одно время, но, как говорит один знакомый, «вот будут у вас свои дети...»
              А танцы/велосипеды и пр. это действительно полезно для здоровья.
              • 0
                Полезно, кто ж спорит. Но вот сейчас можете ли вы сказать, что поступали в корне неправильно? Или же вас что-то демотивировало в свое время, отчего перестали увлекаться программированием? Именно увлекаться, а не работать.
                • 0
                  Знаете… Когда начнутся проблемы со здоровьем, будет уже поздно об этом думать.
                  А они обязательно начнутся рано или поздно при таком графике.
                  Я лично успел вовремя остановиться… успеете ли Вы?
                • 0
                  И, да, чтобы не было недопонимания: мне действительно нравится программировать. Недавно только взялся за трехмерную графику. Но если себя не останавливать, это плохо сказывается на всем окружении: семья, дети, работа, друзья, здоровье и т.д.

                  Нужно меру знать.
  • 0
    Черт побери! Нередко встречал фразу “Мне никогда не давали возможность поработать с этим” в разных ее интерпретациях. Но пока еще не нашел верного способа подтолкнуть человека саморазвиваться, учиться новому, показать, что, в первую очередь, это полезно/нужно ему самому.
  • +1
    Мне никогда не давали возможность поработать с этим
    Они это серьёзно? Кто распределяет возможности заниматься языками программирования? Может где-то есть окошко в котором выдают талоны на право ими заниматься? Наверное мне стоит пойти постоять в очереди за талонами RoR.

    Я уже 5 лет занимаюсь Javascript… бесплатно! Единственный случай когда я получил деньги за написание кода на Javascript — кодинг интерфейса для свёрстанного мною же сайта (при этом что бы взять на себя кодинг этого сайта, мне потребовалось написать код интерфейса для предыдущего сайта бесплатно в нагрузку к вёрстке, просто ради того что бы заказчик увидел что я это умею)

    Что-что, а программирование — такая специфическая сфера деятельности, которая практически не ограничивает специалистов в изучении нового и в профессиональном росте.
    • 0
      Согласен. Я лично пришел с десктоп на мобильную платформу: Android. Увы, компания направлена на Android, так что тут как бы ты ограничен языком и фреймворком. Думаю многие в подобной ситуации.
    • +1
      Речь видимо о том, что некоторые программисты ждут от своих менеджеров слов наподобие этих: «Окей, чувак, ты знаешь Erlang? Нет? Отлично, давай тогда напишем часть проекта на нем» :)
      • +1
        Улыбнуло :-)
  • 0
    Этой проблеме столетия. И она не является специфичной для программирования.
    Говоря кратко «Кто хочет работать — ищет средства, кто не хочет — причины.» (с) С.П.Королёв.
  • 0
    Отлично, пишу на ассемблере, паскале и ABAP-е… что бы еще изучить для полноты картины?
    А может… придумать свой язык? Интересно, а PowerShell тоже за язык можно считать?
    • 0
      Brainfuck, однозначно. Поможет «развитию программистского мышления», как было сказано в первом комменте)
      • 0
        Ага, развивает память и устный счет :-)
  • +1
    Спасибо за статью, но, черт побери, ваш русский неприятен.
  • +1
    Оформите как перевод пожалуйста.

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