Pull to refresh

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

Reading time4 min
Views43K
< 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. Вам не нужно становиться экспертом. Проработайте достаточно кода, чтобы вы действительно почувствовали разницу в новой среде программирования.

Если вы чувствуете себя странно, или чувствуете что выбрали не тот язык, или вы применяете свои старые подходы к коду на новом языке. Сойдите с пути, чтобы узнать идиомы нового языка. Попросите старожилов проверить ваш код, и сделать замечания, которые делают его более правильным идиоматически.
Tags:
Hubs:
+20
Comments22

Articles