Правильная организация труда программистов — сооснователь и глава разработки Acronis рассказал о

Оглавление (нажмите, чтобы открыть):

Интервью с программистом, который работал в Acronis, Ренессанс и др. компаниях — Тарасовым Евгением — о том, чему и где учат программистов, чем они занимаются на работе и почему они выглядят немного странно.)

Интервью с программистом, который работал в Acronis, Ренессанс и др. компаниях — Тарасовым Евгением — о том, чему и где учат программистов, чем они занимаются на работе и почему они выглядят немного странно.)

Привет, Женя! Скажи, кем ты хотел стать в детстве? Чем нравилось заниматься?

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

Где ты родился?

Родился в Москве.

Сколько тебе лет сейчас?

Родители твои чем занимались?

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

А мама всю жизнь проработала в санэпидемстанции. Она – госслужащий.

А в школе чем нравилось заниматься? Какие предметы любили?

Больше всего нравились — физкультура, физика и математика.

Когда у тебя произошло знакомство с компьютерами первое?

Лет 10 наверное мне было. Мой отец и дядя принесли домой один из первых пентиумумов. Они пытались установить какие-то драйвера, писали в командной строке — это было жутко интересно, все равно что ступать на землю, на которой никто никогда не был.

Как выбирал высшее образование? Почему пошел на ВМиК?

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

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

Что тебе дало образование? Почему не жалеешь?

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

Когда ты решил выйти на работу? Куда? Зачем вообще решил начать работать?

Я начал работать, будучи еще студентом. На 2-ом или 3-ем курсе. Первые работы были такие смешные. Я набирался опыта и часто их менял. И это было нормально, потому что ты студент, зарабатываешь какую-то денежку, приобретаешь опыт и параллельно учишься. Спонтанно появлялись какие-то примитивные работы, связанные с программированием. Я бы не сказал, что в их выборе была какая-то логика.

А потом уже пошли серьезные работы. Если про серьезные работы говорить, эпохальные, это был Acronis, где я 2 года проработал. Это достаточно низкоуровневое программирование С++. Потом занимался алгоритмической торговлей, фондовыми биржами, как в крупных инвстбанках вроде Ренессанса, где куча всевозможных интеграционных проектов, решений было сделано, так и в частных проектах.

А в чем вообще суть программирования? Для чего оно используется?

Я сейчас попробую вкратце рассказать, что такое программирование.

Во-первых, надо понимать, что программирование бывает очень разным. Бывает программирование, когда пишут код, который отвечает за взаимодействие с пользователем. Называют «юзер интерфейсом». Бывают разные операционные системы, бывают разные языки программирования, бывают разные среды разработки, бывают разные библиотеки, бывают разные задачи. Поэтому программирование бывает очень разным. Поэтому всегда забавно, если, к примеру, приходишь в поликлинику, у какой-то тетечки что-то не работает,она спрашивает:

– А ты кем работаешь?

– А почини мне вот эту программу. (которую ты, естественно, первый раз в жизни видишь).

Все очень часто путают программиста с сисадмином, который обладает знанием, как работает программа. Естественно, если я займусь этим вопросом, то через 10–15 минут я ее изучу вдоль и поперек, дизассемблирую и решу любую задачу, но это работа не программиста, а системного администратора.

Что такое дизассемблирую?

Дизассемблирую – это двоичный код превращу во что-то читаемое, в чем можно понять логику того, как оно работает.

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

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

Что такое паттерны?

Паттерны – это шаблоны для решения стандартных задач.

Причем по мере развития программирования в целом набор паттернов постоянно увеличивается, появляются какие-то новые паттерны, новые подходы к решению тех же самых задач, более эффективные, более понятные, более наглядные. Их все время нужно изучать. Поэтому программирование — это непрерывное изучение. В программировании вообще не существует идеального кода , не существует конца и предела совершенству программисту. Программирование – это непрерывная учеба. Что-то из серии заветов Ильича: «Учиться, учиться и еще раз учиться!»

Сейчас популярны всякие методологии, типа Agile. Суть в том, что любая разработка ведется итерационно — все делится на маленькие циклы. И чем у тебя короче цикл, тем круче. Допустим, ты делаешь что-то одно очень большое. Ты берешь и ставишь для себя маленькую цель и пытаешься ее достичь гораздо быстрее. Если ты ее быстро достиг, ты двигаешься дальше. Ты имеешь контроль над тем, что происходит.

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

А как вообще и кто создает программный продукт?

Допустим, у вас есть задача, которую вы хотите решить. Пускай даже маленькая. Представим, что процесс идеальный. В таком случае для начала Вам нужно собрать требования, понять что мы вообще хотим. Эта роль в бизнес-аналитика. Потом вам нужно продумать, как это будет работать. Задуматься об архитектуре, о проектировании конструкции. Это то, что должен делать в идеале архитектор. Потом вы должны заняться планированием работы. Это то, что должен делать проджект-менеджер. Потом начинается реализация, т.е. программирование. Программисты пишут код, переодически реф ачат (улучшают, упрощают, изменяют) его, создают автоматические тесты.

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

Далее — стадия вывода кода в продакшн, в идеале это должен делать саппорт или люди, которых называют модным словом DevOps. Потом начинаетсят стадия пост-продакшен, когда какие-то багги (ошибки) нужно заметить, саппорт должен собрать все эти бесконечные замечания пользователей и девелоперы должны их пофиксить (исправить). Есть куча способов улучшить конечный результат этой операции или всего операционного цикла. Все эти этапы важны и нужны. Зачастую какими-то из них жертвуют. Иногда можно вообще не собирать требования, вообще ничего не планировать, можно не рефачить код, можно не тестировать. Порой даже нужно пренебрегать какими-то этапами и это разумно. Но все это влияет на конечное качество.

Сейчас наблюдается тенденция, что больше функций перепадает на девелоперов. Становится популярно такое слово, как DevOps. Часть функций саппорта переходит к самим разработчикам. Теперь весь енвайромент (среда в которой всё крутиться) — это тоже код. Очень популярно стало юнитестирование, когда программы пишутся и автоматически сами тестируются. Чтобы люди после каждого изменения не прокликивали весь «флоу» заново. Это именно такой подход, когда все бьется на маленькие кусочки, а кусочки ты можешь автоматически протестировать. А если ты их потом собрал, как конструктор, они скорее всего будут работать правильно. Хотя это тоже надо проверять и это тоже можно автоматизировать и называется это словом интеграционное тестирование. И в принципе это хорошо, потому что ручное тестирование это круто, но все равно, особенно если схема системы очень большая, просто невозможно каждый раз прокликивать все заново руками. Возьму на себя смелость и утверждаю, что во всей этой пищевой цепочке ключевое звено занимает именно разработчик. Я видел кучу проектов, в которых не было архитекторов, в которых не было бизнес-аналитиков, в которых не было проджект-менеджеров, в которых не было тестировщиков, в которых не было саппорта. Но я не видел ни одного проекта, где бы не было разработчика. Потому что зачастую именно он выполняет все эти функции и по сути он ключевая персона.

Хотя, безусловно, все эти остальные функции очень важны, и очень круто, когда есть люди, которые умеют клево их выполнять. Когда есть бизнес-аналитики, которые грамотно собирают полные, непротиворечивые, атомарные требования. Когда есть хорошие проджект-менеджеры, которые способны объяснить заказчикам временные сроки, решить все эти бесконечные проблемы и способны снять с команды, которая занимается имплементацией бремя. Так чтобы на голову вся эта лапша не сыпалась в виде бесконечных звонков и вопросов «когда». Очень клево, когда есть тестеры, которые могут клево протестировать, заметить любые баги, которые могут даже автоматизировать отчасти свое тестирование и т.д.

Как сегодня проходит твой рабочий день?

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

В реальности ты просто уходишь в себя и 80% времени думаешь. А когда созрел, то начинаешь писать код. И когда ты его пишешь, пишешь, пишешь, в результате что-то получается. Периодически ты разговариваешь с людьми, с заказчиками, выясняешь требования и так далее. Если говорить про разработку, особенно про командную, как правило, бывают митинги. В случае Agile — они бывают ежедневно.

Какие конкретно задачи Вы решаете? Можете привести пример?

Задачи бывают очень разные. Например, задача алгоритмического характера — есть человек или ресурс, и вы можете у них спросить по какому-то протоколу: «Вась, ты знаешь Петю?». Он тебе может ответить да или нет. Вот есть какой-то набор таких людей, которые стоят вокруг вас. Вам нужно за наименьшее количество операций, вопросов, узнать, кто из этих людей так называемая звезда? То есть, такой человек, которого знает больше людей, чем остальных? Это прикладная задача. Потому что реально порой нужно найти именно оптимальный способ. Если говорить про какие-нибудь карты — то оптимальный маршрут от точки А до точки В.

Если говорить про последнюю задачу, которую я решал, буквально, сегодня, это: у вас есть 2 кучи, вам нужно переложить кирпичи. Причем вы можете перекладывать кирпичи только целиком. Но при этом вам нужно соблюсти пропорцию. Одни кирпичи, допустим, красные вы складываете на левую часть борта, синие – на правую часть борта. Если вы чуть-чуть кирпичей больше переложите, пропорцию не соблюдете, корабль перевесит и все утонет. Соответственно, вам нужно переносить кирпичи, но при этом вы не можете их на части бить, вы не можете ломать кирпичи.

Прикол не в том, что вы каждый раз не знаете, как это сделать. Прикол в том, что когда вы делаете несколько итераций, вам нужно сохранять состояние, знать, что вы делали до этого. Но если у вас одно из требований – это состояние, то есть помнить количество итераций вы не можете, вы только знаете, сколько у вас осталось кирпичей и сколько вы уже отгрузили на этот корабль. И знаете вот эту пропорцию. В принципе, достаточно простая математическая задача, кроме пропорции и округления, особо функций никаких и нет. Но, как ни странно, она не такая простая, как может показаться. Даже приходится писать юнитесты, чтобы самого себя проверить, что бы не ошибся. В моем случае проблематика — это финансы. Кирпичи — это просто лоты на фондовой бирже, ведь нельзя купить дробное количество бумаг на рынке. А почему нужно соблюдать пропорции? Ну потому что это тупо риски. Чтобы у вас позиция была сбалансирована.

Другой пример задачи — нужно нарисовать пользовательский интерфейс, вывести что-то в Excel, на форму, или на веб-страничку. Это простая прикладная задача. Это не алгоритмика. Но при этом тоже нужно знать инструментарий, нужно знать, как это правильно сделать. Нужно знать, в какой среде это делать. Нужно знать язык программирования. Это такая классическая рутинная работа. Но это тоже часть профессии.

Какими качествами должен облазать человек, чтобы хотя бы претендовать на то, чтобы стать программистом?

Во-первых, он должен быть умным. Логический склад ума должен присутствовать.

Второе качество — это упорство, терпение. Потому что программирование это постоянная учеба. У тебя что-то не получается, ты должен ни смотря ни на что сделать это.

Зачем человеку так сильно напрягаться, учиться? Что такого хорошего в этой профессии?

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

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

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

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

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

Ну и наконец, важно, что ты можешь видеть результат своей работы. Ты что-то сделал и действительно видишь,что получилось.

А что сложного есть? Что-то еще может сложное в работе, с чем не каждый справится?

Основная сложность, что заказчики, которые что-то просят, очень часто не понимают, не представляют, как это сделать, чего это стоит. Они 150 раз поменяют свои желания.

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

Как ты любишь отдыхать?

Люблю свою семью, друзей. Люблю добрые теплые компании.

Люблю активный отдых. Хотя бы съездить в лес, искупаться где-то с семьей и с друзьями. Раньше ходил в горы. Сейчас, к сожалению, времени не хватает, да и возможностей мало. Часто играю в футбол в любительской лиге.

А читать что-то успеваешь? Смотреть?

Книги люблю научно-популярные, допустим, по физике. Люблю всех популяризаторов этой науки — того же самого Хокинга. Да, многие научно-популярные книги, на самом деле во многом псевдонаучные. Но хотя бы они дают возможность прикоснуться к этому миру физики.

Если про фильмы, то то же самое. Научно-популярное кино или фантастическое кино, которое основано на какой-то научной проблеме. Фильмы, которые сводили меня с ума, это «Терминатор». В свое время это было круто, потому что тогда первые компьютеры только появлялись. Люди думали: «Искусственный интеллект. Скоро нас роботы поработят». Реально было круто. Сейчас это уже бесконечные повторы тех серий, кажутся просто смешными. Еще спорт люблю смотреть — какой-нибудь хороший футбол. Комедии люблю, страшилки. Мне после них хорошо становится. К примеру, люблю смотреть «Криминальную Россию» про маньяков. Меня вообще никто не понимает. Но это реально такая особенность психики человеческой, когда ты смотришь страшилки, себя угнетаешь, потом наступает хороший период.

Чтобы ты посоветовал людям, которые еще ищут свое призвание?

Не надо питать иллюзию, что ты выбрал профессию, которая тебе нравится, и после ты кайфуешь и все будет идеально и гладко. Да нифига. В любой профессии, в любой работе есть рутина. Не важно, актер ты, программист, хирург, нефтяник, дворник. Везде есть рутина. Поэтому все сказки про то, что «найди себя и все будет как по маслу, жизнь наладится и все будет круто» – это все фигня. Просто реально кому-то что-то подходит больше, кому-то что-то подходит меньше.

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

6 ключевых ролей в команде разработки программного обеспечения

22 Сентября, 2020

Имидж профессионалов IT сферы в массовой культуре кардинально изменился за последние годы. Абсурдные стереотипы ушли в прошлое, а программисты стали настоящей элитой 2010-х.

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

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

Наша команда включает в себя профессионалов с различными ролями, которые работают для получения лучшего решения, удовлетворяющего целям и требованиям клиента.

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

Бизнес-аналитик вовлечен в проект с первой стадии, сразу после заключения сделки, а иногда даже до нее. Главная обязанность бизнес-аналитика заключается в коммуникации как с клиентом, так и с командой разработчиков.

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

Но между целями клиента и функциями приложения лежит целая пропасть. Следовательно, бизнес-аналитик (сокращенно БA) должен точно определить, что хочет заказчик и что ему нужно.

БA собирает требования клиента к желаемому продукту, анализирует то, как он должен выглядеть и какие функции нужно включить в разработку, а также зачем и как это должно быть сделано.

Бизнес-аналитик также проводит исследование конкурентов вместе со специалистами в области маркетинга для обеспечения устойчивости продукта на рынке и его конкурентоспособности с уже существующими продуктами.

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

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

Когда требования клиента определены и правильно интерпретированы, в процесс разработки подключается менеджер проекта (сокращенно PM). Его основная задача заключается в управлении проектом, как следует из названия профессии.

Чтобы точнее объяснить роль PM, давайте рассмотрим его основные задачи. Как и бизнес-аналитик, менеджер проекта также может быть включен в коммуникацию с клиентом, однако главной задачей PM является работа непосредственно с командой разработчиков программного обеспечения.

Менеджер проекта распределяет задачи между ними, планирует ход работы, мотивирует команду, контролирует процесс и координирует общие действия. Также он несет ответственность за тайм-менеджмент, управление рисками и действия в случае непредвиденных ситуаций.

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

Это тот человек, от которого идет большая часть креативности в проекте. Главная ответственность UI/UX дизайнера заключается в создании приятного интерфейса и отличного пользовательского опыта.

Дизайнер использует вайрфреймы, созданные клиентом или бизнес-аналитиком, чтобы “нарисовать” мокапы и создать дизайн интерфейса мобильного приложения (UI) согласно действующим гайдлайнам и трендам. Он также планирует пользовательский опыт, который сделает продукт удобным для использования.

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

Клиенту удобно видеть модель приложения, а программистам прототип просто необходим, чтобы написать код. Это как дизайн-проект комнаты для профессионалов, которые будут её декорировать — необходимо видеть, что должно получиться в результате работы. Наши дизайнеры в Smartum Pro также предоставляют графические элементы для магазинов приложений, мокапы и логотипы.

Это ядро команды, люди со специфической областью экспертизы. Программисты — это словно переводчики, которые переводят язык человека и язык графики в язык цифровых технологий, которые понятны компьютерам и устройствам, что позволяет выполнять то, что хочет клиент.

Существуют различные уровни в команде разработчиков программного обеспечения, включающие junior, middle и senior уровни, которые зависят от опыта работы и уровня экспертизы.

Программисты также имеют различные области экспертизы, они пишут на различных языках и работают с различными платформами. Поэтому и существует такое “разнообразие” разработчиков, вовлеченных в один проект. Например, стандартный проект разработки мобильного приложения требует участия как минимум Android, iOS и backend-разработчиков.

QA (Quality Assurance) специалисты необходимы для каждого процесса разработки и обеспечения высокого качества продукта. Они тестируют его, проходят через все приложение и определяют баги и ошибки с последующим предоставлением отчета команде разработки, которая проводит их исправление.

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

Специалист по маркетингу

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

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

Специалисты по маркетингу также отвечают за анализ статистики приложени, его дальнейшее развитие и улучшение (подразумевая анализ реакции пользователей, определение функций и того, что нужно сделать в следующей версии)и пр.

Суммируя все вышесказанное, стоит отметить то, что команда разработки программного обеспечения — это не только программисты.

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

Формирование команды программистов и создание схемы мотивации сотрудников в компании, специализирующейся на разработке ПО

Морозов М.С.
Выпускник группы MBA CIO-24
Школа IT-менеджмента
РАНХиГС при Президенте РФ

Оглавление

Введение
1. Теоретические основы формирования команды и разработки системы мотивации коллектива программистов
1.1. Теоретические основы формирования команды
1.2. Теоретические аспекты мотивации персонала
2. Исследование методов формирования Команды и методов мотивации
2.1. Исследование факторов, влияющих на создание команды.
2.2. Исследование методов мотивации работников
Заключение
Список литературы

Введение

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

Особое место в IT – проектах занимает Интернет. Появление интернета повлияло на работу отдельных компаний в России, на развитие некоторых отраслей и экономику в целом.

Интернет позволяет малым и средним предприятиям повысит доходы за счет следующих факторов:

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

Таким образом, эффективная разработка и внедрение информационных систем необходимо для успешной работы предприятий малого и среднего бизнеса.

С другой стороны, проекты для малого и среднего бизнеса обладают рядом специфичных черт. Наиболее яркие из них, это сжатые сроки разработки и запуска проекта, небольшие бюджеты, изменчивые требования к конечному результату. Учитывая данную специфику IT – проектов, оптимальной организационной структурой, согласно исследованию [1], является команда. Поэтому, вопросы формирования проектной команды, являются крайне важными и для достижения положительного результата им необходимо уделять большое внимание.
Вторым важным моментом при реализации инновационных проектов является система мотивации сотрудников. Поскольку именно мотивация побуждает конкретного индивида и коллектив в целом к достижению личных и коллективных целей.

Обычно вопросы мотивации и вопросы образования команды рассматриваются отдельно. Но практика показывает, что в команды программистов, участвующих в инновационных IT – проектах, подбираются люди вполне определенного типа (темперамента, характера), для которых необходимы вполне определенные типы мотивации.
Целью работы являются:

  • Определение, требуется ли для коллектива программистов, участвующего в создании инновационного IT – проекта, использование особенных подходов в выборе программы мотивации и командообразования;
  • Определение шагов для формирования команды программистов и выбора модели мотивации.

Объектом исследования выступает коллектив программистов участвующих в создании инновационного IT – продукта.

Теоретические основы формирования команды и разработки системы мотивации коллектива программистов

Теоретические основы формирования команды

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

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

Для организаций с органической структурой характерны следующие признаки:

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

Жизненный цикл команды

Подобно любым социальным группам, команды развиваются и обладают жизненным циклом. Но в дополнение к нему у команды как самоуправляющегося объекта возникает фаза перехода. Это момент признания коллективом неэффективности одних форм и методов совместной работы и переход к другим, более эффективным. Благодаря синергическому эффекту и нацеленности на развитие команда легче проходит жизненный цикл, чем любая другая группа.

Этапы жизненного цикла команды: притирка, ближний бой, согласие и гармония, зрелость команды, разрушение команды.
Для эффективной командной работы необходимо выполнение определенных условий:

  • Поддерживающее окружение. Формирование внешней среды, поддерживающей создание команд. Данное условие предполагает, что создатель команд оказывает всемерную помощь рабочим группам в формулировании общих целей, выделяет необходимое для совместной работы время и верит в способности членов групп;
  • Квалификация и четкое осознание выполняемых ролей. Члены команды должны иметь необходимую для выполнения задач квалификацию и желание совместно участвовать в процессе труда. Командная работа предполагает, что каждый из них четко осознает роли всех членов группы;
  • Миссия команды. Каждая команда должна иметь миссию (сверхзадачу), которая объединяет усилия сотрудников и может быть реализована только в том случае, когда свою «ношу» несут и группа, и руководство организации;
  • Командной вознаграждение. Материальное и моральное вознаграждение, которое должно иметь ценность для членов группы, восприниматься как заслуженное и побуждать их к выполнению общих задач.
Мастер Йода рекомендует:  Найдите самую большую сумму непрерывной последовательности из массива целых чисел, как

ФОРМИРОВАНИЕ СОСТАВА КОМАНДЫ

Состав команды подбирается с учетом трех признаков:

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

Теоретические аспекты мотивации персонала

Исходной точкой рассмотрения мотивации служит категория потребностей. Потребность — это нужда в чем-то, объективно необходимом для поддержания жизнедеятельности и развития организма, личности и социальной группы. Потребностей человека может быть бесконечное множество.

Потребности можно классифицировать как первичные и вторичные.

Первичные – по своей природе физиологические и врожденные потребности в пище, воде, воздухе, сне.

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

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

К регуляторам мотивации относятся:

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

К главным мотиваторам относятся:

  • личное развитие (ответственность, экспериментирование, новый опыт, возможности для обучения, обратная связь);
  • чувство причастности (доступ к информации, консультации, совместное принятие решений, эффективные коммуникации, возможность представлять компанию);
  • интерес и вызов (интересные проекты, развивающий опыт, возрастающая ответственность, перспективные цели, продвижение к цели).

Факторы этих групп должны быть сбалансированы, тогда возникает удовлетворенность работой и преданность организации.

Исследование методов формирования Команды и методов мотивации

Исследование факторов, влияющих на создание команды

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

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

Разные исследователи, приводят разные наборы факторов, влияющих на процесс формирования сплоченной команды.
По классификации кандидата психологических наук Бориса Михайловича Мастерова, на формирование сплоченной команды влияют следующие факторы:

  • Менеджерский стиль или темперамент;
  • Миссия и ценности;
  • Видение поля и потоки информации;
  • Процедуры и ритуалы;
  • Функции, позиции, эмоции.

Так же существует еще несколько наборов групп факторов, которые по мнению некоторых исследователей влюяют на процесс формирования команды:
Набор факторов 1

  • хорошие коммуникации внутри;
  • члены команды выражают желание работать вместе;
  • развитие межличностных навыков у членов команды.

Набор факторов 2

  • воспитание ответственности за результаты, когда задача воспринимается, как своя собственная
  • воспитание духа предпринимательства
  • отсутствие межфункциональных конфликтов между подразделениями
  • отсутствие недопонимания между менеджментом и сотрудниками
  • естественная лояльность компании
  • естественная исполнительность
  • хорошие коммуникации внутри
  • ориентация на достижения лучших результатов

Другие специалисты считают, что существует еще и группа ситуационных факторов, влияющих на развитие команды и ее сплоченность:

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

Таким образом, среди представленных групп факторов, влияющих на создание команды, можно выделить общие факторы:

  • Команда имеет ясное понимание миссии и все члены команды разделяют общие ценности;
  • Команда имеет небольшой размер, 5 – 7 человек, максимум 10 человек;
  • Между членами команды налажены хорошие коммуникации;
  • Члены команды выражают желание работать вместе;
  • Члены команды развивают навыки общения.

Можно сделать вывод, что при формировании команды, на эти факторы в первую очередь следует обращать внимание.

Механизмы и подходы создания успешной команды
Команда разработки инновационных IT — проектов попадает под общие принципы формирования команд, поддается влиянию тех же факторов, что и команды другого назначения. Не являются исключением подходы и механизмы создания команды. Специалисты выделяют общие подходы и механизмы успешного развития для различного рода команд:

  • Создание общего представления;
  • Установление общих целей;
  • Разъяснение ролей и обязанностей;
  • Обеспечение поддержки руководства;
  • Выполнение специальных упражнений;
  • Создание плана действий;
  • Построение команды, как в офисе, так и в неформально обстановке;
  • Работа по построению команды должна проводиться регулярно;
  • Веселье.

Приведенные механизмы создания успешной команды действительно могут оказаться эффективными при ее развитии. Но не следует ограничиваться только определенным количеством этих механизмов, они должны постоянно развиваться и совершенствоваться. Доказано на опыте, что неформальное общение сближает сотрудников лучше, чем любые другие способы. Кроме того, выявляются личности, «не совместимые» с остальными. Т.о. среди приведенных выше механизмов, на сплоченность в большей степени влияет веселье, т.е. проведение различных совместных мероприятий и корпоративных вечеринок.

Один из самых именитых американских менеджеров Джек Уэлш утверждает, чтобы сделать каждого игроком успешной команды необходимо применять определенные подходы при формировании и развитии команды:

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

Проанализировав приведенные подходы, можно лишний раз убедиться в том, что нет определенного необходимого количества этих подходов. Чем их больше – тем это лучше для руководителей или менеджеров. Но нельзя допускать того, чтобы подходы или механизмы переплетались между собой, т.е. дублировались, это может негативно сказаться на команде. Например, если «налегать» на подход «расставаться с теми, кто не хочет играть в команде», то не из кого будет создавать команду, и тут необходимо применение уже другого подхода, например, различного рода тренингов, которые помогут «заставить» играть в команде.

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

Исследование методов мотивации работников

В настоящее время существует несколько десятков теорий мотивации. Подробный анализ основных теорий мотивации приведен в [2].

Наиболее известной теорией является иерархия потребностей А. Маслоу [18]. Он выдвинул гипотезу, что потребности человека объединены в пять групп и образуют иерархическую структуру, которую можно представить в виде пирамиды. В основании пирамиды лежат первичные потребности человека, на высших уровнях, вторичные потребности.

Кроме модели А. Маслоу, на сегодняшний день разработано большое количество моделей мотивации. Наиболее известные них:

  • Модель Врума
  • Модель Макклеланда – Аткинсона
  • Теория справедливости Адамса
  • Двухфакторная модель Герцберга.
  • Комплексная модель Портера – Лоулера

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

Исследования мотивации представителями школы Выготского [12] базировались на утверждении о том, что в психике человека существуют два параллельных уровня развития – низший и высший, которые и определяют параллельное развитие высших и низших потребностей человека. Кроме того, механизмы удовлетворения этих потребностей также параллельны. Это означает, что удовлетворение потребностей одного уровня с помощью средств другого невозможно. Таким образом, необходимо уделить достаточное внимание нематериальному стимулированию труда с целью удовлетворения высших потребностей человека. А уровень заработной платы в то же время должен удовлетворять низшие потребности.

В работах Выготского определено два важных положения:

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

Именно эта модель мотивации представляется автору данной работы наиболее полно отвечающей потребностям мотивации сотрудников в инновационном проекте.

Заключение

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

При создании команды, для решения задачи создания инновационного IT – продукта необходимо учитывать специфику создания подобных продуктов и подбирать соответствующие программы мотивации. По результатам исследований, определено, что наиболее подходящей, является программа параллельной мотивации, основанная на работах Л.С. Выготского.

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

Список литературы

    • Г. Минцберг. М62 Структура в кулаке: создание эффективной организации / Пер. с англ. под ред. Ю. Н. Каптуревского. – СПб.: Питер, 2004. – 512 с.
    • Кочеткова А.И. Введение в организационное поведение и организационное моделирование: Учеб. пособие. -М: Дело, 2003. – 944с
    • Мескон М.Х., Альберт М., Хедоури Ф. Основы менеджмента. 3-е изд.– М.: ООО «И.Д.Вильямс», 2009. – 672с.
    • Долгова И.В., Зуев Ю.П., Малышев А.А. Введение в психологию внешней торговли. – 2-е изд. – М.:ВАВТ, 2008. – 490с.
    • Егоршин А.П. Мотивация трудовой деятельности. Н.Новгород: НИМБ,2003. — 320с.
    • Генкин Б.М. Экономика и социология труда: Учебник для ВУЗов. — М.:издательская группа НОРМА-ИНФРА, 1999. — 384 с.
    • Мескон М.Х., Альберт М., Хедоури Ф. Основы менеджмента /Пер. с англ.- М.: Дело, 2000. — 700 с.
    • Друкер П. Как выйти в лидеры. М., 1992.
    • Мильор Г. Как эффективно управлять. М., 1992.
    • Паркинсон С.Н., Рустомджи М.К. Искусство управления. СПб., Лениздат, 1992.
    • Кокно П.А., Микрюев В.А., Комаров С.Е. Управление стимулированием. М., 1993.
    • Выготский Л.С. Собрание сочинений. М., 1984.
    • Деслер Г. Управление персоналом. М., 1997.
    • Грейсон Дж., Оделл К. Американский менеджмент на пороге XXI века. М., 1991.
    • Чернышев В.Н., Двинин А.П. Человек и персонал в управлении. СПб., 1997.
    • Виханский О.С., Наумов А.И. Менеджмент: человек, стратегия, организация, процесс: Учебник. М., 1995.
    • Ладейзек К. Стиль работы и образ жизни руководителя: проблемы, рекомендации. М., 1998.
    • Маслоу А.Г. Мотивация и личность. Евразия, 2001.

Как организовать работу удаленных программистов?

Добрый день. Появилась необходимость в расширении отдела разработки в нашей компании и для этого хотим попробовать удаленное сотрудничество с программистами. Занимаемся разработкой средних / крупных сайтов. Работаем в основном на PHP (Yii2, Laravel) и все сопутствующие технологии.

Собственно вопросы:
— Возможно ли найти ответственных и самостоятельных людей?
— Каким образом следует контролировать сотрудников? Если ли смысл использовать тайм-трекеры на ПК работников?
— Как начислять ЗП? Использовать фикс. ЗП / оплачивать позадачно / почасово?
— Где находить соискателей? Фриланс сайты / доски объявлений (hh.ru и т.п.)?
— Сколько в среднем платить удаленному PHP-программсту средней квалификации (junior / middle)?

Спасибо за внимание!

  • Вопрос задан более трёх лет назад
  • 4914 просмотров

— Возможно ли найти ответственных и самостоятельных людей?

— Каким образом следует контролировать сотрудников?

Если ли смысл использовать тайм-трекеры на ПК работников?

— Как начислять ЗП? Использовать фикс. ЗП / оплачивать позадачно / почасово?

— Сколько в среднем платить удаленному PHP-программсту средней квалификации (junior / middle)?

Из личного опыта — много работал сам удаленно, сам нанимал людей. Больше всего понравилось как работают американцы.
1. Все проекты на github либо bitbucket. Баг трекер там же
2. Каждой задаче дается оценка и за оплачивается только оценка. Т.е. ты сказал, что сделаешь за 4 часа — заплатят только за 4-ре часа и не кого не волнует сколько ты провозился.
3. Задачи дробят до самого маленького уровня. По каждой задаче все обсуждения через коменты к задаче. Никакого скайпа.
4. Каждый час-два пинг «как дела? на каком этапе?». Пропал больше чем на 2 дня — уволен.

Итого:
— Возможно ли найти ответственных и самостоятельных людей?
да
— Каким образом следует контролировать сотрудников?
Регулярно пингуй. Требуй решения задач в срок. Если пропал больше чем на два дня — проще избавиться и найти нового (я так за одним долго бегал). Лог задачи веди в коментах к этой задаче.
Если ли смысл использовать тайм-трекеры на ПК работников?
бессмысленно
— Как начислять ЗП? Использовать фикс. ЗП / оплачивать позадачно / почасово?
Давай оценить задачу, сам прикинь сколько в часах ее делать. Договоритесь, что на эту задачу столько-то часов. Плати только за часы. Ты не крупная компания, которая может оплачивать перекуры и болтовню за кофе.
— Сколько в среднем платить удаленному PHP-программсту средней квалификации (junior / middle)?
Есть знакомый — очень хороший PHP-девелопер (больше 5 лет стажа только удаленной работы) — берет от 750р за час. Посмотри по фриланс площадкам — сколько ребята просят за час.

Любимые вопросы российских топ-менеджеров на собеседованиях

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

На фото — Станислав Протасов, сооснователь и глава разработки Acronis

Евгений Давыдович, президент ритейлера «Связной«:

«Умение задавать правильные вопросы есть уже важный и необходимый признак ума и проницательности», — говорил известный философ Иммануил Кант. Поэтому я часто на собеседованиях применяю такой прием: предлагаю кандидату самому проинтервьюировать меня – и как руководителя компании, и как его будущего менеджера. Это зачастую дает больше знаний о собеседнике, чем в ситуации, когда вопросы задаю я сам. Я таким образом понимаю, насколько он уже погрузился в специфику бизнеса, отследил последние действия компании на рынке, собрал инсайты. По качеству вопросов всегда можно судить о склонности анализировать. Более того, время на собеседовании всегда ограничено, поэтому слушая вопросы кандидата, я заодно понимаю, как он расставляет приоритеты. Иногда я ограничиваю собеседника количеством вопросов, которые он может задать – например, не более 5 – и по тому, какие он выбирает, сужу о его таланте в сжатые сроки выявлять ключевые факты и моменты».

Виталий Быков, директор по развитию, соучредитель Red Keds:

«Любимых вопросов нет – для каждой специальности я стараюсь находить особые вопросы, которые должны мне раскрыть человека. Например, про smm-специалиста мне очень важно знать, насколько человек любит организацию мероприятий. Это может характеризовать его, как понимающего механики взаимодействия с людьми. Если я собеседую копирайтера, то мне интересно знать, какие области он изучал или каким опытом владеет. Это мне говорит об эрудиции, умении учиться и докапываться до сути вещей. Ведь копирайтеры у нас каждый день сталкиваются с абсолютно разными вещами, о которых нужно писать тексты.

У меня есть пара общих вопросов, которые я задаю на собеседовании. 1. Есть ли у тебя мечта? Я задаю этот вопрос не для того, чтобы выбить человека из колеи, а для того, чтобы послушать, как человек размышляет о своей мечте. Очень многих этот вопрос ставит в ступор. Я бы и сам не смог на него уверенно ответить. Но очень интересно, что мне попадаются люди с действительно интересными мечтами. Например, недавно на собеседовании один человек мне признался, что он хочет сделать деревню для домашних животных. Это фантастическая и интересная мечта. Мало кто может так сформулировать свою мечту. 2. Иногда я задаю загадки на собеседованиях. Это могут быть простые загадки – просто чтобы понять, как человек размышляет. Например, придумайте за минуту пять способов нетрадиционного применения карандаша. Одна девочка, наш бывший копирайтер, сказала, что надо разломать карандаш, растолочь грифель и сделать себе полосы на лице, как у Рембо».

Станислав Протасов, сооснователь и глава разработки Acronis:

«У меня нет каких-то специальных любимых вопросов: кандидаты к нам приходят неодинаковые, и собеседования могут проходить по-разному — все зависит от конкретного человека, его поведения и множества других факторов. Но обычно я пытаюсь понять, насколько человек способен логически мыслить, и поэтому предлагаю ему вопросы на логику. Например, я могу задать простую на первый взгляд задачку вроде такой: есть монеты, одна из которых фальшивая и отличается от остальных лишь по массе, необходимо за минимальное количество взвешиваний на чашечных весах обнаружить фальшивую. Могу и более сложную задачу предложить, например, про два яйца и стоэтажный небоскреб — необходимо за минимальное количество попыток рассчитать, после какого этажа яйцо начинает разбиваться. Но вне зависимости от сложности для меня важен даже не правильный ответ, а подход кандидата к их решению, его логика. Это главное».

Ирина Шашкина, генеральный директор LinguaLeo в России и СНГ:

«Я иногда спрашиваю, что именно человек будет делать, если уже завтра он выходит на нашу позицию. Не про планы, задачи — тут все умеют отвечать правильными словами, а вот именно про первый рабочий день, чтобы отвлечь. Интересно слушать, как человек в голове строит себе границы возможностей и ответственности, насколько глобально и стратегически смотрит на задачи. Кто-то рассказывает, что принтер настроит и визитки закажет, а кто-то попросит рассказать ему стратегию компании и сформулировать KPI на 3 месяца.

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

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

Яков Зубарев, президент и сооснователь Parallels:

«Я часто интервьюирую высокопоставленных людей маркетингового профиля для Parallels и других компаний. И неизменно задаю один и тот же вопрос: предлагаю человеку представить, что он уже подписал контракт на должность директора по маркетингу и распоряжается бюджетом $30 млн. Спрашиваю, на что он их потратит? А дальше смотрю на реакцию. Зачастую сразу обнаруживаются слабые места. Допустим, топ-менеджер, привыкший работать только в Штатах, забывает про остальной мир, про то, что задача глобального продвижения охватывает Европу, Азию, Россию. Или выходец из PR-агентства, который бросается тратить почти все деньги на работу с журналистами, социальные медиа. А как же реклама, продуктовый маркетинг? Словом, полезное упражнение».

Сергей Абдульманов, директор по маркетингу компании «Мосигра«:

«Мы оцениваем не ответы на вопросы, а просто человека. Борисов (Дмитрий Борисов – коммерческий директор «Мосигры» — ред.), например, спрашивает: «Как дела? » — и смотрит на реакцию будущего продавца. Если человек напрягается, в магазине ему тоже будет сложно говорить с незнакомцами. Если нормально позитивно включается в дискуссию — свой, можно обсуждать дальше. Все «сложные вопросы», которые принято задавать на собеседованиях, мы искренне считаем синтетической глупостью. Они непоказательны и служат разве что для того, чтобы прикрыть задницу того, кто ведёт собеседование. Ну, я не говорю про профессиональных психологов, а про обычные квесты «пройди долбанашку».

Денис Матеев, глава представительства ESET в России и СНГ:

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

Самые важные вопросы с моей стороны связаны с системой ценностей кандидата, его взглядами на жизнь и карьеру и с его хобби. Среди типичных и любимых вопросов: «Какие качества вы цените в людях или хотели бы видеть в будущих коллегах?», «Что вы любите, а что не выносите?», «Каковы ваши основные недостатки и как вы с ними боретесь?».

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Как становятся программистами? 12 интервью с экспертами.

Как стать веб-разработчиком? Как научиться программировать? Как найти работу программистом? Нужно ли для этого высшее образование? Долго ли нужно учиться, чтобы начать зарабатывать на разработке?

Этими вопросами задаётся, наверное, каждый, кто думает о карьере программиста. Основываясь на собственном опыте, я сделал всё возможное, чтобы ответить на большую часть этих вопросов, написав Самообразование веб-разработчика. Но моё мнение касательно самообразования и способов обучения – это лишь мнение одного человека (хотя я, безусловно, не сомневаюсь в его правильности 🙂 ).

Поэтому мне пришла в голову идея: взять 12 программистов, в профессионализме которых нет повода сомневаться и спросить у них, как они начали свой путь, как они научились тому, что знают сейчас, и как дошли до оплачиваемой работы. Ниже вас ждут 12 историй становления профи, людей, с опытом работы превышающим количество пальцев на одной руке (с некоторыми оговорками). Надеюсь, вы сможете извлечь из этих историй правильные выводы (спойлер: самообразование рулит) и найти пару-тройку подходящих вам советов.

Программисты

Максим Кремнев, Software Developer, Aviasales

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Возможность зарабатывать деньги, делая то что тебе нравится

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

18-19-20 лет. Работал в это время системным администратором, паралелльно увлекался всякими интересными вещами вроде gentoo, bash, python, django (первое что вспомнил). Как-то на одном локальном джоб борде наткнулся на вакансию руби программиста от @ipronix, решил, стоит попробовать и может им питонисты тоже нужны. Но оказалось не нужны, а вот рубисты, даже джуниоры (я тогда этого слова не знал), да, нужны. Ну а что. предложили деньги, причем больше чем я получал системным администратором и решил совмещать офлайн и онлайн работу.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Через 1 месяц. Все @ipronix

С чего стоит начинать новичку?

С How To или Get started

Чего тебе не хватало в начале твоего пути?
Какие нибудь книги, сайты, которые можешь посоветовать?
Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

golang, python, chef, различные db

Павел Хрулёв, Ruby on Rails разработчик, фрилансер на odesk, elance.

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

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

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Когда начал увлекаться программированием — написал небольшую игру. Возникла необходимость сделать для неё сайт. Так я сделал первый сайт на html. Потом меня попросили сделать сайт за деньги другие люди, а впоследствии я устроился на работу веб-разработчиком. Было это где-то в конце 2007, начале 2008.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Первые деньги — месяца через 4 после того, как сделал первый сайт на html для своих нужд. Заказ получил просто – о моих талантах рассказали, и заказчик сам меня нашёл.

С чего стоит начинать новичку?

Со страсти и жажды новых знаний и умений. Изучать что-то, разрабатывать что-то для себя, для удовольствия, используя полученные знания.

Чего тебе не хватало в начале твоего пути?

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

Какие нибудь книги, сайты, которые можешь посоветовать?

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

  • Для изучения и улучшения английского — книги «English for Russians» и сайт lingualeo.com
  • О новых технологиях, тенденциях и т.д можно узнать с habrahabr.ru
  • Решения проблем — stackoverflow.com
  • Практические навыки кодинга по современным технологиям и в веселом формате можно получить на codeschool.com
Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Сейчас изучаю Cordova и Rhodes framework, т.е. мобильную разработку, совмещенную с веб-технологиями.

О новинках и тенденциях узнаю на хабре. Если что-то заинтересовало, начинаю копать глубже, читать книги на эту тему, статьи на сайтах.

О каких-то подходах, практиках разработки узнаю из блогов разработчиков, на которых я подписывался. Как правило, это какие-то не последние люди в популярных open-source проектах.

И постоянно работаю над улучшением грамматики английского, увеличением словарного запаса, избавлением от акцента. Помогает в этом, как я уже писал, книги «English for Russians», сайт lingualeo.com и практика общения с заказчиками.

Варвара, Ruby и node.js разработчик, Social Quantum

Сколько лет в веб-деве?

С вебом как таковым не очень близко знакома, вообще – лет 6.

Почему выбрала программирование и веб-разработку?

Училась в профильном ВУЗе, получалось и было интересно.

Какими путями училась этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Сразу после института попала в контору, которая выиграла тендер на проект по информатизации Санкт-Петербурга – кабинки госуслуг. Проработала там года полтора, на flex интерфейсы к этим кабинкам писала, поиск по БД адресов и все такое.

Спустя какое время после начала изучения получила первые деньги за веб-разработку? Как получила первый заказ?

Я не фрилансила никогда, все время в офисе.

С чего стоит начинать новичку?

С выбора хорошей компании и коллектива, который за полгода научит новичка не наступать на стандартные для новичков грабли ) Привьет хороший кодстайл и прочие полезные штуки в духе тестирования и профайлинга своего кода.

Чего тебе не хватало в начале твоего пути?

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

Какие нибудь книги, сайты, которые можешь посоветовать?

Надо что-то узнать – гуглю. В первую очередь, конечно, доки читать.

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Даниил, программист, Social Quantum

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

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

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

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

7 лет ZX Spectrum на день рождения, BASIC. Подростком — FIDONET, Си, немного паскаля. Юность – Linux, Python. Молодость – веб-девелопмент, Python, JS, Pylons, Zope, чуть-чуть Django. Ближайшие годы – Python, JavaScript, AS3, C#, Haxe, node.js, Flash, Unity3D.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Около 20 лет просто выложил резюме и начал работать, в офисе, веб-разработчиком на Python.

С чего стоит начинать новичку?

С постигания прицнипа – «пиши как можно меньше кода, но не меньше чем необходимо”

Чего тебе не хватало в начале твоего пути?

Общения с гиками.

Какие нибудь книги, сайты, которые можешь посоветовать?

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

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Михаил, тимлид, Social Quantum

Сколько лет в веб-деве?

Конкретно вебом занимался лет 5.

Почему выбрал программирование и веб-разработку?

Программирование – т.к. с детства было интересно. Веб – легкий порог вхождения: по знаниям (куча мануалов), по практике (чтобы начать, нужен только браузер и блокнот, ну и пейнт, не нужно тянуть по диал-апу никаких тяжелых ide и проч) и по заработку (free-lance.ru, внезапно есть люди которые готовы платить за то, чему я научился из интереса)

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Средняя школа, каникулы, 486й, мать притащила диск с обучающими видео по visual basic, где показывали, как делать настоящие программы с окошками и проч. Компилятора на диске не было. Неделю истекал слюной. Потом надыбал компилятор и начал все пробовать.

Где-то позже выпросил книжку по основам html, стал эксперементировать и пилить домашнюю страничку на народе –тогда это было модно.

А так же – кружок по лого, курсы по паскалю, курсы по php, паскаль и си на информатике в старшей школе, чтение xakep.ru, увлечение вирусами и ассемблером, флеш. Если честно, не помню, когда именно все началось.

Как-то отец рассказал такую историю из моего дошкольного детства: он снес на своем компе винду, и там был голый DOS. Приходит вечером с работы и видит что я шпилю в игрушки. На вопрос «как» получил ответ, что я набрал подсмотренные команды «cd nc», «nc», а дальше «открылось синенькое», то бишь нортон коммандер, в котором я уже вполне ориентировался (:

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Первый заказ нашел на фрилансе где-то во времена старшей школы. Не помню уже что именно – возможно флеш-баннер, возможно доработка верстки. Я тогда, понятное дело, не был уверен в своих силах, и поэтому в основном ошивался во всяких конкурсах и работал в основном ради портфолио а не ради денег. По совету Лебедева, вычитанному в ководстве, клепал работы для вымышленных заказчиков, чтобы заполнить портфолио и показать, что я могу.

С чего стоит начинать новичку?
  • научиться пользоваться гуглом
  • нагуглить тутор типа «введение в html»
  • школьный курс физики
  • электротехника
  • цифровая схемотехника
  • основы информатики
  • программирование микроконтроллеров
  • ассемблер
  • структурное программирование, C, массивы, указатели, динамические структуры данных, работа с сетью, etc
  • объектно-ориентированное программирование, C++
  • операционные системы
  • whatever you like
Чего тебе не хватало в начале твоего пути?
Какие нибудь книги, сайты, которые можешь посоветовать?
Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Из интересных моментов – практически не читаю цельных книжек по технологиям. Ибо:

  1. устаревшие знания
  2. однобокий взгляд
  3. сомнительная компетенция автора
  4. много букв
Мастер Йода рекомендует:  Подборка книг для изучения Linux

Вместо этого, когда сталкиваюсь с какой-то технологией, первым делом ищу офсайт, какой-нибудь getting started guide, доки по апи, примеры. Если идет туго, то в гугл по конкретным вопросам (чаще всего попадаю на stackoverflow), если совсем туго – то в тематическое сообщество, чтобы задать вопрос (это крайняя мера, т.к. очень напрягает дожидаться пока тебе ответят).

Конкретно сейчас эксперементирую с common node (обертка вокруг node.js, которая реализует соглашения CommonJS и работает через fibers) и mongodb. Ну и по работе приходится изучать рельсы.

Роман Колеснев, Fullstack Rails developer; Social Quantum

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Написал программу, отдебажил, тесты наваял, все прошло и потом встаешь во весь рост и тычешь в нее пальцем со словами «теперь я твой бог!”.

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Программировать по мелочи я начал еще в начальной школе, поэтому информация о том, как я начинал не поможет начать другим. Я вообще не до конца понимал во что ввязываюсь, глупец. Но, in suma, могу сказать следующее: самообразование здесь все, но на первых этапах очень полезны хорошая книга или видеоуроки да старший товарищ по цеху, который в правильное русло мысль направит.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Освоение веба было прерывистым и непостоянным, но после того, как сконцентрировался на rails прошло полгода до получения зарплаты в 30к со свободным графиком и совмещением с учебой на 3-м курсе МФТИ. До концентрации на rails был довольно большой опыт в программировании, базовое понимание JS, CSS, HTML и немного PHP (на PHP в сумме писал 40-50 человекочасов где-то, не больше)

С чего стоит начинать новичку?
Чего тебе не хватало в начале твоего пути?
Какие нибудь книги, сайты, которые можешь посоветовать?
Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Scala, Play framework, Unity 3D, в скором будущем Swift

Сергей Резванов, ruby-разработчик, IkitLab

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Компьютерными технологиями начал интересоваться еще в школе, чувствовал во всем этом что-то необъяснимое и притягивающее, такой своеобразный симбиоз машины и человека. В наше время компьютер без человека – простая железка, но и человек не в силах уже прожить без компьютера. А вместе, образуют тандем, где каждый занимает нужное ему место. Для меня разработка и вообще программирование ничем не отличаются, например, от исскуства, т.е. художник с мольбертом, музыкант с инструментом – это равносильные образы креативной личности, точно такой же как и разработчик с его знаниями и умениями.

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Путь программиста начался у меня, когда я устроился oracle-разработчиком в компанию CompassPlus в моем городе (с вебом эта работа не была связана), где оставил 5 лет моей жизни и профессиональной деятельности.

В последний год работы я заинтересовался веб-разработкой и сопуствующими технологиями. Все это сыграло злую шутку – уже невыносимо было работать в ComplassPlus, где технологический стэк был родом из 90-ых. Тогда я решил найти параллельно удаленную команду, с которой смогу развивать свои скиллы как веб-разработчик. Так попал в Secoint, тверская компания, разрабатывающая интернет-магазины на Spee. Какое-то время я работал на двух работах – днем в CompassPlus, сидя в офисе, а вечером удаленно в Secoint.

Через несколько месяцев стало чертовски трудно совмещать две работы (у меня тогда уже была семья), тогда я оформился как ИП и уволился из CompassPlus. И полностью погрузился в веб-разработку и изучение технологий, продолжая сотрудничать с компанией Secoint.

С тех пор я сменил уже несколько компаний, но остался неизменен веб-разработке и работаю исключительно удаленно.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

После пары месяцев изучения. Обратился в компанию веб-разрботчиков на ruby и предложил свои услуги удаленно. C той стороны пришел ответ «Да».

С чего стоит начинать новичку?

Хорошенько подумать, нужно ли тебе это все. Если да, то писать код, читать чужой и снова писать код.

Чего тебе не хватало в начале твоего пути?

Общения с такими же как я. К сожалению, я до сих пор не знаю ниодного ruby/rails разработчика из моего города. Все профессионалы, которых я знаю, виртуальные, я не встречался с ними лично.

Какие нибудь книги, сайты, которые можешь посоветовать?

Мой любимый книжный магазин – PragProg. Я частенько покупаю там книги связанные с веб-разработкой (чаще электронные версии). Чего-то конкретного нет, все интересно.

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

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Последние месяцы я работаю над очень крупным проектом мобильной аналитики — https://inside.ly. И могу сказать только одно: данные правят миром, а за теми, кто умеет эти данные собирать и анализировать – будущее. Поэтому data science это наше все…

Константин, тех. лид в одном из стартапов Санкт-Петербурга

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Всегда увлекали компьютеры и интернет.

Какими путями учился этому мастерству?

Университет, самообразование, работа с ментором

Расскажи подробнее о начале своего пути: как, когда, что?

Начал с самообучения и программирования на Delphi, Pascal, C++. Потом увлекся Unix системами и программированием на Perl. Из него постепенно перешел в вэб-разработку и остановился на Ruby (ну и JavaScript, разумеется). Пробовал Python (Django), но душа к нему не легла.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Первый полноценный заказ получил на фрилансе. Делал небольший сайтик на Perl. Сложно сказать, сколько времени я на том момент я потратил на обучение. Пожалуй, это было самое начало «пути”.

С чего стоит начинать новичку?

С азов и алгоритмов. Книжки, скринкасты, побольше практики.

Чего тебе не хватало в начале твоего пути?

Грамотного наставника, который бы рассказывал мне как и чего надо делать. Ну и как не надо делать тоже 🙂

Какие нибудь книги, сайты, которые можешь посоветовать?

Чем больше читаешь – тем лучше. Мне лично очень понравилась «Design Patterns in Ruby» (для рубистов) и «Искусство алгоритмизации» (простым языком показаны несложные, но популярные алгоритмы).

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Везде по чуть-чуть. Планирую серьезней заняться Clojure и побаловаться со Swift 🙂

Корнеев Евгений, тимлид, SmartSpace

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Потому что мне нравится создавать вещи, которые потом будут использовать люди.

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Я увлекся программированием еще лет в 12, причем тогда у меня даже компьютера не было. Лет в 14 я уже вовсю кодил простые программы под винду на C++ и Delphi, лет в 16 – компьютерные игры 🙂

Потом был год застоя в университете, где я развлекал себя только лишь варкрафтом и написанием курсовых для старших ребят. Поняв, что ничего полезного в вузе я не получаю, ушел оттуда и пошел работать. В 17-18 лет меня не хотели брать программистом, поэтому я пошел продавать диски в магазин компьютерных игр. Через полгода директора посадили меня настраивать и конфигурировать 1С в головной фирме. Еще через год, когда мой мозг начал засыхать от 1С, я ушел во фриланс и занялся разработкой сайтов. Сначала интернет-магазины на php-движках, а потом, через некоторое время, заинтересовался крутыми фреймворками и выбрал руби и рельсы.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

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

С чего стоит начинать новичку?

Во-первых, с изучения английского 🙂 Во-вторых, с каких-то базовых вещей – HTML, CSS. Можно попробовать зайти с другой стороны и сначала просто научиться программировать – выучить паскаль, бэйсик или что-нибудь еще. Хорошего программиста отличает умение мыслить алгоритмами. Это путь долгий, но качественный.

Чего тебе не хватало в начале твоего пути?
Какие нибудь книги, сайты, которые можешь посоветовать?

Cамое крутое, что я видел про веб-разработку: https://www.railstutorial.org/book. Из общеразвивающих – «Совершенный код” Макконнелла.

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Сейчас пробую разное: от разработки под ios до игровых движков. Если про веб: постоянно смотрю и, по мере надобности, изучаю новые веяния и технологии, но ничего конкретного.

В целом стараюсь не зацикливаться на вебе, но и щупать новые сферы.

Антон Черепанов, web-разработчик в Evrone, ментор mkdev.me

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Исторически сложилось, играл в wow, а потом захотел свой сервер ну и естественно сайт.

Какими путями учился этому мастерству?

Самообразование, работа с ментором.

Расскажи подробнее о начале своего пути: как, когда, что?

По молодости, очень любил играть в WoW, потом мне стало скучно и я подумал, а что если создать свой сервер? Тут то и закрутилось всё, сначало просто скачивал сайтики и ставил, потом начал из одного в другой html копировать, потом css.

Далее, я познакомился с mangos и trinity — это open source движки wow, написанные на C++. Было очень тяжко в них копаться, не понимая особо что и как, но компилировать и накатывать патчи, я научился определённо 🙂 Далее, я узнал что за это можно получать деньги и продолжил обучаться, но только веб разработке, потому что это показалось более приятным для души, нежели возиться с C++.

Потом поступил в колледж по профессии «Программное обеспечение вычислительной техники и автоматизированных систем”, он дал хорошую базу в алгоритмизации и базах. Год на php и затем прекрасный мир ruby.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Не скоро, долго не знал что за это можно получать деньги вообще, может спустя года два)

С чего стоит начинать новичку?

С поиска ментора и чтения руководств.

Чего тебе не хватало в начале твоего пути?
Какие нибудь книги, сайты, которые можешь посоветовать?
Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Мы активно игрофицируем процесс нашей работы, используя Track2Win.

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

Из технологий: AngularJS, Go

Кирилл Ширинкин, консультант, ментор.

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Непреодолимая тяга делать веб-приложения. 37signals и другие вдохновляли.

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

В какой-то момент, в возрасте между 13 и 14 годами отец предложил мне делать сайты. Я потыкал в Dreamweaver, посмотрел CSS и забил на всё это дело на какое-то время. А потом, в 15 лет, вдруг решил, что я всё таки хочу делать сайты. Начал учить HTML, CSS, немного JS. Спустя ещё какое-то время формулировка изменилась на “хочу делать крутые веб-приложения”. Услышал о тогда ещё новых и модных Rails на хабре. Решил не слушать советов знакомых программистов, которые рекомендовали мне PHP и Java. Начал учить Rails и написал на нём пару приложений для себя. Одним из них пользуюсь всё ещё и каждый день. Спустя примерно год после начала изучения Rails судьба свела с Димой Васильцом, @pronix, который стал моим ментором и работодателем на следующие полтора года.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Точно не помню время, помню что мне было 16, а значит не больше года мытарств с html и css. Мне нужно было сделать с нуля вёрстку для https://digitalshop.ru. Тогда сайт был свёрстан таблицами, а один товарищ, работающий там веб-программистом, предложил мне переверстать всё на блоки. Тогда я познал муки вёрстки под IE6, счастье, которого лишены современные веб-разработчики 🙂

С чего стоит начинать новичку?

С Самообразования веб-разработчика. Это написанное мной бесплатное руководство для всех, кто не знает откуда начать и куда двигаться. По сути, это 60-ти страничный ответ на вопрос “С чего стоит начать новичку” 😉

Самое важное: найти свою мотивацию и не растерять её. И держать фокус на цели. Это универсальный совет, который подходит для любой ситуации, его легко дать и ему очень тяжело следовать 🙂

Чего тебе не хватало в начале твоего пути?

Никогда не устану твердить, что для успеха в сфере веб-разработки нужны две вещи: желание постоянно заниматься самообразованием и крутой ментор. Мне невероятно повезло: на протяжении всей моей карьеры у меня были потрясающие наставники, которым я буду обязан всю жизнь. Один из них, Евгений Янусов, помог мне получить самые первые знания в веб-разработке (html, css и т.п.). Другой, Дима Василец, не просто научил меня работать, но ещё и сыграл решающую роль в переезде в Берлин 🙂

Какие нибудь книги, сайты, которые можешь посоветовать?

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

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Chef (и DevOps в целом), AngularJS, всякие умные книжки, нацеленные на углубление знаний по тем сферам, где я уже преуспел. Ещё я усердно учусь грамотнее писать. Например, мне почему-то с большим трудом даётся написание «чтобы» слитно 🙂

Дмитрий Василец, консультант

Сколько лет в веб-деве?
Почему выбрал программирование и веб-разработку?

Никогда не был сфокусирован на вебе. Просто решаю задачки максимально просто и быстро.

Какими путями учился этому мастерству?
Расскажи подробнее о начале своего пути: как, когда, что?

Учился в универе в году 2007.

Была в студенческой общаге своя шарашка по раздаче интернета и подработке на этом.

Проект был крайне успешным – больше 100 клиентов и стабильная прибыль.

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

В итоге проект работал без меня, и каждый месяц я был обеспечен.

Жаль продолжалось счастье всего годик.

До этого на рубях писал системные скрипты и тесты для оборудования.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Сразу. Бесплатно работать грех. Взял задачу на фриланс бирже, честно написал ,что сделаю дешево, но долго. А потом аппетит рос пропорционально загруженности задачами.

С чего стоит начинать новичку?

Стоит начать делать. Закрывать тикеты. Парсить файлики. Часы на js. Если ни чего не сделав , задает вопросы – значит пора бросать.

Чего тебе не хватало в начале твоего пути?

Всего было в избытке. Жизнь прекрасна всегда.

Какие нибудь книги, сайты, которые можешь посоветовать?

Библию, Литвака, Булгакова, Золотого Теленка.

Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

Data science , management , finance, математика, химия.

На этом всё. Внимательный читатель заметит во всех интервью один и тот же паттерн:

  • Все начинали со страсти делать что-то, будь то игры или веб-приложения. Программирование зачастую, таким образом, является не самоцелью, а инструментом, мастерством, которым нужно овладеть для достижения своих целей. Что не отменяет любви к этому мастерству 😉
  • Все без исключения активно занимались самообразованием, а для большинства это был единственный способ обучения
  • Наличие наставника, ментора является значительным преимуществом и помогло многим (если не большинству) достичь успеха.

Мы поможем выбрать ментора, определить цель обучения, составим индивидуальную программу и сделаем из тебя программиста Выбрать ментора

Профи, прочитавшие эту статью – делитесь своими историями в комментариях, вдохновляйте тех, кто только вступил на пройденный вами пути и помогите им не сбиться с него.

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

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

Правильная организация труда программистов — сооснователь и глава разработки Acronis рассказал о том, как это устроено у них и дал советы начинающим командам

Рассказывают: президент ритейлера «Связной», генеральный директор LinguaLeo в России и СНГ, сооснователь и глава разработки Acronis, директор по развитию и соучредитель Red Keds, президент и сооснователь Parallels, глава представительства ESET в России и СНГ, директор по маркетингу компании «Мосигра».

Евгений Давыдович, президент ритейлера «Связной»:

Умение задавать правильные вопросы есть уже важный и необходимый признак ума и проницательности», — говорил Кант. Поэтому я часто на собеседованиях применяю такой прием: предлагаю кандидату самому проинтервьюировать меня – и как руководителя компании, и как его будущего менеджера. Это зачастую дает больше знаний о собеседнике, чем в ситуации, когда вопросы задаю я сам. Я таким образом понимаю, насколько он уже погрузился в специфику бизнеса, отследил последние действия компании на рынке, собрал инсайты.

По качеству вопросов всегда можно судить о склонности анализировать. Более того, время на собеседовании всегда ограничено, поэтому слушая вопросы кандидата, я заодно понимаю, как он расставляет приоритеты.
Иногда я ограничиваю собеседника количеством вопросов, которые он может задать – например, не более 5 – и по тому, какие он выбирает, сужу о его таланте в сжатые сроки выявлять ключевые факты и моменты.

Ирина Шашкина, генеральный директор LinguaLeo в России и СНГ: Я иногда спрашиваю, что именно человек будет делать, если уже завтра он выходит на нашу позицию. Не про планы, задачи вообще, а вот именно про первый рабочий день, чтобы отвлечь. Интересно слушать, как человек в голове строит себе границы возможностей и ответственности, насколько глобально и стратегически смотрит на задачи. Кто-то рассказывает, что принтер настроит и визитки закажет, а кто-то попросит рассказать ему стратегию компании и сформулировать KPI на 3 месяца.

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

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

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

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

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

Виталий Быков, директор по развитию, соучредитель Red Keds: Любимых вопросов нет – для каждой специальности я стараюсь находить особые вопросы, которые должны мне раскрыть человека. Например, про smm-специалиста мне очень важно знать, насколько человек любит организацию мероприятий. Это может характеризовать его, как понимающего механики взаимодействия с людьми. Если я собеседую копирайтера, то мне интересно знать, какие области он изучал или каким опытом владеет. Это мне говорит об эрудиции, умении учиться и докапываться до сути вещей. Ведь копирайтеры у нас каждый день сталкиваются с абсолютно разными вещами, о которых нужно писать тексты.

У меня есть пара общих вопросов, которые я задаю на собеседовании. 1. Есть ли у тебя мечта? Я задаю этот вопрос не для того, чтобы выбить человека из колеи, а для того, чтобы послушать, как человек размышляет о своей мечте. Очень многих этот вопрос ставит в ступор. Я бы и сам не смог на него уверенно ответить. Но очень интересно, что мне попадаются люди с действительно интересными мечтами. Например, недавно на собеседовании один человек мне признался, что он хочет сделать деревню для домашних животных. Это фантастическая и интересная мечта. Мало кто может так сформулировать свою мечту.

2. Иногда я задаю загадки на собеседованиях. Это могут быть простые загадки – просто чтобы понять, как человек размышляет. Например, придумайте за минуту пять способов нетрадиционного применения карандаша. Одна девочка, наш бывший копирайтер, сказала, что надо разломать карандаш, растолочь грифель и сделать себе полосы на лице, как у Рембо».

Яков Зубарев, президент и сооснователь Parallels: Я часто интервьюирую высокопоставленных людей для Parallels и других компаний. И неизменно интересуюсь вот чем: предлагаю человеку представить, что он уже подписал контракт на должность директора по маркетингу и распоряжается бюджетом $30 млн. Спрашиваю, на что он их потратит? А дальше смотрю на реакцию. Зачастую сразу обнаруживаются слабые места.

Допустим, топ-менеджер, привыкший работать только в Штатах, забывает про остальной мир, про то, что задача глобального продвижения охватывает Европу, Азию, Россию. Или выходец из PR-агентства, который бросается тратить почти все деньги на работу с журналистами, социальные медиа. А как же реклама, продуктовый маркетинг? Словом, полезное упражнение.

Денис Матеев, глава представительства ESET в России и СНГ: У нас сравнительно небольшой штат в российском представительстве, поэтому я стараюсь находить время для встречи со всеми кандидатами – от руководителей департаментов до ассистентов отдела. Так как мы принимаем в команду новых людей в расчете на то, что они с нами всерьез и надолго, важно оценить, сможет ли человек влиться в коллектив. В ходе встречи я стараюсь понять, разделяет ли кандидат наши корпоративные ценности, какие у него планы и перспективы и сочетаются ли они с развитием компании.

Самые важные вопросы с моей стороны связаны с системой ценностей кандидата, его взглядами на жизнь и карьеру и с его хобби. Среди типичных и любимых вопросов: «Какие качества вы цените в людях или хотели бы видеть в будущих коллегах?», «Что вы любите, а что не выносите?», «Каковы ваши основные недостатки и как вы с ними боретесь?».

Сергей Абдульманов, директор по маркетингу компании «Мосигра»: Мы оцениваем не ответы на вопросы, а просто человека. Борисов, наш коммерческий директор, например, спрашивает: «Как дела? » — и смотрит на реакцию будущего продавца. Если человек напрягается, в магазине ему тоже будет сложно говорить с незнакомцами. Если нормально позитивно включается в дискуссию — свой, можно обсуждать дальше.

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

Исследование The Boston Consulting Group охватило 91 страну с разными доходами на душу населения и основано на анализе нескольких источников: тестов PISA, данных ЮНЕСКО, Всемирного банка и др. Оно обнаружило серьезные пробелы в знаниях и навыках старшеклассников.

Российские дети, как и во многих других странах, не получают того образования, которое позволит им преуспеть в будущем, предупреждают исследователи. На развитие soft skills, или гибких навыков, решающее влияние оказывают школа и университет. И конкуренцию на период 2020-х гг. по этим показателям мы уже проигрываем. Исследователи выделили * 16 видов знаний и навыков, помогающих сделать карьеру в XXI веке .

Сооснователь Acronis рассказал о будущем квантовых технологий в РФ

МОСКВА, 21 сен – РИА Новости. Сооснователь компании Acronis Станислав Протасов рассказал РИА «Новости» о квантовых и криптографических планах международной ИТ-компании, представил свои прогнозы по развитию квантовых технологий в России и рассказал о том, как криптовалюта и связанные с ней технологии займут свое место в нашей жизни в ближайшие годы.

Станислав Протасов – один из самых успешных отечественных IT-бизнесменов. В 2003 году совместно с партнерами-выпускниками Московского Физтеха он основал компанию Acronis, являющуюся сегодня одним из лидеров в области разработки технологий резервного копирования и облачного хранения данных. Кроме того, он является одним из сооснователей компании Parallels, мирового лидера в области виртуализации компьютерных систем.

Сегодня Протасов и ряд других известных лидеров в IT-индустрии России, а также десятки ученых-мегагрантников и специалисты в разных областях науки и техники примут участие в работе сессии «Квантовые технологии: трансфер фундаментальной науки на рынок» в рамках форума «Наука будущего», который проходит в Казани с 20 по 23 сентября. В преддверии этого мы задали Станиславу несколько вопросов

— Недавно вы объявляли о том, что Acronis начала сотрудничество с компанией Ethereum, занимающейся продвижением криптовалюты ethereum (эфир). Почему и зачем Acronis занимается криптовалютами, и почему вы выбрали именно эфир, а не биткоины или другие варианты?

— На самом деле, мы, естественно, не занимаемся криптовалютами – нас интересует не криптовалюта сама по себе, а блокчейн как технология. И наш первый проект подобного рода, который мы уже частично анонсировали в этом году, – это так называемый Acronis Notary.

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

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

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

— Депутаты и чиновники часто говорят о том, что биткоины, ethereum и прочие криптовалюты необходимо запретить, так как они бьют по национальной безопасности страны и ведут к распространению нелегальных рынков в Интернете. Насколько высоко вы оцениваете риски, которые несет за собой использование этих валют и блокчейна?

— Я смотрю на это просто: с моей точки зрения, блокчейн запретить нельзя в принципе. Можно запретить биткоины, их покупку, хранение и использование, однако саму технологию невозможно уничтожить. К примеру, в советское время хождение доллара по территории страны было запрещено, но, тем не менее, само понятие денег этот запрет никак не отменил. Аналогичным образом технологию запретить нельзя, и, самое главное, непонятно, зачем это делать.

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

— В этом году вы говорили о возможности использования квантовых криптографических технологий в работе Acronis. Что именно и как вы планируете использовать?

— С одной стороны, мы сегодня только начинаем активно говорить о квантовых технологиях, а с другой стороны – уже сейчас есть приборы, которые позволяют создавать защищенные каналы связи. Если говорить коротко, то попытка «прослушать» ваши данные превратит передаваемый сигнал в «мусор», что позволит обнаружить сам факт прослушки и избежать потери конфиденциальной информации.

Такие технологии сегодня есть уже у наших партнеров, швейцарской компании ID Quantique, такие же наработки и устройства есть у китайцев, а также такие устройства будет делать один из стартапов Российского квантового центра, с которым мы планируем начать сотрудничество в ближайшее время. Планируется, что их разработка будет готова к опытной эксплуатации к 2020 году.

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

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

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

Кроме того, определенный интерес для нас представляет и разработка алгоритмов шифрования, которые были бы стойкими к расшифровке квантовыми компьютерами. У нас есть набор алгоритмов, и мы попытаемся с учеными из Университета «Иннополис» сделать их рабочую версию и оценить, действительно ли они будут криптостойкими в постквантовом мире в будущем.

Мастер Йода рекомендует:  Тестирование сайта

— Рынок IT-технологий и науки, как вы часто отмечаете, является глобальным. Насколько вообще наши ученые и инженеры смогут конкурировать с зарубежными коллегами в области квантовых технологий?

— На самом деле, у нас нет проблем с наукой в этой области – найти человека с русской фамилией за рубежом, который бы занимался передовыми квантовыми исследованиям, очень легко, и они очень охотно сотрудничают с РКЦ, университетами и российскими компаниями. Поэтому с точки зрения научных исследований Россия, как я считаю, вполне конкурентоспособна.

Но, с другой стороны, превращение этих исследований в действительно стоящие продукты – это намного сложнее. Тут дело не только в том, что это фундаментальная наука, но и в том, что квантовая физика и технологии «взрывают мозг» – сложно понять, как это все работает.

Перевод всех этих открытий в реальные технологии – пока дорогое удовольствие. Если, скажем, Google может себе купить квантовый компьютер за 11 миллионов долларов, и на Западе он такой не один, то в России компаний, которые могут совершать такие инвестиции в будущее, не так много. Конечно, мы можем здесь сыграть свою роль, так как, помимо всех этих устройств, есть еще и теоретическая и софтверная часть, но ожидать того, что мы здесь всех обгоним и победим, пока мне кажется слегка наивным.

— Учитывая этот высокий порог вхождения, находят ли ваши проекты или проекты российских ученых в этих областях поддержку со стороны государства?

— Конечно, государство тем или иным образом помогает нашим ученым. А нам оно и не должно напрямую помогать. С другой стороны, есть гранты, которые создает Министерство образования. Вполне возможно, что мы попытаемся воспользоваться таким грантом, когда нам станет ясно, что можно и нужно сделать. Пока мы недалеко ушли от уровня дискуссий – пока есть только понимание, что этим надо заниматься, но реальных результатов пока нет. Когда они появятся, можно будет идти и просить деньги.

Инструкция для тех, кто хочет стать программистом с нуля

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

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

С чего начать

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

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли — разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.

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

Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.

Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.

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

Четвёртый вариант получения опыта — помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

PHP — ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.

Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

Интервью с программистом, который работал в Acronis, Ренессанс и др. компаниях — Тарасовым Евгением — о том, чему и где учат программистов, чем они занимаются на работе и почему они выглядят немного странно.)

Интервью с программистом, который работал в Acronis, Ренессанс и др. компаниях — Тарасовым Евгением — о том, чему и где учат программистов, чем они занимаются на работе и почему они выглядят немного странно.)

Привет, Женя! Скажи, кем ты хотел стать в детстве? Чем нравилось заниматься?

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

Где ты родился?

Родился в Москве.

Сколько тебе лет сейчас?

Родители твои чем занимались?

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

А мама всю жизнь проработала в санэпидемстанции. Она – госслужащий.

А в школе чем нравилось заниматься? Какие предметы любили?

Больше всего нравились — физкультура, физика и математика.

Когда у тебя произошло знакомство с компьютерами первое?

Лет 10 наверное мне было. Мой отец и дядя принесли домой один из первых пентиумумов. Они пытались установить какие-то драйвера, писали в командной строке — это было жутко интересно, все равно что ступать на землю, на которой никто никогда не был.

Как выбирал высшее образование? Почему пошел на ВМиК?

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

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

Что тебе дало образование? Почему не жалеешь?

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

Когда ты решил выйти на работу? Куда? Зачем вообще решил начать работать?

Я начал работать, будучи еще студентом. На 2-ом или 3-ем курсе. Первые работы были такие смешные. Я набирался опыта и часто их менял. И это было нормально, потому что ты студент, зарабатываешь какую-то денежку, приобретаешь опыт и параллельно учишься. Спонтанно появлялись какие-то примитивные работы, связанные с программированием. Я бы не сказал, что в их выборе была какая-то логика.

А потом уже пошли серьезные работы. Если про серьезные работы говорить, эпохальные, это был Acronis, где я 2 года проработал. Это достаточно низкоуровневое программирование С++. Потом занимался алгоритмической торговлей, фондовыми биржами, как в крупных инвстбанках вроде Ренессанса, где куча всевозможных интеграционных проектов, решений было сделано, так и в частных проектах.

А в чем вообще суть программирования? Для чего оно используется?

Я сейчас попробую вкратце рассказать, что такое программирование.

Во-первых, надо понимать, что программирование бывает очень разным. Бывает программирование, когда пишут код, который отвечает за взаимодействие с пользователем. Называют «юзер интерфейсом». Бывают разные операционные системы, бывают разные языки программирования, бывают разные среды разработки, бывают разные библиотеки, бывают разные задачи. Поэтому программирование бывает очень разным. Поэтому всегда забавно, если, к примеру, приходишь в поликлинику, у какой-то тетечки что-то не работает,она спрашивает:

– А ты кем работаешь?

– А почини мне вот эту программу. (которую ты, естественно, первый раз в жизни видишь).

Все очень часто путают программиста с сисадмином, который обладает знанием, как работает программа. Естественно, если я займусь этим вопросом, то через 10–15 минут я ее изучу вдоль и поперек, дизассемблирую и решу любую задачу, но это работа не программиста, а системного администратора.

Что такое дизассемблирую?

Дизассемблирую – это двоичный код превращу во что-то читаемое, в чем можно понять логику того, как оно работает.

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

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

Что такое паттерны?

Паттерны – это шаблоны для решения стандартных задач.

Причем по мере развития программирования в целом набор паттернов постоянно увеличивается, появляются какие-то новые паттерны, новые подходы к решению тех же самых задач, более эффективные, более понятные, более наглядные. Их все время нужно изучать. Поэтому программирование — это непрерывное изучение. В программировании вообще не существует идеального кода , не существует конца и предела совершенству программисту. Программирование – это непрерывная учеба. Что-то из серии заветов Ильича: «Учиться, учиться и еще раз учиться!»

Сейчас популярны всякие методологии, типа Agile. Суть в том, что любая разработка ведется итерационно — все делится на маленькие циклы. И чем у тебя короче цикл, тем круче. Допустим, ты делаешь что-то одно очень большое. Ты берешь и ставишь для себя маленькую цель и пытаешься ее достичь гораздо быстрее. Если ты ее быстро достиг, ты двигаешься дальше. Ты имеешь контроль над тем, что происходит.

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

А как вообще и кто создает программный продукт?

Допустим, у вас есть задача, которую вы хотите решить. Пускай даже маленькая. Представим, что процесс идеальный. В таком случае для начала Вам нужно собрать требования, понять что мы вообще хотим. Эта роль в бизнес-аналитика. Потом вам нужно продумать, как это будет работать. Задуматься об архитектуре, о проектировании конструкции. Это то, что должен делать в идеале архитектор. Потом вы должны заняться планированием работы. Это то, что должен делать проджект-менеджер. Потом начинается реализация, т.е. программирование. Программисты пишут код, переодически реф ачат (улучшают, упрощают, изменяют) его, создают автоматические тесты.

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

Далее — стадия вывода кода в продакшн, в идеале это должен делать саппорт или люди, которых называют модным словом DevOps. Потом начинаетсят стадия пост-продакшен, когда какие-то багги (ошибки) нужно заметить, саппорт должен собрать все эти бесконечные замечания пользователей и девелоперы должны их пофиксить (исправить). Есть куча способов улучшить конечный результат этой операции или всего операционного цикла. Все эти этапы важны и нужны. Зачастую какими-то из них жертвуют. Иногда можно вообще не собирать требования, вообще ничего не планировать, можно не рефачить код, можно не тестировать. Порой даже нужно пренебрегать какими-то этапами и это разумно. Но все это влияет на конечное качество.

Сейчас наблюдается тенденция, что больше функций перепадает на девелоперов. Становится популярно такое слово, как DevOps. Часть функций саппорта переходит к самим разработчикам. Теперь весь енвайромент (среда в которой всё крутиться) — это тоже код. Очень популярно стало юнитестирование, когда программы пишутся и автоматически сами тестируются. Чтобы люди после каждого изменения не прокликивали весь «флоу» заново. Это именно такой подход, когда все бьется на маленькие кусочки, а кусочки ты можешь автоматически протестировать. А если ты их потом собрал, как конструктор, они скорее всего будут работать правильно. Хотя это тоже надо проверять и это тоже можно автоматизировать и называется это словом интеграционное тестирование. И в принципе это хорошо, потому что ручное тестирование это круто, но все равно, особенно если схема системы очень большая, просто невозможно каждый раз прокликивать все заново руками. Возьму на себя смелость и утверждаю, что во всей этой пищевой цепочке ключевое звено занимает именно разработчик. Я видел кучу проектов, в которых не было архитекторов, в которых не было бизнес-аналитиков, в которых не было проджект-менеджеров, в которых не было тестировщиков, в которых не было саппорта. Но я не видел ни одного проекта, где бы не было разработчика. Потому что зачастую именно он выполняет все эти функции и по сути он ключевая персона.

Хотя, безусловно, все эти остальные функции очень важны, и очень круто, когда есть люди, которые умеют клево их выполнять. Когда есть бизнес-аналитики, которые грамотно собирают полные, непротиворечивые, атомарные требования. Когда есть хорошие проджект-менеджеры, которые способны объяснить заказчикам временные сроки, решить все эти бесконечные проблемы и способны снять с команды, которая занимается имплементацией бремя. Так чтобы на голову вся эта лапша не сыпалась в виде бесконечных звонков и вопросов «когда». Очень клево, когда есть тестеры, которые могут клево протестировать, заметить любые баги, которые могут даже автоматизировать отчасти свое тестирование и т.д.

Как сегодня проходит твой рабочий день?

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

В реальности ты просто уходишь в себя и 80% времени думаешь. А когда созрел, то начинаешь писать код. И когда ты его пишешь, пишешь, пишешь, в результате что-то получается. Периодически ты разговариваешь с людьми, с заказчиками, выясняешь требования и так далее. Если говорить про разработку, особенно про командную, как правило, бывают митинги. В случае Agile — они бывают ежедневно.

Какие конкретно задачи Вы решаете? Можете привести пример?

Задачи бывают очень разные. Например, задача алгоритмического характера — есть человек или ресурс, и вы можете у них спросить по какому-то протоколу: «Вась, ты знаешь Петю?». Он тебе может ответить да или нет. Вот есть какой-то набор таких людей, которые стоят вокруг вас. Вам нужно за наименьшее количество операций, вопросов, узнать, кто из этих людей так называемая звезда? То есть, такой человек, которого знает больше людей, чем остальных? Это прикладная задача. Потому что реально порой нужно найти именно оптимальный способ. Если говорить про какие-нибудь карты — то оптимальный маршрут от точки А до точки В.

Если говорить про последнюю задачу, которую я решал, буквально, сегодня, это: у вас есть 2 кучи, вам нужно переложить кирпичи. Причем вы можете перекладывать кирпичи только целиком. Но при этом вам нужно соблюсти пропорцию. Одни кирпичи, допустим, красные вы складываете на левую часть борта, синие – на правую часть борта. Если вы чуть-чуть кирпичей больше переложите, пропорцию не соблюдете, корабль перевесит и все утонет. Соответственно, вам нужно переносить кирпичи, но при этом вы не можете их на части бить, вы не можете ломать кирпичи.

Прикол не в том, что вы каждый раз не знаете, как это сделать. Прикол в том, что когда вы делаете несколько итераций, вам нужно сохранять состояние, знать, что вы делали до этого. Но если у вас одно из требований – это состояние, то есть помнить количество итераций вы не можете, вы только знаете, сколько у вас осталось кирпичей и сколько вы уже отгрузили на этот корабль. И знаете вот эту пропорцию. В принципе, достаточно простая математическая задача, кроме пропорции и округления, особо функций никаких и нет. Но, как ни странно, она не такая простая, как может показаться. Даже приходится писать юнитесты, чтобы самого себя проверить, что бы не ошибся. В моем случае проблематика — это финансы. Кирпичи — это просто лоты на фондовой бирже, ведь нельзя купить дробное количество бумаг на рынке. А почему нужно соблюдать пропорции? Ну потому что это тупо риски. Чтобы у вас позиция была сбалансирована.

Другой пример задачи — нужно нарисовать пользовательский интерфейс, вывести что-то в Excel, на форму, или на веб-страничку. Это простая прикладная задача. Это не алгоритмика. Но при этом тоже нужно знать инструментарий, нужно знать, как это правильно сделать. Нужно знать, в какой среде это делать. Нужно знать язык программирования. Это такая классическая рутинная работа. Но это тоже часть профессии.

Какими качествами должен облазать человек, чтобы хотя бы претендовать на то, чтобы стать программистом?

Во-первых, он должен быть умным. Логический склад ума должен присутствовать.

Второе качество — это упорство, терпение. Потому что программирование это постоянная учеба. У тебя что-то не получается, ты должен ни смотря ни на что сделать это.

Зачем человеку так сильно напрягаться, учиться? Что такого хорошего в этой профессии?

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

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

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

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

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

Ну и наконец, важно, что ты можешь видеть результат своей работы. Ты что-то сделал и действительно видишь,что получилось.

А что сложного есть? Что-то еще может сложное в работе, с чем не каждый справится?

Основная сложность, что заказчики, которые что-то просят, очень часто не понимают, не представляют, как это сделать, чего это стоит. Они 150 раз поменяют свои желания.

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

Как ты любишь отдыхать?

Люблю свою семью, друзей. Люблю добрые теплые компании.

Люблю активный отдых. Хотя бы съездить в лес, искупаться где-то с семьей и с друзьями. Раньше ходил в горы. Сейчас, к сожалению, времени не хватает, да и возможностей мало. Часто играю в футбол в любительской лиге.

А читать что-то успеваешь? Смотреть?

Книги люблю научно-популярные, допустим, по физике. Люблю всех популяризаторов этой науки — того же самого Хокинга. Да, многие научно-популярные книги, на самом деле во многом псевдонаучные. Но хотя бы они дают возможность прикоснуться к этому миру физики.

Если про фильмы, то то же самое. Научно-популярное кино или фантастическое кино, которое основано на какой-то научной проблеме. Фильмы, которые сводили меня с ума, это «Терминатор». В свое время это было круто, потому что тогда первые компьютеры только появлялись. Люди думали: «Искусственный интеллект. Скоро нас роботы поработят». Реально было круто. Сейчас это уже бесконечные повторы тех серий, кажутся просто смешными. Еще спорт люблю смотреть — какой-нибудь хороший футбол. Комедии люблю, страшилки. Мне после них хорошо становится. К примеру, люблю смотреть «Криминальную Россию» про маньяков. Меня вообще никто не понимает. Но это реально такая особенность психики человеческой, когда ты смотришь страшилки, себя угнетаешь, потом наступает хороший период.

Чтобы ты посоветовал людям, которые еще ищут свое призвание?

Не надо питать иллюзию, что ты выбрал профессию, которая тебе нравится, и после ты кайфуешь и все будет идеально и гладко. Да нифига. В любой профессии, в любой работе есть рутина. Не важно, актер ты, программист, хирург, нефтяник, дворник. Везде есть рутина. Поэтому все сказки про то, что «найди себя и все будет как по маслу, жизнь наладится и все будет круто» – это все фигня. Просто реально кому-то что-то подходит больше, кому-то что-то подходит меньше.

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

Добавить комментарий