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

Однажды на одной из работ я столкнулся с очень банальной задачей – нужно было автоматизировать несколько простых задач (обработка данных, выгрузка на сервер и прочее), для этого начальник вручил мне книжку по Unix, и посоветовал ознакомиться с разделом по bash. Думаю именно в этот день моя жизнь сильно изменилась.

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

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

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

Далее начались поиски способов обучения, за это время я пробовал кучу разных сайтов по обучению программирования, помню как мой друг отговорил меня от оплаты подписки сервиса GeekBrains, на котором если не ошибаюсь я хотел купить курс на год (ужасная идея), далее был пройден htmlacdemy, что то на CodeAcademy и еще по чуть чуть на разных сайтах, понимание не приходило и работа занимала кучу времени, на обучение оставалось совсем не много, а в совокупности с неверными методами это не приносило плодов. Очень часто казалось что ничего не получится, часто думалось о возрасте (мне 28 лет было), типа “может уже поздно что то менять?” Вообщем полный восторг сменялся упадком. Кстати я сделал еще одну странную вещь, когда увлекся программированием – купил макбук, хоть сейчас конечно же я об этом не жалею, это мой рабочий повседневный инструмент, но кто знает как могло все сложиться и это скорее было веянием хайпа, можно было остаться и на линуксе.

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

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

В это время я окончательно понял что программирования это та вещь, которой я хочу посвятить остаток своей жизни и решил сделать ход конем. Я накопил определенную сумму денег и решил плотно заняться обучением. В это же время моя девушка уезжала на семестр в португальский университет и я укатил на 90 дней (шенген макс) в Лиссабон вместе с ней. Шли дни и недели под палящим португальским солнцем, я зарывался в дебри разработки, иногда было супер сложно, иногда так сложно что невыносимо хотелось бросить, но в конечном итоге всегда решение задач приносило невообразимое удовольствие. Примерно через пару месяцев на хекслете запустили шикарную услугу “Проекты”, о них подробнее я уже писал в своем блоге чуть раньше, суть в том что они дали к очень хорошей теоретической базе сильную практику и тут как раз все сложилось как надо и начало потихоньку приходить понимание. Примерно в это же время я осознал, что хочу офисную работу, с возможностью пообщаться с коллегами, работой в команде и так далее, так что изначальную идею о фрилансе решил пока спрятать в ящик.

После прохождения проектов и возвращению в Россию я начал потихоньку искать работу, так как я уже влился в сообщество, мне очень много помогали с резюме (отдельное спасибо Веронике за ее посты и советы). Сами собеседования на удивление очень отличались от всего что было со мной ранее, а на интервью я был очень много раз за жизнь. Основное что отличалось это “удаленность”, почти всегда это был либо онлайн тест, либо какое задание на день или несколько. За все время по телефону я общался 1 раз, и то это был недостойный работодатель, который предложил приехать, а на собеседовании предложил совсем другую должность. В целом меня, как любителя цифрового асинхронного общения такая ситуация более чем радовала. В конце концов я нашел очень маленькую компанию, скорее похожую на семейный бизнес, с отличным коллективом, который решился меня взять. На самом интервью, как мне кажется, я отчасти удивил многими знаниями, которых не ожидают услышать от новичка.

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

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

Напоследок дам краткий ликбез как бы я начал изучать разработку сейчас:

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

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

Отправить в Телеграм

Всем своим читателям большой привет!

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

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

Итак, как я стал программистом в 34 года.

Первое знакомство с компьютером и программированием

Эта история началась почти 20 лет назад. В 15 лет я поступил в Компьютерный Лицей и познакомился с компьютером. Там же я увлекся программированием и был одним из лучших в лицее. Мне очень нравилось программировать, и я был уверен, что после окончания лицея я буду поступать в технический ВУЗ и стану программистом.

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

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

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

Погоня за перспективой и разочарование

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

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

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

Однако сказать легче, чем сделать. Когда я увлекался программированием, то дальше учебных языков я не заходил. Не успел. Поэтому по сути я был полным нулем в современных технологиях. Я лишь понимал логику программирования. Знал базовые общие языковые конструкции. И имел опыт написания программ на учебных языках программирования.

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

Другой вопрос, как обучаться? Пойти на курсы или учиться самому? А может онлайн курсы или вообще найти настоящего программиста, заплатить ему, чтобы он меня научил? Или пойти в ВУЗ?

В общем, как стать программистом, это тема отдельной статьи. А здесь я расскажу, что сделал именно я.

Я начал изучать верстку и мониторить интернет на предмет работы, который был бы близок к программированию. Довольно-таки быстро я нашел, то, что мне подходило. Это был известный интернет-проект в сфере поиска работы типа hh.ru . И в этот проект нужен был человек, помогающий формировать дальнейшую стратегию проекта и быть связующим звеном между руководством и программистами.

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

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

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

Дело в том, что я все это время интенсивно учился. Вечера и выходные у меня не проходили зря. Я штудировал HTML, CSS, Javascript, Jquery, PHP и устройство WordPress. И уже к концу месяца мог сделать готовую несложную тему для WordPress с исходного psd макета.

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

Фриланс

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

Это придало мне уверенность, и я ушел со студии. Фриланс стал настоящей школой. Различные задания, нет того однообразия, что было в студии. Я действительно сильно вырос пока работал во фрилансе. Очень быстро у меня появились 3 постоянных заказчика. Задачи становились все серьезнее. Я стал увереннее. Все это происходило буквально в течении 3-4 месяцев.

Я стал программистом!

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

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

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

Теперь буду стараться исправляться и хоть изредка писать статьи. Они теперь будут больше посвящены разработке. Соответственно постепенно будет меняться тематика блога и наверняка аудитория. Такие вот новости.

Напоследок как всегда интересное видео.

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

Так что скоро еще увидимся!

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

Короче, мне за 30, я состоявшийся профессионал, и я решил освоить фронтенд-разработку. Захотелось двух вещей:

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

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

С чего начать?

Главная проблема новичка-кодера. Технологий море, языков океан, терминов – безграничная вселенная. Фреймворки, библиотеки, методологии, метаязыки… Неясно вообще ничего, а знакомые программисты и вовсе советуют не лезть. А если очень хочется?

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

Как учиться?

В общем есть два пути:

Суровый самоучка – кидаетесь в пучину с головой. Все, что надо, есть на YouTube, а все платное можно даром скачать на торрентах. Если что непонятно, спрашиваем в чатиках и соцсеточках.

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

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

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

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

Мне хотелось:

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

Где учиться?

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

  • Неиссякаемый YouTube. Вроде бы все есть, но с чего начать, а тем более, куда продолжить, – непонятно. Знания не систематизированны. Блогеры любят фокусироваться на частностях, упуская общую картину. Однако YouTube хорош, когда нужно углубить какую-то тему.
  • Русскоязычные платные курсы «Нетология» , GeekBrains , HTML Academy и подобные. Дороговато, если не решил крепко-накрепко менять профессию и не уверен, что в будущем отобьешь затраты. К тому же бесплатные вебинары некоторых школ не блистали качеством, а среди преподавателей по другим специальностям я обнаружил коллег, чей профессионализм оставляет желать лучшего. Хм.
  • По ценам. Первый уровень месячного интенсива HTML + CSS в HTML Academy стоит 24 500 рублей. Профессия frontend-разработчик в «Нетологии» без скидки 54 900 рублей, правда, за 8-месячные курсы плюс обещают стажировку и трудоустройство. В GeekBrains берутся учить за 7855 руб/мес на протяжение семи месяцев, в комплекте стажировка на реальном проекте GeekBrains или Mail.Ru, а то и у партнеров вплоть до Сбербанка.

  • Курсы на Coursera , Udemy и похожих ресурсах. Посидев немного на этих площадках, понял, что там слишком много всего – с чего начать и куда двигаться дальше как-то не совсем понятно. По сути та же ситуация, что и с YouTube.
  • Туториалы на W3Schools , freeCodeCamp – нет видео, только тексты, а потому трудно воспринимаются.

И это лишь немногое из того, где можно поучиться.

Меня спасла реклама в Facebook. Предложили англоязычную школу Treehouse , и я повелся. Кликнул на бесплатный курс Introduction to HTML and CSS, прошел его.

Обучение было как раз таким, какое я искал: на видео профессиональный наставник с чувством, с толком, с расстановкой объяснял азы фронтенда. Иногда на экране появлялась доходчивая инфографика. В ходе разбора темы нужно было выполнять задания, а то и пройти целый челлендж, либо ответить на вопросы.В конце – контрольная работа. Есть «песочница», где писать код и ссылки на допматериалы – документации на Mozilla Developer Network и др.

Мне понравилось. Вот просто – понравилось. Обучение стоило всего 25 долларов в месяц, за которые я получал неограниченный доступ ко всем курсам школы. Я и вписался.

И что было дальше?

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

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

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

Почитывал книги «How I Learned to Code: Lessons From Teaching Myself Web Development and Becoming a Paid Programmer in Only 3 Months» , «No Degree Web Developer: How I broke into the tech industry with 3 months of self-taught programming» , «The Self-Taught Programmer: The Definitive Guide to Programming Professionally» и прочие книги о success-story. Все это продается на Amazon.

Первые деньги

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

В случае с фронтендом это проще простого:

  1. Если вы хорошо учитесь, то у вас по ходу дела будут появляться готовые учебные проекты.
  2. В интернете есть базы готовых макетов. Загружаете – и верстаете. Чтобы не ковыряться слишком долго, поставьте себе цель: сверстать 5 макетов в неделю. Ну или хотя бы парочку.
  3. Наверняка у вас есть друзья, которым нужна сайт. Возьмите и сделайте им подарок.
  4. Если таковых друзей нет, то предложите свои услуги в каком-нибудь профессиональном сообществе. Бесплатно.

Как только почувствовали, что ваш кодинг-скилл достиг 80 lvl, и вы способны на раз-два решать актуальные задачи, можно искать работу. Тут прямой путь как минимум на

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

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

Разумеется, речь в статье пойдёт исключительно о моём личном опыте, который позволял мне проходить собеседования даже в такие топовые компании, как 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-специалистов. А это значит, что у вас всегда есть шанс, эдакий вы авантюрист.

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

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

Разумеется, речь в статье пойдёт исключительно о моём личном опыте, который позволял мне проходить собеседования даже в такие топовые компании, как 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».
  • Выучи азбуку программирования. Если ты ещё можешь позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы тебе никогда не простят. Если тебя ночью разбудить, то ты должен уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
  • Практика. Научиться программировать можно, только лишь программируя. Это больно и неприятно (если ты не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях - порешать их дома самостоятельно.
  • Читай книги и проходи туториалы по Java только на английском Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском - себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области», нужно быть поистине гением, которым ты вряд ли являешься.
  • Выучи, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине - неудовлетворительный уровень разговорного английского. Нет, если ты, конечно, собираешься работать программистом где-нибудь в отечественной компании, то твой уровень языка не будет играть важной роли. Но если ты хочешь попасть на работу в международную компанию, то сам бог велел выучить язык. Уровень твоего английского будет конвертироваться в дополнительные сотни долларов прибавки к зарплате.
  • Знай рынок. Походи по вакансиям, почитай требования, поспрашивай друзей-программистов, сколько они получают. Используй сервисы, которые позволят составить более полную картину о рынке IT. Ты был бы удивлён, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
  • Торгуйся. Нет ничего предосудительного в том, чтобы торговаться за зарплату. Твоим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Ты должен понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
  • Найди себе ментора. Хорошо, если у тебя будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке ты будешь продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо сходить на какие-нибудь курсы по программированию, которые не только дадут более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать твоим ментором.
  • Начни свой проект. Даже если он будет образцом самых худших практик кодинга и ты его никогда не закончишь, по крайней мере, у тебя будет то дело, ради которого захочется разбираться в программировании и изучать новые технологии. Кроме того, у тебя появится дополнительная тема для задушевных бесед на собеседованиях.
  • Ищи работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что тебя позовут на собеседование. Во-вторых, поскольку твои конкуренты-соискатели тоже на отдыхе, у тебя опять-таки повышаются шансы быть замеченным HR.
  • Никогда не сдавайся. Даже если кажется, что ты заваливаешь собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть, тебя именно в этот момент проверяют на усердие в работе!
  • Избегай заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Твоя задача - постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если тебе дали бумагу и ручку и попросили записать решение, то попроси возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, ты не только убережёшь себя от каких-нибудь режущих глаз ошибок, но и покажешь, что способен мыслить абстрактно, не вдаваясь так уж сильно в детали.
  • Начинай говорить первым. Избегай ситуаций, когда в воздухе виснет пауза, во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, начинай рассказывать что-нибудь из того, что ты хорошо знаешь. Постарайся навязать интервьюеру свою игру.
  • Старайся говорить правду. Если ты никогда не писал PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для тебя будет минус, однако ты убережёшь себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслишь. Опытный интервьюер за версту почувствует твои пробелы в знаниях.
  • Бойся маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее тебя раскусят. Твоя цель - большая и неповоротливая корпорация, где ты сможешь выиграть для себя немного времени.
  • Соблюдай дресс-код. Если ты придёшь на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если ты явишься в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».
  • Конечно, кто-то знающий может отметить, что приведённый выше рецепт - это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».

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