Американский iOS-разработчик Базель Фарах, который в своё время выучился на программиста самостоятельно, в своей колонке для TechCrunch просит перестать разбрасываться призывами «учиться на программистов» и объясняет, почему эта профессия подойдёт не всем.
«Это как призывать всех идти в сантехники»
В последнее время в техническом сообществе набирает обороты идея о том, что каждый должен научиться программировать. Код стал рассматриваться как необходимый навык для завтрашней рабочей силы.
Кремниевая долина в исполнении студии HBO представляется как новый секс-символ и симпатичное место тусовки 20-летних стартаперов, которые по ночам кодируют и курят травку, одновременно зарабатывая миллионы. Воображение публики поражают фигуры вроде Маска или Цукерберга, заработавших кучу денег в одночасье. Движение «Learn to Code», организации вроде Code.org, Голливуд, политики, даже бывший мэр Нью-Йорка Майкл Блумберг — все они выступают евангелистами повального изучения кодирования. Лихорадка добралась даже до Белого дома: президент Барак Обама настаивает на том, чтобы включить код в обязательную школьную программу.
Но есть одна проблема: программирование — это не новая грамотность.
Да, потребность в программистах в мире усиливается, но общая картина куда более сложная. Мы живем в ультраконкурентном мире, где люди готовы на всё, чтобы свести концы с концами. Продавать массам программирование в качестве «билета в счастливое завтра» попросту нечестно.
Я бы не призывал всех учиться программировать — как не призывал бы всех идти в сантехники. Не поймите меня неправильно, я считаю инженерию и программирование важными навыками. Но только в правильном контексте и только для того типа людей, которые намерены вложить в это дело нужное количество, пота, крови и слёз. То же самое можно сказать и о многих других навыках и профессиях.
Обучающие курсы от «продавцов змеиного масла»
Лично я рассматриваю многие обучающие курсы, которые куют новые программистские кадры, с возрастающим скептицизмом. Хотя глянцевые брошюры обещают хорошо оплачиваемую работу, правда в том, что многие из этих учреждений не аккредитованы, не показывают статистику своей работы и плохо справляются с тем, чтобы помочь выпускникам устроиться — в большинстве своём это продавцы змеиного масла.
Кроме того, чрезмерный фокус на необходимости срочно учиться программировать игнорирует ряд проблем.
Решать проблемы, а не работать по шаблону
После курсов люди приходят в профессию без твёрдого понимания области — инженерии и программирования.
У меня есть близкий друг, выпускник Стэнфорда и победитель престижной олимпиады по программированию. Главное, чему его научили олимпиады, заключается в следующем: приступать к написанию кода нужно лишь после тщательного обдумывания проблемы. Во время олимпиад он использовал почти всё положенное время, чтобы думать об этой проблеме, и приступал к коду, когда до дедлайна оставалось несколько минут.
Потому что код не решит проблему — её решит внимательное, хладнокровное обдумывание.
Вам понадобится много времени, чтобы выстроить своё понимание этой области. Вы должны стать тем, кто решает проблемы, а не просто работает по шаблону.
Успевать за слишком быстрыми изменениями
Технологические изменения в отрасли происходят очень быстро. Ещё несколько лет назад я использовал Objective-C, теперь почти полностью программирую на Swift. Многие теперешние iOS-разработчиков не написали на Objective-C ни строчки. Да, Swift легче, безопасней и элегантней — чем никогда не мог похвастать Objective-C. Новое поколение разработчиков никогда не будет иметь дело с недостатками Objective-C — и это здорово, но это игнорирует суть профессии.
Что происходит с человеком, который день и ночь изучал Objective-C, чтобы потом прийти в ужас от анонса Swift на WWDC 2014? Продолжает ли они кодировать на теряющем популярность языке или начинает сначала? Если вам 20 с небольшим, здесь нет особых трудностей, но когда вы заботитесь о семье, её счетах и голодных ртах, задача становится поистине сложной.
Идя в разработку, нужно быть готовым к тому, что в любой момент может возникнуть необходимость овладеть новым языком или новыми навыками.
Найти работу без диплома
Более того, не так-то просто пересечь линию, которая разделяет обучающие курсы и первую зарплату. В самом деле. Лично у меня на самостоятельное обучение ушло больше года — прежде, чем я получил работу на фрилансе. Даже после этого мне платили мало. Бесчисленное количество раз мне было отказано даже в собеседовании, потому что у меня не было релевантного диплома. Много раз я хотел бросить, но нашёл в себе силы продолжать. Упорство — вот что позволяет мне оставаться в этой индустрии.
Помимо прочего, здесь нужно быть готовым бороться за рабочее место, если у тебя нет диплома.
Резюме: переход от кодера к программисту как сложная задача
Если программирование — это то, чего вы действительно хотите, не позволяйте мне или кому-нибудь другому (включая систему образования, к слову) встать на вашем пути. Нет правильных или неправильных способов, чтобы идти к цели.
Но не отрывайтесь от реальности под воздействием чар Кремниевой долины и её медийного образа. Программирование — это прибыльное дело, но переход от «кодера» к программисту и инженеру является сложной задачей, которая может потребовать изменить не только свою жизнь, но и свой образ мышления.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.