Неправильный, но быстрый способ стать программистом

Юрий Паламарчук

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

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

Neyro/Shutterstock.com

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

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

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

Как я стал программистом

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

Первый шаг — резюме

Первая и основная проблема, с которой сталкиваются новички, — резюме. Без адекватного, цепляющего резюме вас не будут приглашать на собеседования. Но как быть тем, у кого совсем нет опыта работы? Для того чтобы «не с пустыми руками» идти к HR, мы с моим другом вписали мне в резюме целый год опыта работы над его проектом, над которым мы якобы вместе трудились.

Зарплатная политика

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

Позор и стыд

Первые собеседования были провальными. Надо мной буквально смеялись. На первом же техническом собеседовании, где мне дали пару задачек на бумаге, меня раскусили в два счёта. Кто-то даже по-отечески посоветовал книгу Thinking in Java.

Первая работа

В конце концов меня пригласили на собеседование в филиал одной датской компании, где я ответил на фундаментальные вопросы и приятно удивил всех своим английским. Меня взяли на должность Junior Java developer с одним условием — первые три месяца я буду проходить курс SCJP (Sun Certified Java Programmer), который восполнил бы мои пробелы и выковал бы из меня более подготовленного специалиста. Что может быть лучше, чем оплачиваемая стажировка без нужды работать (выдавать свою некомпетентность)? В этой компании я проработал полгода, чтобы через несколько месяцев пойти на повышение в компанию покрупнее.

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

Рекомендации для начинающих программистов

  1. Резюме. Оно должно быть правильно отформатированным и написанным исключительно на английском. Если не хватает опыта, то его можно (и нужно) придумать, но следует подготовиться отвечать за каждое написанное в резюме слово. Например, если у вас там написано JMS (Java Message Service), то вам как минимум следует пройти хоть одну обучалку и поиграться с JMS, поделать какие-нибудь примеры, пускай это и будет банальное «Hello, world!». Теперь вам будет удобнее пускать пыль в глаза, вы ведь и правда «работали с JMS».
  2. Выучите азбуку программирования. Если вы ещё можете позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы вам никогда не простят. Если вас ночью разбудить, то вы должны уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
  3. Практика. Научиться программировать можно, только лишь программируя. Это больно и неприятно (если вы не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях — порешать их дома самостоятельно.
  4. Читайте книги и проходите туториалы по Java только на английском. Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском — себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области», нужно быть поистине гением, которым вы вряд ли являетесь.
  5. Выучите, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине — неудовлетворительный уровень разговорного английского. Нет, если вы, конечно, собираетесь работать программистом где-нибудь в «Киевстаре» или в другой отечественной компании, то ваш уровень языка не будет играть важной роли. Но если вы хотите попасть на работу в международную компанию, то сам бог велел выучить язык. Уровень вашего английского будет конвертироваться в дополнительные сотни долларов прибавки к вашей зарплате.
  6. Знайте рынок. Походите по вакансиям, почитайте требования, поспрашивайте друзей-программистов, сколько они получают. Используйте сервисы, которые позволят составить вам более полную картину о рынке IT. Вы были бы удивлены, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
  7. Торгуйтесь. Нет ничего предосудительного в том, чтобы торговаться за зарплату. Вашим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Вы должны понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
  8. Найдите себе ментора. Хорошо, если у вас будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке вы будете продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо бы сходить на какие-нибудь курсы по программированию, которые не только дадут вам более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать вашим ментором.
  9. Начните свой проект. Даже если он будет образцом самых худших практик кодинга и вы его никогда не закончите, по крайней мере у вас будет то дело,  ради которого вам захочется разбираться в программировании и изучать новые технологии. Кроме того, у вас появится дополнительная тема для задушевных бесед на собеседованиях.
  10. Ищите работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что вас позовут на собеседование. Во-вторых, поскольку ваши конкуренты-соискатели тоже на отдыхе, у вас опять-таки повышаются шансы быть замеченным HR.
  11. Никогда не сдавайтесь. Даже если вам кажется, что вы заваливаете собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть так, что вас именно в этот момент проверяют на усердие в работе!
  12. Избегайте заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Ваша задача — постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если вам дали бумагу и ручку и попросили записать решение, то попросите возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, вы не только убережёте себя от каких-нибудь режущих глаз ошибок, но и покажете, что способны мыслить абстрактно, не вдаваясь так уж сильно в детали.
  13. Начинайте говорить первым. Избегайте ситуаций, когда в воздухе виснет пауза, во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, следует начать рассказывать что-нибудь из того, что вы хорошо знаете. Постарайтесь навязать интервьюеру свою игру.
  14. Старайтесь говорить правду. Если вы никогда не писали PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для вас будет минус, однако вы убережёте себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслите. Опытный интервьюер за версту почувствует ваши пробелы в знаниях.
  15. Бойтесь маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее вас раскусят. Ваша цель — большая и неповоротливая корпорация, где вы сможете выиграть для себя немного времени.
  16. Соблюдайте дресс-код. Если вы придёте на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если вы явитесь в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».

Конечно, кто-то знающий может отметить, что приведённый выше рецепт — это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».

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

Adam Goamn
2014-11-14 12:47:22
Полностью согласен с что даже если нет практики все равно нужно писать 2-3 года спокойно. А так же с тем что все что написано в Резюме нужно знать как можно лучше. Главное это чтоб тебя пригласили на собеседование. Таким образом ходить на как можно больше, после 10-15 собеседований уже будет набросок того что спрашивают и то как себя вести. И да базу нужно знать крепко. Это первое что спрашивают.
Дмитрий Гаврилов
2014-11-14 13:17:24
Гадость какая. 11 лет назад я честно признался в Москве, что почти не имею образования по теме, но очень хочу программировать и меня взяли на небольшую ставку. И научили программировать. Вот это честный путь.
Alexey Solovyov
2014-11-14 14:13:25
Сейчас это не прокатит.
Тёма Пендюрин (ErBlack)
2014-11-14 14:55:35
С чего бы?
Vadim Kuzmichev
2014-11-14 16:29:00
"в такие топовые компании, как Luxoft" - посмешило. Хотя Вы про Украину... Не знаю, как на Украине, но в России (Москва) - Люксофт и его клон ЕПАМ средние конторы по продаже людей заказчику. Топ - это гугл, IBM (НЕ yandex). Хотя, собеседования в Люксофте действительно могут быть сложными - сам завалил не один десяток "senior developer'ов"
Андрей Казаков
2014-11-14 17:09:18
Мда уж. Видать программистом стало быть модно. Чую поток говнокодеров в скором времени станет в разы больше.
Дмитрий Гаврилов
2014-11-14 17:58:30
Ну не знаю, как там сейчас у вас в Москве, а вот у нас в России... :-D У нас в Рязани ЕПАМ скажем, весьма таки авторитет. Валят народ на собеседованиях действительно солидно, там не то что бы на дурачка, а и реальный программист не всегда пройдёт.
Дмитрий Гаврилов
2014-11-14 18:02:47
Нормально покатит. Что тогда, что сейчас, существует реальный недостаток программистов. В обоих конторах, где я последние годы работал, легко устроился бы человек без образования, но с горящими глазами. Ставка конечно будет поначалу мизерная, но это же считай учёба, а не работа, первый год.
Юрий Паламарчук
Юрий Паламарчук
2014-11-14 18:28:23
И тестировщиков тоже ;-)
Юрий Паламарчук
Юрий Паламарчук
2014-11-14 19:58:40
Кстати, да. Человека с "горящими глазами" возьмут на стажировку с большим удовольствием, чем более подкованного, но апатичного человека.
Kseniya Zhytomyrska
2014-11-15 00:17:15
"небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее вас раскусят. Ваша цель — большая и неповоротливая корпорация, где вы сможете выиграть для себя немного времени." думая что все лохи вы сами становитесь... не программистом а лохотронщиком)
Kseniya Zhytomyrska
2014-11-15 00:20:48
или чем вруна)
Юрий Паламарчук
Юрий Паламарчук
2014-11-15 00:25:10
Дело не в том, что где-то лохи, а где-то шарящие специалисты. Как правило, везде люди умнее вас и им не составит труда определить ваш уровень знаний. Но зато в большой компании большой запас прочности, который позволит ей терпеть такого некомпетентного авантюриста, как вы дольше, чем если бы вы были в небольшой компании, где бы с вас спрашивали результат каждый божий день.
Юрий Паламарчук
Юрий Паламарчук
2014-11-15 00:26:22
Почему вруна?
Kseniya Zhytomyrska
2014-11-15 00:34:56
а зачем им терпеть авантюриста - вот в чем суть. если вы в большой компании то вашу работу просто будут выполнять другие - а вы получать зп, ок для вас, а для других?
Юрий Паламарчук
Юрий Паламарчук
2014-11-15 00:42:16
Надо понимать, что авантюристов терпят, потому что это выгодно. Проще пригреть и обучить одного авантюриста, чем переманивать хорошего программиста из другой компании. Ресурс ограничен, толковых людей мало, поэтому остаётся только растить новые кадры. И ещё, обратите внимание на заголовок, в котором я указал, что это неправильный (хоть и работающий) способ.
Kseniya Zhytomyrska
2014-11-15 00:46:41
тот кого можно брать на обучение - не будет врать. логика и код не совсем с "авантюризмом" связаны, поэтому я бы опасалась брать в "деньгозавязанные" проекты например таких людей. меня в принципе печалит кто приходит на собеседования, поэтому простите если ваш юмор не оценили) и еще, работающий способ открыть двери - выбить их ногами, но вы же не будете в инструкции к двери это писать.
Юрий Паламарчук
Юрий Паламарчук
2014-11-15 01:33:45
>> тот кого можно брать на обучение - не будет врать - и тот, КТО будет брать на обучение - не должен врать. Понимаете, это всё фарс и игра, в которую приходится играть. HR'ы ищут идеальных людей с 5-летним опытом, которых по сути не бывает. Более того, они ищут сверхлюдей: стрессоустойчивых, внимательных, трудоголиков, юморных, лидеров, командных игроков, умеющих самостоятельно работать. И всё в одном лице! А соискателям ничего не остаётся, кроме как приписывать себе лишний год опыта работы и заливать лобуду о том, какие они великолепные командные игроки. Кто ж виноват, что многие компании не стремятся выращивать новые кадры, но только хотят получать готовых специалистов? За жадность приходится платить. Посмотрите количество вакансий на Junior Java developer, сравните с непомерно большим количеством вакансий Senior Java developer (даже не Middle!) и вы поймёте, что редкие компании сейчас готовы вкладывать средства в обучение персонала. >> меня в принципе печалит кто приходит на собеседования - Разделяю ваше мнение (как человек, который сам занимался подбором персонала). А теперь давайте поговорим о том, что печалит начинающих программистов. Их печалит, что компании ищут опытных специалистов, у которых 2-5 лет опыта работы на серьезных проектах. Понимаете? Их это печалит. Как им разорвать порочный круг "нет опыта работы -> на работу не берут без опыта работы"? Если вы дадите рецепт, как это сделать без того, чтобы дописать лишний год опыта работы в резюме, уверен, многие начинающие программисты с удовольствием им воспользуются. Но одно условие - пусть ваш способ будет такой же простой и понятный, как "дописать лишний год опыта работы". Без воды. ^_^
Ostin Silver
2014-11-16 01:16:11
я вроде как бы и сейчас в подобной ситуации, но вот почему то вопрос чего то там дописать лишнего, даже и не возник, ну нет больше опыта, чем вот эти пара проэктов, ну чего уж тут. Если хорошая вакансия, я лучше по нормальному скажу, это, это и это знаю, вот это тоже, про это слышал, с этим работал, с этим не приходилось работать. И там где я сказал, что знаю, пускай тестят меня до вечера. Я иду на джуна (фронт-енд), ни на мида даже, чтобы знать и уметь больше, чем я знаю сейчас. Тем более конкретными заданиями легко проверить уровень знаний. Дали ноут, задание озвучено, и вот как здесь взять листик и сказать, а давайте я вам схемку черкану, когда от тебя ждут рабочий кусок кода? Не вариант это вовсе. Это для вечных трейни такое подойдет, когда гнать будут каждых пару месяцев.
Юрий Паламарчук
Юрий Паламарчук
2014-11-16 01:43:46
>> Дали ноут, задание озвучено, и вот как здесь взять листик и сказать, а давайте я вам схемку черкану - В данном случае - никак. Но пока ещё есть компании, где не подсовывают ноут и не требуют сиюминутного выполнения тестового задания (хвала Аллаху!).
Ostin Silver
2014-11-16 01:48:16
с 4 вакансий, что меня заинтересовали, и может где мной заинтересовались, три отправили тестовые до первого интервью, а четвертые сообщили, что тестовое будет только после общения с их hr. Так, что или компании такие попались, или это уже общепринятая норма при собеседовании. Ну либо же мне так везет.
Юрий Паламарчук
Юрий Паламарчук
2014-11-16 10:21:28
Видимо, сейчас HR'ы начинают потихоньку раздупляться. Но тестовые задания ДО собеседования - не беда, потому что можно сесть дома и в спокойной обстановке с помощью друга или Stackoverflow сделать задания.
Дмитрий Безфамильный
2014-11-17 01:45:52
Работаю программистом более 10 лет. У нас не та профессия где можно прикинуться знатоком не имея опыта. Если уж так хочется работать программистом, то лучше рассказать что ты умеешь и готов учиться далее. Странно звучит " Научиться программировать можно, только лишь программируя. Это больно и неприятно (если вы не программист), но другого пути нет. " это очень увлекательно и интересно. особенно когда начнет получаться :))
Юрий Паламарчук
Юрий Паламарчук
2014-11-17 11:06:10
Думаю, эта статья, все же, не для тех, кому "очень увлекательно и интересно. особенно когда начнет получаться", иначе бы они с таким подоходом уже давно были бы программистами (:smile:)
Kseniya Zhytomyrska
2014-11-17 12:53:21
мой способ - любите программирование+стремитесь программировать => найдите что вы уже умеете (если ничего - то первые два не очень у вас выходят) => развивайте умения на платных заданиях хоть фриланс хоть офис - не важно фриланс: научились писать один плагин для вордпресса - пошли на биржу фриланса - нашли задание "написать простой плагин за 10баксов" - вперед! делайте даже бесплатно, но наращивайте сложность и качество кода офис: пришли по подходящей вакансии (дада, не килобаксы и реальный опыт почему фигня может работать а может нет, а трейни и стажировка) - показали что можете реально - наращиваем сложность в проектах компании и выходим на килобаксы как результат вариант 2: ЕСЛИ ВЫ РЕАЛЬНО МОНСТР ПРОГРАММИРОВАНИЯ "с нулевым опытом" для фриланса: смотрите на биржах сложное задание - и вперед для офиса: приходите по вакансии и честно пишите - я хочу реальное и сложное тестовое задание для демонстрации большинству заказчиков / работодателей не важно сколько вы программировали если вы умеете писать нужные классы, обладаете логическим мышлением и техническим пониманием что где происходит.
Юрий Паламарчук
Юрий Паламарчук
2014-11-17 19:25:08
>> большинству заказчиков / работодателей не важно сколько вы программировали если вы умеете писать нужные классы, обладаете логическим мышлением и техническим пониманием что где происходит. - Но на собеседование вас берут только посмотрев резюме. Фриланс же, как по мне, это, все-таки, удел профессионалов. Никогда бы не посоветовал новичку идти во фрилансеры. Потому как в фрилансе - ты один. Некому задать вопрос, не у кого научиться. Тем и ценен опыт работы в команде с коллегами, которые тебя умнее на одну или на две головы - бесценная возможность перенимать опыт. Так что, если есть такая возможность, нужно изо всех сил стремиться в команду программистов - это самый верный и быстрый способ самому стать программистом. >> мой способ - любите программирование+стремитесь программировать - Только надо помнить, что "насильно мил не будешь".
Kseniya Zhytomyrska
2014-11-17 23:13:02
я начинала именно фрилансером, ты один - но вокруг море информации как что делать, особенно сейчас, потом ты тем ценнее для команды чем лучше ты научился "учится" ладно, все это треп - ведь вы еще и еще раз говорите о том, чтобы люди не любящие код пришли в программирование)))) удачи и им, и вам, смиритесь с тем что вам придется таки этим заниматься или любя, или ненавидя.
Юрий Паламарчук
Юрий Паламарчук
2014-11-17 23:24:46
>> заниматься или любя, или ненавидя. - это, кстати, относится к любой профессии.
Никита Белов
2014-11-20 18:30:44
Работал я в отделе с такими вот "программистами". Отдел - 6 человек, из которых программируют только двое, один играет в линейку, еще трое зависают в вконтакте и был у нас начальник, он вроде как, тоже программист, но старой школы, ассемблерщик, и его навык ЯП был не применим в нашем деле. Так вот, у всех шестерых зарплатный уровень был одинаков, задачи были схожи, более высокому начальству был важен только результат на выходе. В другой ситуации, если бы работа шла над одним проектом - "программисты" те сразу бы слились либо я бы ушел раньше ( мы с другом всеже ушли, но по другим причинам ), но в наших ситуациях - у каждого был свой круг задач, мы занимались обработкой данных. Там где мы с другом шлепали ПО направо и налево, остальные "программисты" обрабатывали вручную данные...неделями. Дальше они не прыгнут, неначем вырабатывать скилл, т.е. есть на чем, но тут сам факт: "программист? программист!" и все, дальше не растут. Хотите быть такими же "программистами" ? Верьте дальше таким статьям...попасть в компанию, вроде той, куда сам я вляпался - легче легкого и вы будете носить гордо бейдж "программист", может даже "ведущий", только толку то...
Max Lacostove
2014-11-21 22:50:39
Да, с таким куском дерьма в штате ничего не вылепишь.
Макс Хоффман
2014-11-27 13:22:40
Ой да ерунда. Для начала нужно просто уметь гуглить и понимать основы (в какую сторону копать). 90% вопросов спокойно гуглится. Имея эти знания можно так же закрывать таски как и профессиональный девелопер, разница лишь в том, что у профи это займет меньше времени.
Anatolii Stepaniuk
2015-08-27 19:22:57
О чем вообще весь этот текст??
Arthur Smirnov
2015-09-12 23:17:33
Дмитрий, я вот с горящими глазами но не получалось самому. Нравились и хотелось писать на Си и Питоне. Глаза горели на столько что днями был готов просиживать за ноутбуком да ещё и ночами. Сейчас искра пропала или поубавилась но желание уже не первый год никуда не делось. Возможно устроится в те конторы о которых вы писали ?
Дима Шанин
2016-02-09 23:38:25
Читаю внизу коменты все такие честные прям врать не любят. Увы мир несправедливая штука тут у кого больше зубы тот и в королях. Вы своей чесностю детей не накормите. Честные сидят в школах зубрят учебники. Авантюристы правят огромными корпорациями и даже странами. И не потому что они так много знают а потому что они хитрее зубастее и быстрее чем вы.