Обучение — дело рук самого обучающегося

2014-02-11

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

В этих словах есть смысл, но всё равно мне в них виделся какой-то подвох. Во-первых, программист старшего поколения отнюдь не всегда является замшелым маразматиком (как и молодость не всегда означает современный подход). Всё, что я хотел сказать в ответ на тот комментарий, это:

 

 

«Ответственность за собственные навыки несёт сам программист, а не его работодатель».

Я работаю программистом уже 32 года. Многие мои ровесники, получившие степень бакалавра по специальности «Компьютерные технологии» со времён своего выпускного не изучили ничего нового. Конечно, тогда изучение новых технологий требовало невообразимое количество усилий: никакого интернета, нужно было читать настоящие бумажные книги (сарказм).

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

Потом я прочитал об объектно-ориентированном программировании, и снова впечатлился. Добавил несколько объектов в С и значительно повысил производительность. Когда появился С++, я уже был готов к нему.

Потом я временно работал в Apple (когда они ещё не были крутыми и знаменитыми), и там я понял, что пора переходить на веб. Поэтому устроился на работу в консалтинговую фирму, которая использовала NeXT WebObjects, написанные на странном языке под никому не известным названием Objective-C (потом, когда вышел первый iPhone, я многократно поблагодарил небеса за эти знания). Потом, когда появился Java J2EE, я убедил компанию работать с этой технологией, и на нём я сделал свой первый проект. По случайному совпадению проект предназначался для компании, которая стала прародителем моей текущей организации.

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

Был у меня в начале 2000-ых один коллега, руководитель отдела по разработке на С++, который постоянно жаловался на проблемы с IE. Когда я предложил ему попробовать Firefox, он посмотрел на меня как на сумасшедшего: он даже предположить не мог, что в мире есть другие браузеры, кроме IE. Он абсолютно не интересовался этим, поскольку это не входило в его прямые должностные обязанности.

Мне не понять такого отношения.

 

Никогда не знаешь, какие именно познания тебе пригодятся в будущем, и отказываться от них — всё равно что отказываться от путешествий по миру.

Мои друзья, получившие давным-давно свой диплом о высшем образовании, уже потеряли свои места работы  сразу после того, как те технологии, с которыми они привыкли работать, безнадёжно устарели. Они закончили свою программистскую карьеру, и теперь жалеют, что не изучали что-то новое в своё время. Проблема в том, что собственную отсталость начинаешь осознавать слишком поздно. А уж надеяться на то, что в обучении тебе поможет работодатель, может только наивный Буратино. В наше полное конкуренции время работодатель может запросто выбросить в мусорную корзину тебя, твои проекты, да и всю свою компанию. Есть ли смысл в таких условиях ожидать манны с небес?

Я впервые услышал об Ajax, когда занимался веб-приложениями; вскоре я собрал своих коллег, чтобы вместе изучить технологию. Знаете, какова была реакция моих коллег-системных архитекторов? Они испугались, что я без разрешения руководства решил использовать в работе новую технологию. Когда я сказал им, что это всего лишь JavaScript, они немного успокоились. Самое страшное в этом  это тот факт, что это была команда архитекторов, чья работа подразумевает изучение новых технологий. И даже здесь оказалось сложно научить людей впитывать информацию.

Конечно, сейчас успевать за стремительным развитием технологий  поистине Сизифов труд. Те, кто пишут, к примеру, на JavaScript, сталкиваются с обновлениями практически ежедневно. Поспеть за всем просто невозможно: пока ты что-то освоишь, на смену приходит уже другой модный фреймворк.

Когда я изучал химию после завершения основного образования, одним из моих предметов был APL. На практике я его так никогда и не использовал, только для баловства, но он стал основой для моего первого стартап-продукта. И наоборот, я бросил заниматься Objective-C с 1999 г., а теперь это мой основной язык. Никогда не знаешь, за каким поворотом тебя ждёт удача.

Что меня неимоверно раздражает  так это то, что программисты всё чаще не желают смотреть дальше своего носа. Могу привести ещё один яркий пример своих соратников, которые использовали 4GL, генерирующий RPG-код. Они били себя в грудь кулаками и утверждали, что это лучшая вещь в мире, и им никогда не понадобится работать с чем-либо ещё. Вот им как раз и придётся тяжело в поиске новой работы (ни тени злорадства).

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

 

Не ждите, пока беспощадный каток инноваций проедется по вашим амбициям.

Так что хватит просиживать в социальных сеточках, откройте вместо этого добротную документацию того, что хотели давно изучить, но всё никак не выдавалось времени, и начните менять свой подход. Это правда совсем несложно. И это именно то, что помогает мне находить удовольствие в программировании спустя более чем 30 лет опыта.

Перевод: Люся Ширшова. Спасибо вдохновляющему посту от TheCodist


Читайте также: 

На чём программируете? — На чём угодно

Математика и программирование: нужны ли они друг другу?

Как технологии помогают творить