Стать программистом может каждый: секреты мастерства
Типичный офисный пользователь компьютера рассказывает коллегам о своем опыте общения с сисадмином:
- «Комп выключился, и ничего не помогало. Пришлось админа звать. Тот пришел, воздел к небу руки, пробормотал под нос что-то неразборчивое, крутанул мой стул раз десять и провел рукой по задней стенке системного блока. И все заработало!»
Та же история в изложении сисадмина:
- «Этот балбес так крутился на стуле, что шнур питания обмотался вокруг ножки и выскочил из гнезда. Пришлось помянуть такую-то мать, распутать шнур, а затем вставить штекер обратно».
Конечно, системный администратор – это не программист, но тоже человек, разбирающийся в современной технике и потому окруженный благоговейным уважением тех, кто этой способностью не обладает. А программист, ясное дело, еще круче.
Мифы о сверхлюдях
Миф №1 – надо быть гением. И с высшим образованием. На самом деле профильное образование обязательным не является, хотя во многих случаях и желательно. В этом легко убедиться, вспомнив недавнюю историю: два знаменитейших первопроходца этого рынка, Билл Гейтс и Стив Джобс, как-то сумели обойтись без высшего образования вообще. Гейтс продержался в Гарварде два года, а потом его оттуда выгнали. Когда буйный отрок стал преуспевающим бизнесменом, Гарвард все-таки выдал ему диплом, но статус автора MS DOS и организатора Windows от этого уже измениться не мог. Это был тот случай, когда человек красит место, а не наоборот. Джобс не осилил и этого: его отчислили из Рид-колледжа через полгода, после чего он увлекся индуизмом, каллиграфией, вегетарианством и т. п. Компьютеры в списке его хобби были не на первом месте.
В сегодняшнем мире треть программистов не имеет профильного образования. Это не значит, что они плохо работают или мало зарабатывают. Что же касается образования вообще, то оно лишним бывает очень редко, причем порой могут пригодиться самые неожиданные познания. К примеру, среди разработчиков 3-го и 4-го «Фаллаутов» явно не было геолога. Он бы подсказал, что повсеместно видимые на игровых пейзажах скалы должны выглядеть иначе.
Миф №2 – надо уметь быстро писать программы в двоичном коде. Да, наши дедушки и бабушки, вероятно, еще помнят времена, когда ЭВМ занимала едва ли не целый дом, программы для нее выглядели как последовательность нулей и единичек, а предположение, что эта штука когда-то сможет общаться с людьми на более-менее человеческом языке, смотрелось как научная фантастика. Эти времена прошли уже к началу 1950-х, когда вместо двоичного кода в обиход вошел язык ассемблера, на котором было написано приблизительно то же самое, но буковками. Сейчас это называется низкоуровневым программированием. Им занимаются специально дрессированные люди, помнящие последовательность действий программируемого процессора и умеющие держать в голове содержание его регистров. Типичному программеру, занятому автоматическим составлением накладных, это не нужно совсем.
В последующие годы были изобретены языки программирования высокого уровня и трансляторы для них. Уже не надо было думать о содержимом регистров: программист описывал переменную, а программа сама решала, где ее хранить.
Жизнь не стоит на месте: последние два десятилетия ознаменовались появлением обширной группы сервисов, известных ныне как no-code. Главная идея проста: пользователь (при сильном желании его можно назвать и программистом), используя специальный набор шаблонов, делает конечный продукт, вообще не прикасаясь к какому-то коду. Нужно составить и оформить окна, разместить кнопки, прицепить нужные скрипты. На выходе получаем более-менее симпатичный (ну, у кого на сколько способностей хватило) веб-сайт. Чаще всего это интернет-магазин, хотя вариантов уйма. Через пару минут серфинга в интернете вы найдете с десяток сервисов разной степени популярности, предлагающих подобные услуги.
Плюс no-code в дешевизне. У начинающего бизнесмена, как правило, нет лишних денег, да и с нелишними не все очевидно. Дешевле нанять веб-дизайнера средней квалификации, чем команду программистов, которые сделают в общем-то тоже самое, но свое. У этой медали есть обратная сторона: за поддержание своего сайта на выбранной платформе надо платить, иногда – довольно много, перенести его в другое место нельзя, поскольку формат его файлов уникален и не распознается другими сервисами. Наконец, если вам нужно сделать что-то нетривиальное, вы рискуете оказаться перед неразрешимой проблемой: такого шаблона просто не окажется. Поэтому, когда у предпринимателя появляются сколько-нибудь приличные деньги, он нанимает специалистов и делает самостоятельный сайт.
Тем не менее программирование no-code довольно востребованно, и немудрено, что различные курсы, вроде популярных в России GeekBrains, занимающихся подготовкой высокоуровневых разработчиков, обучают и таких специалистов тоже.
Миф №3 – это чисто мужская профессия. Как показывает статистика сервиса GitHub, предлагающего желающим программистам усовершенствовать чужой открытый код, заявки женщин и мужчин удовлетворяются в одинаковой степени – около 75%. Всего в 2016 году авторами исследования было изучено три миллиона заявок с правками, что позволяет считать выборку репрезентативной. Более свежих данных у нас, увы, нет, но маловероятно, что ситуация за четыре года могла принципиально поменяться. Женщины владеют этой профессией не хуже, чем мужчины. Тем не менее женщин среди программистов всего около 7–10%.
Очевидно, дело не в профессиональных навыках, а в бытующих в обществе социокультурных стереотипах, в соответствии с которыми программирование – мужская профессия. Этот стереотип существует по крайней мере на трех уровнях: работодатели часто скептически воспринимают профессиональные качества женщин, коллеги-мужчины также относятся к ним иронично, родные и близкие, особенно не разбирающиеся в тонкостях профессии, полагают, что девушке стоило бы заняться чем-то более привычным и понятным – работать учительницей, воспитательницей, юристом, наконец.
Как показывают опросы дам-программисток, коллег можно убедить в своем мастерстве за пару месяцев, работодателей – за немного больший срок, а вот с родственниками сложнее. Надо иметь сильный характер и желание заниматься любимым делом.
Сухой остаток: современный программист – обычный человек. Скорее всего неглупый и усидчивый, но пламенного мотора вместо сердца у него нет. Возраст также не играет принципиальной роли.
Как стать программистом
Во-первых, надо этого хотеть. Во-вторых, уметь думать головой. Для программиста критически важна способность понимать конечную задачу и уметь делить путь к ней на этапы (подпрограммы). Иногда это умение может быть визуализировано в форме нарисованной блок-схемы с квадратиками, ромбиками и стрелочками, но обычно профессионалы обходятся без нее, а к инфографике прибегают только в случае серьезного взаимонепонимания.
Программирование можно освоить самостоятельно, было бы желание и домашний компьютер. Но все-таки разумнее и эргономичнее потратиться на специальные курсы. Выигрыш здесь в том, что учащемуся не нужно самостоятельно искать информацию, оценивать степень ее нужности и ошибаться.
Разумный подход к обучению демонстрируют уже упоминавшиеся выше курсы GeekBrains. Программа курсов предусматривает подготовку специалистов множества профессий, связанных с программированием. Программистов наиболее востребованных «жанров» готовят на специализированных факультетах.
Для начинающих предназначен специальный бесплатный интенсив «Основы программирования», слушатели которого на практике узнают, как устроено программирование, и вообще станут понимать, что это такое и как делается. Всего курсов на портале полторы сотни, не считая вебинаров, поэтому возможностей для развития более чем достаточно.
К слову, особая фишка GeekBrains – это гарантия трудоустройства после обучения на большинстве факультетов. Пока студент учится, специалисты портала ищут ему рабочее место. Обычно это топовые российские компании, вроде крупных банков и фирм, специализирующихся в IT-отрасли. К моменту окончания обучения выпускник имеет в своем портфолио не менее трех самостоятельно выполненных проектов, что упрощает взаимопонимание с работодателем.