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

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

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

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

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

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

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

Платежная политика

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

Стыд и позор

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

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

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

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

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

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

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

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