Пользователь
0,0
рейтинг
9 января 2010 в 00:08

Страсть к программированию. Часть 1 (Выбираем рынок). Начало

Продолжаю перевод книги Чеда Фоулера «Страсть к программированию». Это первый из разделов первой части, которая посвящена выбору рынка. Так же текущую версию перевода можно теперь скачать и в PDF.
< — Глава 3. Введение Спрос и предложение ->

Ты на пороге большой инвестиции. Может быть она не потребует от тебя много денег, но потребует вложения времени — материала, из которого состоит жизнь. Многие из нас при построении карьеры плывут по течению, позволяя ему занести куда угодно. Мы просто изучаем Java или Visual Basic, а потом начальство организует нам курсы по какой-нибудь новомодной индусской технологии. И так мы и плывём дальше некоторое время, пока кто-нибудь нас ещё куда-нибудь не подтолкнёт. Такая карьера — одна большая цепочка случайностей.
В книге «Программист-Прагматик» Дэйв Томас и Энди Хант рассказывают о программировании в расчёте на совпадение. Большинство программистов придерживаются такого подхода: начинают работать над чем-либо, добавляют немного кода здесь, намного там. Ты можешь начать с примера программы, который скопипастишь из интернета. На первых порах это работает и ты немного правишь программу, чтобы она больше отвечала твоим требованиям. Ты не совсем чётко представляешь себе что ты делаешь, но продолжаешь пинать программу то здесь, то там, пока она практически полностью не станет такой, какой должна быть. Проблема в том, что в этом случае ты не понимаешь, как она работает и, как в карточном домике, каждая новая добавленная фича повышает вероятность того, что программа рухнет.
Для любого разработчика очевидно, что программирование в расчёте на совпадение — это неправильно. Однако для многих из нас важнейшие решения в карьере становятся, по сути, случайными. В какие технологии мы должны вкладывать? В какой сфере развиваться? Нужно ли углублять свои знания или обходиться кратким рассмотрением? Эти вопросы должны возникать сами собой.
Представь, что ты открыл своё дело и решаешь, что же будет флагманским продуктом компании. Без такого продукта-«хита» компания скорее всего пойдёт ко дну. Много ли нужно уделять внимания выбору целевой аудитории? Перед тем, как приступить непосредственно к производству продукта, сколько времени уделить на определение того, что же конкретно он будет из себя представлять? Никто не доверит кому-нибудь другому принимать такие решения. Мы будем сверхвнимательны к каждой детали при принятии таких решений.
Так почему же большинство из нас не делают этого, когда решения касаются карьеры? Если ты подумаешь о своей карьере как о бизнесе (чем она, несомненно, и является), то твой «продукт» — это те услуги, которые ты предоставляешь.
Что это за услуги? Кто их купит? С годами будет ли расти или уменьшаться доход от них? Насколько ты рискуешь, делая тот или иной выбор?
Эта часть книги поможет тебе ответить для себя на эти важнейшие вопросы.

Веди или умри

Если ты собираешься вкладывать деньги, то перед тобой множество вариантов. Ты можешь положить их на сберегательный счёт, но доход с него вряд ли убережёт тебя от инфляции. Можешь вложить их в государственные сберегательные облигации. И опять же в результате денег будет не много, но зато это — самый безопасный путь.
Или же ты можешь вложить их в маленькую начинающую компанию. К примеру, вложить несколько сотен долларов в обмен на небольшую долю в этой компании. Если у неё хорошая задумка и есть эффективное управление для её осуществления, то ты можешь на этом серьёзно навариться. С другой стороны, у тебя нет никаких гарантий, что ты вообще хотя бы окупишь изначальные вложения.
В этом нет ничего нового. Мы все познаём это ещё из детских игр. Если я побегу прямо между ними, то возможно это их ошарашит и никто меня не осалит. То же самое происходит с нами в нашей повседневной жизни. Если ты опаздываешь на встречу и выбираешь дорогу на работу, то делаешь тот же самый выбор, взвешивая риски. Если пробок нет, то я сэкономлю 15 минут если поеду по 32-ой улице. А если там пробка, то мне конец.
Взвешивание рисков — важная часть при выборе тех технологий и областей, в которые ты будешь инвестировать своё время. Пятнадцать лет назад выбор изучения COBOL был практически не связан с риском. Поэтому программистов COBOL было очень много и их средняя зарплата не особенно впечатляла. Легко можно было найти работу, но вряд ли она принесла огромный доход. Низкий риск — низкая и награда.
С другой стороны, если бы ты решил изучать новый язык Java от Sun Microsystems, то возможно были бы проблемы с поисками компании, которая делает что-то на Java. Кто знал, что кто-то вообще будет использовать Java?
Но если ты взглянешь на состояние индустрии того времени, как это сделала Sun, то увидишь что-то особенное в Java. У тебя может появиться сильное чувство, что из этого получится что-то внушительное. Инвестиции во что-то перспективное на раннем периоде может сделать тебя лидером в новом технологическом направлении.
Конечно, в данном случае ты бы поступил правильно. И если бы ты действовал правильно, то инвестиции в Java могли бы стать очень прибыльными. Высокий риск — высокая награда.
А теперь другая ситуация. Тогда же, 15 лет назад, ты увидел демонстрацию BeOS от Be. В то время это было что-то невероятное. Мультимедиа возможности просто поражали. Платформа наделала много шума и вскружила головы докам своего дела, заставив их с нетерпением ждать нового игрока на рынке ОС. С новой платформой несомненно должны были появиться и новые подходы к программированию, новые API и новые концепции интерфейсов пользователей. Это было непаханное поле для изучения, но, казалось, оно того стоило. Тебе бы могло потребоваться затратить много сил, чтобы создать, к примеру, первый FTP-клиент или менеджер контактов для BeOS. Когда Be выпустила Intel-совместимую версию операционной системы, то начали циркулировать слухи о том, что компанию купит Apple и использует наработки BeOS как основу для следующего поколения операционной системы Macintosh.
Apple не купила Be. И со временем стало ясно, что Be не собирается захватывать даже какой-нибудь нишевый рынок. Продукт просто не цеплял. Множество разработчиков, которые практиковались в программировании для BeOS начали медленно и болезненно осознавать, что их инвестиции не окупятся в долгосрочной перспективе. В итоге Be была куплена компанией Palm и разработка операционной системы была остановлена. BeOS была рискованной, но очень притягательной технологической инвестицией, которая не принесла долгосрочной выгоды тем разработчикам, которые в неё вложились. Высокий риск и ничего взамен.
Как бы то ни было, я говорю о разнице между новейшими технологиями и уже устоявшимися. Выбор стабильной технологии, которая прочно вклинилась в производственные бизнес системы по всему миру, более безопасен, но потенциально менее выгоден, чем выбор новейшей технологии, с которой ещё никто не работает. А как насчет технологий, отживающих свой век? Тех, которые только и ждут когда же в крышки их гробов забьют последние гвозди?
Кто вобьёт эти гвозди? Взять к примеру программистов RPG — уже седых и считающих часы до выхода на пенсии, в то время как молодёжь даже не слышала об этом языке. Они все учили Java и .NET. Понятно, что карьера этих последних оставшихся приверженцев умирающей технологии описывает ту же спираль смерти, что и сама технология.
Но старые системы не умирают. Они заменяются. Более того, в большинстве случаев, системы заменяются поэтапно. И в течение этих этапов старые системы должны общаться с новыми. Кто-то должен знать, как наладить такое взаимодействие в обоих направлениях. Обычно, молодёжь не знает (да и не особо хочет узнавать) как работать со старыми системами. В то же время сварливые старики не знают, как заставить новомодные системы разговаривать с их любимыми созданиями.
Объединение знаний по этим двум технологиям может оказаться выгодным.
Поэтому задача расчетливого программиста — занять эту нишу и организовать таким образом технологический хоспис. Помочь отжившим своё технологиям уйти с достоинством — задача, которую сложно переоценить. И, конечно, люди обычно покидают корабль до того, как он утонет, либо уходя на пенсии, либо просто переходя на другую технологию. Если ты будешь последним, кто сможет сопровождать всё ещё критичные системы, то весьма вероятно будешь в цене. Это рискованно, потому что когда технология действительно исчезнет, то ты будешь экспертом в чём-то, что уже не существует. Однако если ты умеешь быстро переключаться, то сможешь взять другую умирающую технологию и начать сначала.
Кривая развития технологии имеет два края. Как далеко от этих краёв ты предпочтёшь находиться?

Действуй!

Составь список существующих технологий, находящихся в начале, середине и в конце своего пути. Расположи их слева направо. Слева будут новейшие, а справа — уходящие технологии. Заставь себя найти как можно больше технологий в каждой части спектра. Будь как можно внимательней к тому в каком порядке расположить их на этой прямой относительно друг друга.
Когда напишешь все технологии о которых только сможешь вспомнить, пометь те, в которых ты силён. Затем, может быть другим цветом, пометь те, с которыми ты имел дело, но не настолько в них разбираешься. На каком из концов у тебя наибольшее количество отметок? Они сгруппированы? Или же разбросаны друг относительно друга? Есть ли среди тех технологий, которые расположены на самых краях такие, в которых ты особенно заинтересован?
Андрей @KoppeKTop
карма
46,1
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

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

  • 0
    Очень так рассудительно все, с нетерпением жду продолжения.
  • –2
    Предлагаете изучать старые технологии чтобы быть в цене?
    Ну незнаю, я занимаюсь программированием не ради денег и набивать себе цену — низко.
    • +1
      Не совсем так. Не нужно до упора цепляться за старые технологии. Нужно их заменять на более сопровождаемые, расширяемые и удобные. Но для этого нужно знать и старую технологию и новую. И понимать как их вместе заставить работать.
  • 0
    Это все равно что быть гробовщиком. Что такое счастье гробовщика- много заказов. А будет ли людям счастье от того, что гробовщик похоронил в этом месяце тройную норму?
    Мне кажется, что все таки нужно изучать новые технологии. Делать ставку на прошлое — рискованей. Сейчас и так много костылей в ИТ, который тормозят развитие, а автор предлогает эти костыли продолжать поддерживать.
    Мои претензии не к автору перевода конечно, спасибо ему за перевод, а скорее к автору оригинальной книги.
    Автору перевода -спасибо за добросовесный труд.
    • +1
      Это — не совсем то же самое, что быть гробовщиком. Это как быть тренером. Ты планируешь как работать и с опытными, и с новыми учениками. Готовишь смену, помогаешь поддерживать форму уже уходящим спортсменам. Растишь им смену, налаживаешь обмен опытом между ними.
      Короче, нужно знать как работать с новыми и старыми технологиями и уметь строить между ними мосты, со временем полностью переходя со старой технологии на новую. Про костыли — это точно, однако для некоторых областей (например, банков) стабильность важнее всего и они используют старые проверенные решения. Вот тут и пригодились бы эксперты, знающие тот же COBOL и способные плавно и безболезнено перейти на что-то более современное и расширябельное.
  • 0
    KoppeKTop,
    как продвигаются дела с переводом следующих глав? Мысли хоть и спорные автор излагает, но всё-равно интересно почитать.
    • 0
      Да, прошу прощения, из графика выбился из-за жути с работами, но продолжаю переводить. Продолжение будет.
  • 0
    Спасибо! Читаю.
    Жду продолжения.
    У Вас отлично получается!

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