Новости

Как стать программистом

Представители крупных IT-компаний о том, как стать программистом

По просьбе «Газеты.Ru» представители четырех крупных IT-компаний рассказали, кто, когда, где и при каких обстоятельствах может стать сильным программистом.

Семь вопросов от «Газеты.Ru»


Мы задали семь вопросов Станиславу Протасову из компании Parallels, Илье Сегаловичу из «Яндекса», Максиму Ушакову из Google и Алексею Тотмакову из «Лаборатории Касперского». Ниже вы можете ознакомиться с вопросами и ответами на них. Если вы хотите рассказать о том, как стали программистом, пожалуйста, напишите нам письмо через форму «Поделиться личным опытом» (находится слева). Если вы хотите просто прокомментировать прочитанное, воспользуйтесь кнопкой «Добавить комментарий» (внизу).

1. Расскажите, когда вы решили стать программистом и как им стали?
2. Какими качествами, на ваш взгляд, должен обладать человек, чтобы стать сегодня сильным (успешным) программистом? Как ему понять, что он правильно выбрал профессию? Есть ли какие-то возрастные ограничения, после которых начинать уже поздно?
3. Какие учебные заведения в России и за границей готовят сильных программистов?
4. Помимо обязательно учебной программы нужны ли какие-то дополнительные знания и навыки? Где их можно получить?
5. Можно ли стать сильным программистом без профильного высшего образования?
6. Можно ли выделить наиболее перспективные области в профессиональной сфере деятельности? Какие программисты сейчас самые востребованные и высокооплачиваемые?
7. Что легче: найти интересную и хорошо оплачиваемую работу в России или уехать работать за границу? Если второе, то куда именно?

Ответы Станислава Протасова, сооснователя и главы разработки компании Parallels



1. Я не планировал стать программистом. Учился в МФТИ, хотел стать ученым и заниматься наукой. К моменту окончания вуза СССР развалился. НИИ и прочие научные организации лишились финансирования и больше не могли нанимать новых сотрудников, распределения отменили. Перспектива сделать научную карьеру стала маловероятна. И тогда я решил заняться чем-то таким, чтобы было с одной стороны мне интересно, а с другой связано с полученной вузовской специальностью.

Зарождающийся капитализм на тот момент начал трансформировать госпредприятия. Им понадобились IT. На предприятиях стали появляться компьютеры, которыми никто не умел пользоваться. Куски документации, которые непонятно как оказались в стране, жадно зачитывались до дыр. Кроме того, в 90-е годы среди всех научных областей и специальностей IT-индустрия была единственной, где платили деньги.

Мне лично все это было очень интересно, поэтому мой выбор пал на IT-администрирование и программирование. Помню мое удивление, когда я приехал в 1995 году в Сингапур и увидел книжные полки, заваленные литературой по программированию. Любая полезная информация, которая была в дефиците в России — передавалась на дискетках, в распечатках — в Сингапуре была доступна и стоила совсем небольших денег.

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

2. В отличие от чекистов горячее сердце программисту не требуется. Но, перефразируя Дзержинского, умелые руки и холодная голова нужны. Если серьезно, хорошему программисту или IT-предпринимателю очень желательно иметь хорошее техническое образование. Нужны знания или желание делать завершенный продукт. Важно не замыкаться исключительно на технической составляющей. Неплохо бы послушать лекции по маркетингу, брендингу, созданию и менеджменту продукта. Это помогает фокусироваться на производстве нужных вещей, а не универсальной ерунды для блага человечества без грамма реальной пользы. Также важно иметь развитый интеллект, потому что софтверная индустрия весьма наукоемкая и команда из десяти умных людей имеет больше шансов на выпуск чего-то успешного, чем команда из 100 недалеких.

Что касается правильного выбора профессии, то на этот вопрос человек может ответить себе только спустя годы. Когда вам 20 лет, вам кажется, вы лучше всех и все у вас получится. Но в 40 уже понимаете, что если чего-то добились в своей профессии, значит когда-то давно вы все сделали правильно. Думаю, профессию нужно выбирать, опираясь на две вещи. Во-первых, нужно выбирать то, что тебе действительно интересно, что хочется делать даже не за деньги. Во-вторых, должно быть внутреннее убеждение, что конкретно эта работа действительно крутая. Этого достаточно, чтобы сфокусироваться, много работать, делать хорошие продукты.

Если говорить про возрастные ограничения, то их нет. Думаю, что после 70 уже поздно начинать. Раньше 70 — вполне. Но чем старше человек, тем труднее это сделать. Инженеры-программисты не художественные гимнасты или фигуристы, чья карьера начинается с 5 лет и заканчивается к 30. Требуется только хорошо работающая голова.

3. Слава богу, сейчас в российских технических вузах появляются факультеты, которые за рубежом называются computer science. Но хорошие программисты выходят также с физфаков, математических факультетов и т.д. Если говорить о российских вузах, то их достаточно много: МФТИ, Бауманка, МГУ, НГУ и т.д. За рубежом — Карнеги-Меллон, MIT, Стэнфорд. Любой университет из Лиги плюща готовит отличные кадры для софтверной индустрии.

Кстати, распространенное мнение о том, что невозможно попасть в ведущие европейские или американские вузы без денег или протекции родителей ошибочно. В США есть большое количество фондов, которые спонсируют талантливых студентов из-за рубежа для обучения в вузах по выбору. Чтобы попасть туда, требуется только трудолюбие при обучении в школе и желание попасть в программу. Мой младший брат при поддержке одного из таких фондов попал в Гарвард и получил степень PhD. Когда это все случилось, ни у меня, ни у наших родителей возможности помочь ему материально не было.

4. В любой профессии есть огромное количество своих секретов и особенностей, в производстве программного обеспечения в том числе. Их бессмысленно перечислять, потому что овладеть ими можно только с опытом. Поэтому очень важно первые 5-10 лет потратить не на попытку создать свой бизнес, а на получение опыта в хорошей, уже успешной компании. Те навыки, которые вы приобретете, в дальнейшем помогут вам выстроить успешную карьеру, либо серьезно увеличат шансы на успех при организации своего дела.

5. Конечно, можно. История знает примеры и в России, и за ее пределами. Но профильное образование сильно увеличивает шансы. Я думаю, минимум раз в 10.

6. Совершенно не важно, какие специалисты востребованы сейчас. Надо ориентироваться на то, что будет востребовано через 10 лет. Например, стоит обратить внимание на технологии облачных вычислений и мобильные разработки. Parallels — единственная компания в России, где можно получить опыт в области автоматизации хостинга и облачных вычислений. Опять же мы начали разработку совершенно нового для нас проекта, связанного с мобильными устройствами. С нашим бэкграундом, уверен, он громко прозвучит в мире в ближайшие год-два. Для него мы в данный момент активно собеседуем инженеров.

Языки программирования — это только инструментарий. На изучение каждого нового языка уходит не так много времени. Также как у полиглотов. Если человек хорошо знает один-два языка из каждой языковой группы (функциональной, процедурной, объектно-ориентированной и т.д.), то каждый последующий язык в этой группе для него не такая уж проблема. Реально появление нового языка ничего не меняет, они решают прикладную задачу, никаких революций тут нет. Поэтому важно смотреть на область IT, какая из них будет на коне. Если вы в принципе только начинаете и пока кроме желания и общевузовского образования у вас ничего нет, то можно пойти на кафедру или в учебный центр большой компании при вузе. Такие есть у нас, Acronis, Yandex, Kaspersky, IBS и других. Учебные лаборатории Parallels действуют в пяти ведущих вузах Москвы, Санкт-Петербурга и Новосибирска. За год-два там можно получить начальный опыт.

7. США — основной рынок труда для программистов, а также прекрасная возможность получить хороший опыт. Там много успешных компаний, где правильно выстроены процессы, есть люди, у которых можно научиться. Но туда тяжело попасть, нужны рабочие визы. И это обрубание корней, ведь не все готовы оставить родителей, друзей и прочее.

Если вы рассчитываете, что ни с того ни с сего эта страна поправит ваше положение и только отъезд изменит все к лучшему — это смешно. Чтоб быть там на уровне, надо много работать. А много работая, и в России можно добиться хороших результатов. Российские софтверные компании быстро учатся, быстро растут, и если это продолжится, мы будем очень хорошо смотреться на фоне США. Так что мой ответ таков: отъезд не для всех, найти интересную работу можно и здесь. И этой работы становится больше.

Ответы Ильи Сегаловича, директора по технологиям и разработке «Яндекса»



1. Хотя свое детство я провел в зале вычислительного центра, а первую программу написал, как положено матшкольнику, в 14 лет (это был 1978 год и программа была на Фортране), программистом быть абсолютно не мечтал. И даже тот факт, что невзрачный производственный роман «Программист» (кажется, это была «Роман-Газета»), попавший в мой прожорливый книгопищеварительный тракт в конце школы, не вызвал у меня никакого отторжения и прошел по разряду чуть ли не «Аэропорта» Хейли или даже «Инженеров» Гарина-Михайловского, не заставил меня как-то задуматься.

Я планировал заниматься «математикой», что бы это не значило. Однако превратности судьбы на то и превратности, так что математиком я так и не стал, зато из геофизика плавно трансформировался в программиста. Это случилось на последних курсах института и первых годах работы.

2. Программистов на свете так много, их уровень образования и воспитания так разнится и даже психофизические особенности настолько разнообразны, что искать некоторый набор качеств я бы не осмелился. Даже из людей с синдромом ADHD вырастают неслабые программисты, чего уж там.

3, 4.Программист в общем-то самообразовательная профессия, если человек знает или хорошо воспринимает математику. Однако сейчас уже есть специальные образовательные программы. Например, Школа анализа данных готовит специалистов в области обработки и анализа данных и извлечения информации из интернета — как для Яндекса, так и для IT-индустрии. Кроме того, хорошие, полные и сильные алгоритмические курсы открыты совместно Школой и некоторыми вузами в Москве и Санкт-Петербурге (мехмат МГУ, Физтех, Вышка, ПОМИ РАН).

Кроме того, сильные ребята выходят оттуда, где из программирования сделали спорт (ИТМО, Саратов, Петрозаводск и т.д.). Спорт — наше национальное все. Спортивное программирование оказалось хорошим стимулом для возрождения computer science, правда, в очень узко понимаемой форме — кнут+тренинги+контесты+победа. Но и это уже очень неплохо.

5. Да. Но делать из программирования занятие для всех — все-таки перебор. Гораздо важнее научить людей архитектуре окружающих нас устройств на понятийном уровне, на уровне пользователя. Например, архитектура Фон Неймана может быть объяснена непрограммисту так, что он поймет, от чего можно («исполняемый непроверенный код») и от чего нельзя (например, «читаемые данные, не содержащие кода») заразить свое устройство.

На мой взгляд, задача массового образования — борьба с технологическим мракобесием и технологическими суевериями. Заметьте, я не говорю о борьбе с неолуддитами, это другая история.

6. Очень востребованные программисты — программисты интерфейсов. Они делают то, что человек трогает руками. И их работа всегда будет востребована. Что касается тех заумных ребят, которые копаются в недрах данных, то им тоже есть применение. И чем больше данных накапливается на поверхности нашего шарика, тем больше им работы.

7.Это очень индивидуально.

Ответы Максима Ушакова, старшего программиста «Google Россия»



1. Как-то в детстве папа рассказал мне, как работает компьютер, лет в шесть или в семь. Мне так понравилось, что я до сих пор не могу остановиться. Путь, конечно, был долгим и интересным: я ходил на кружок по программированию в школе, учился в математическом классе, потом на Мехмате МГУ, читал разные книги и прочее... Но, пожалуй, самое главное то, что я очень много времени занимался самостоятельным программированием, изучением того, как что устроено и как работает.

2. Человек должен хотеть программировать и любить программировать. Ну и нужна какая-то точность мышления — математический склад ума, как говорят. Обычно это складывается в начальной школе, тогда уже людям становится понятно, что им нравится, а что нет. Ну а если ты со школы мечтаешь стать программистом, и вот им стал — как тут можно сомневаться, правильно ли выбрал профессию?

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

3. Удивительно, но большинство моих знакомых сильных программистов из России заканчивали мехмат МГУ или Физтех. Но это у меня просто знакомые такие, я и сам с мехмата. Поэтому же и заграничных людей не очень много знаю — понимаю, что отличные ученые есть в Стэнфорде, в MIT, в техническом университете Цюриха — да много где.

4. Учиться самому — учиться, учиться и учиться, читать статьи в интернете, говорить со знающими людьми, читать чужой код (это одно из главных, кстати!).

5. Да. Я знаю отличных программистов, которые по образованию физики, математики, химики, энергетики.

6. Сейчас быстро развиваются несколько интересных направлений: со стороны «массовых» продуктов — взаимодействие мобильных устройств и удаленных серверов, то есть всякие «облачные» вычисления, когда не надо заботиться о том, на каком компьютере лежит файл, который надо почитать, и есть ли сейчас у смартфона связь с сетью (в этом направлении много нового делается в Google). Со стороны более «научных» разработок — автоматическая обработка данных об окружающем мире: построение трехмерных моделей по фотографии, распознавание образов и прочее компьютерное зрение; автоматическое управление (машины без водителя и прочие роботы); сюда также относятся извлечение знаний из обычного текста и поисковые алгоритмы. Думаю, именно программисты, которые могут и хотят работать в этих передовых областях и буду получать самые хорошие зарплаты.

7. Важнее решить, где жить. Я из России работать не уезжал, но все места, где я работал, были интересные и хорошо оплачиваемые. За границей найти интересную работу с хорошей зарплатой не так просто (здесь все мои работы сами меня находили через знакомых, а там как?), но если ты хороший программист, то можно.

Ответы Алексея Тотмакова, руководителя группы разработки для Windows «Лаборатории Касперского»



1. В 1995 году вышла вторая часть компьютерной игры UFO. В ней нужно было управлять отрядом десантников. У десантников были параметры — сила и выносливость. Параметры сохранялись в файле. Разобравшись в формате файла, можно было существенно увеличить силу и выносливость десантников. Тогда у меня не было интернета, и пришлось во всем разбираться самому, в бинарном формате, hex-редакторе и т.д. Так я и вступил на путь становления программистом. А стал им много позже, прочитав много книг и написав множество программ.

2. Чтобы стать программистом, прежде всего необходим аналитический склад ума — нужно уметь понять, проанализировать, к чему приведет то или иное решение. То есть, еще ничего не сделав, нужно заранее узнать, чем все закончится. Конечно, при недостатке опыта во время анализа упускается множество факторов, и результаты анализа в конечном итоге сильно отличаются от реальности. Кроме этого, важна аккуратность (щепетильность), поскольку нельзя забывать о мелочах. Стремление докопаться до сути проблемы поможет становлению программиста. Способность широко посмотреть на проблему, сделать обобщение.

В разработке ПО, я думаю, как и везде, мерило одно: если получаешь удовольствие от работы – значит был сделан правильный выбор. Если этого нет, то, соответственно, выбор был неверный. Возрастных ограничений не существует. Вспоминаю случай, когда работал в одной IT-компании. Пришел на собеседование кандидат на вакансию с пустым резюме. Человеку было на тот момент 47 лет. Пообщались с ним и стало понятно, что вроде разбирается. Оказывается, до этого он был лесником на Алтае, уехал туда из НИИ в 1989 году, а в 2006 году вернулся назад. Ох, и много он нам потом интересных баек «травил» за чаем.

3. На мой взгляд, в любом российском техническом вузе могут подготовить программиста. Если человек смог разобраться в математическом анализе, функциональном анализе и теории управления, то справиться с алгоритмами и структурами данных ему тем более по силам. Говорить, что МГУ, МГТУ им.Баумана и МФТИ сильные технические вузы, я думаю, смысла нет, это и так все знают. При этом точно такие же вузы есть во всех крупных городах нашей страны. И именно из этих крупных городов к нам в «Лабораторию Касперского» и приходят люди.

4. Да, конечно, нужны. Увлеченному человеку всегда мало знаний. Получить их можно из книг, либо принимая участие в открытых проектах, и, конечно, придя к нам в «Лабораторию» на стажировку. Мне сложно представить увлеченного молодого человека, не выходящего за рамки стандартной программы.

5. Исключать такой возможности, конечно, нельзя. Но я таких людей пока не встречал. Бытует мнение среди молодых людей, что учеба в вузе — это потеря времени, и лучше прочитать книгу «с++ за 21 день». На мой взгляд, такое мнение ошибочно. Разумеется, в вузе не научат языку программирования или работе с какой-либо специфичной платформой, зато там помогут развить исследовательские и аналитические навыки. А это гораздо важнее, чем владение инструментарием, хотя без этих навыков ничего сделать тоже не получится.

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

7. Для разработчика интересной работы в России много. Найти ее не проблема. При этом по сравнению с другими профессиями уровень заработной платы в отрасли высокий. Уехать за границу, на мой взгляд, тоже никакой проблемы не составляет. С технической точки зрения, проще всего в США.

От редакции. Если вы хотите рассказать о том, как стали программистом, пожалуйста, напишите нам письмо через форму «Поделиться личным опытом» (находится вверху слева). Если вы хотите просто прокомментировать прочитанное, воспользуйтесь кнопкой «Добавить комментарий» (чуть ниже).