Как стать программистом (мой опыт)

Для ЛЛ:
1. Захотеть;
2. Некоторое время учиться;
3. Некоторое время искать работу;
4. Трудоустроиться;
5. Запилить пост на пикабу.
Спасибо за внимание.

Дальше будет очень много букв и парочка картинок из интернета: всё то же самое, что в 7 строках сверху, только намного подробнее и на моём личном примере. Если интересно, приятного чтения.

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

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

Если честно, то я несколько раз пытался "ворваться в программирование" путём "а не прочитать ли мне книжку-учебник". Этот путь у меня несколько раз оказывался провальным, поскольку я осиливал не более трети книги, а потом переставал её понимать и бросал эту затею. Но это были больше шалости, нежели что-то серьёзное.

Моя сегодняшняя история началась примерно пару лет назад, когда я с чего-то решил, что кроме основной работы меня могло бы заинтересовать что-то иное. Точно не помню, с чего это я, вдруг, решил так поступить, но я полез на coursera.org посмотреть, а чему бы мне там поучиться. Залез почти бесцельно... так, чисто поглазеть. И "наглазел" я там курс от Яндекса и МФТИ "Основы программирования С++: белый пояс" (или как-то так). Он был бесплатным, так что максимум, что я мог потерять, это время. "Ну, - думаю, - Чем чёрт не шутит?" - и записался. Это был первый шаг на этом долгом пути.

Курс представлял из себя:
- видео-уроки, которые открывались каждую неделю;
- методические материалы на (в среднем) полтора десятка листов А4;
- домашнее задание по программированию, которое проверяет робот, когда ты ему через платформу передаёшь исходный код своей программы.

И с этого момента у меня начались проблемы со временем. Как выяснится потом, время - самый недостающий ресурс в случае, когда ты пытаешься и работать, и учиться.
Если честно, то я начинаю подозревать, что время - это вообще самый ценный ресурс...
["Введение банальнофилософию" том 10, часть 3, абзац 19]
Проблемы со временем  на этом этапе у меня были не особо большими. Мне приходилось:
- 1 вечер или часть выходного потратить на просмотр видео-урока;
- время, пока еду на работу или с работы на общественном транспорте - на чтение методичек;
- субботу или воскресенье - на домашнее задание.
В целом, терпимо. Единственный случай, когда мне пришлось серьёзно напрячься - это итоговое задание. Помню, там был уж очень строгий контроль со стороны проверяющего бота, а условия задачи слишком размытыми... Но в целом, примерно через месяц я уже был счастливым обладателем своего первого виртуального сертификата и горел желанием учиться дальше.

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

Увы, Яндекс и МФТИ к тому моменту ещё не успели оформить следующий курс на coursera, и мне предстояло искать что-то иное.

Решил попросить совета у друга (профессиональный программист с IT образованием), где бы поучиться С++ более серьёзно. Читать учебники, как показывал мой опыт, оказалось не совсем то, что мне нужно было. Ответ друга был примерно следующий: "Ну, на плюсах особо сейчас никто не пишет, кроме железячников и тех, кому нужна высокая производительность" (отчасти это так, да простят меня более знающие товарищи). В общем, посоветовал несколько популярных языков, мол, "на выбор".

Полез я по интернету искать, где бы поучиться. Наткнулся в этот раз на geekbrains.ru (проект от mail.ru) - платную платформу вебинаров по различным направлениям IT. В тот момент площадка была ещё более сырой чем сейчас, но информации там было уже достаточно. Обучение стоило денег, и мне предстояло принять решение, чему конкретно буду учиться... Второй раз закинул старик в воду невод... а... не из той сказки.... Пошёл я более внимательно в интернете читать про языки программирования, которые пользуются популярностью, и уяснил для себя следующие вещи:
1. Если ты нихрена не знаешь о программировании, то нихрена ты не сможешь выбрать язык по душе, чтобы такой "раз(!) и понял - вот язык моей мечты";
2. Большинство языков программирования, в основе которых лежит парадигма ООП (объектно ориентированное программирование) похожи друг на друга;
3. Самые популярные языки могут быть использованы практически где угодно;
4. Большая часть мнений в интернете о языках программирования сводятся к "на этом языке я пишу - он лучший" и "этот язык лучше патамушта патаму"; более вменяемые говорили о том, что каждый язык для своих нужд, но это особо ничего не меняло.

Не придя ни к какому решению, я решил пойти другим путём и ринулся на hh.ru. Там отфильтровал вакансии по языку программирования и... ничего. Одна херня: "программисты все важны, программисты все нужны". Одно меня устроило: стоимость специалистов практически не отличалась друг от друга. Из этого всего я сделал вывод, что вполне можно доверить принятие решения Великому Рандому и не париться.

В итоге, я сделал выбор в пользу C# ("Си-шарп" или просто "шарп") - ничем не лучше и не хуже других языков, а просто "один из". Что меня привлекло:
- этот язык программирования разработан и поддерживается Microsoft для своих продуктов;
- у нас в стране дофига чего работает на продукции "мелкомягких", так что не пропаду, если что;
- язык Си-подобный: перейти на другой си-подобный язык не составит труда;
- если что Unity тоже хорошо дружит с C#;
- для работы с этим языком есть очень удобная среда разработки.

После этого я пошёл и купил комплект курсов, который назывался "Профессия C#": штук 7 месячных вебинар-курсов и с десяток мелких онлайн видео курсов. Этот комплект мне обошёлся чуть меньше чем в 60 000 рублей. В платных курсах был также свой сакральный смысл: я надеялся, что оплаченные курсы будет сложнее забросить - жаба задушит. Строго говоря, так оно и вышло.

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

Начало курсов прошло "как по маслу": было довольно просто (особенно после сложного курса на coursera). А затем всё курсы становились сложнее, и опять начались проблемы со временем.

Курсы представляли собой:
- два вебинара в неделю по 2 часа (живой преподаватель по телеконференции);
- методички по несколько десятков страниц;
- домашние задания.
Хотя живые преподаватели в плане временных рамок сдачи домашних заданий и оценки качества работ были более лояльными, чем бездушные роботы Яндекса и МФТИ, сдавать всё во время - это был единственный способ успеть всё сдать до окончания курсов. Да, и вообще, кому это нужно, чтобы ты учился за заплаченные тобою деньги: тебе или учителю? - не в школе же...

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

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

Прошло около полугода, прежде чем ко мне пришли две жабы (моя собственная и супруги). Они втроём вместе с самой супругой убедили меня продолжить обучение. Я нашёл в себе силы освежить в голове пройденный материал, прочесть книжку "Архитектура компьютеров" (читал запоем) и взяться за новые курсы (из уже оплаченных). Дело вновь стронулось с мёртвой точки, я с удвоенными силами и энтузиазмом принялся "грызть гранит науки". Хватило меня ещё на пару месяцев, а потом...

Потом случился январь-февраль текущего года - точка принятия решения:
- я в кой-то веки выбрался "на моря" в отпуск, после прибытия обратно у меня началась суровая депрессия, от которой отошёл только недавно;
- взятый мною новый темп обучения в очередной раз доканал меня: доходило до того, что я мог день отпахать на работе, прийти домой, посмотреть вебинар, потом всю ночь делать задание, затем в 5 утра выехать на работу, где-то посреди пути поспать в машине минут 40-50 и ещё целый день работать; понятное дело, здоровья и счастья такие выкрутасы не прибавляли;
- времени перестало хватать вообще на всё: всё занимало работа (за которую, на минуточку, мне платят деньги и которую, поэтому, я выполнял на все 100%) и учёба; какие-то мелкие бытовые дела - как в дыму (хз, что там было);
- я полностью и безоговорочно разочаровался в текущей профессии (тут много причин, сейчас не об этом).

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

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

Открыв в очередной раз hh.ru, я с радостью для себя обнаружил, что требования  к кандидатам в вакансиях на программистов превратились из: "1. dsnksndcsdbc; 2. bsdybcisyu; 3.oizukbjhwbe; ну и, хорошо бы kjsndlksudn, lskjdn sdsdm" во вполне вменяемые названия областей знаний и технологий.

На скорую руку я оформил резюме по типу "я маленький, но гордый птыц, я умею тыц-тыц-тыц; пусть подтверждённого опыта немного, но я могу много чего иного". Затем стал потихоньку раскидывать резюме всем тем, под чьи требования я хоть сколько-нибудь подходил. Я старался не кидать резюме на те вакансии, где моей компетентности не хватало. Игнорировал я только опыт работы: вместе "без опыта" я включал в свою рассылку и интервал "1-3 года", а иногда и больше.

Вакансий в феврале было немного (совсем не трансферный период), работодатели отвечали неохотно и в основном отказом. Первое собеседование выдалось только через пару недель. Мы поговорили и разошлись: их не устроил уровень моих ответов на технические вопросы. "Ну, не беда", - подумал я и пошёл дальше учиться.

Затем последовала нескончаемая череда отказов без собеседований. Мне пришлось пересмотреть свои зарплатные ожидания на 10% ниже от первоначального, а также очень внимательно переписать текст в резюме. Сохранив общую идею о том, что я меняю профессию и поэтому боевого опыта в программировании у меня нет, я изложил текст резюме более строго, что ли? Это помогло, собеседования стали появляться... по 1-2 в неделю.

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

На конец мая у меня набралась небольшая коллекция отказов на собеседованиях. Лучшее из них "Вы нам не подходите потом, что":
- "У вас слишком высокие амбиции. Вы через год заходите повышения с %оченьмалоденегдлямосквы% на %чутьбольшеденег%. А вот Володя уже 10 лет здесь работает и не жалуется" (я был несказанно рад за Володю);
- "У вас нет опыта работы" (да-ладно?! это была первая строчка в моём резюме);
и гран-при:
- "Всё хорошо. Мы вам будем платить %вмакдакеплатятбольше% первые 3 месяца, пока вы учитесь; затем будем платить %вмакдакеплатятвсёещёбольше% ещё 6 месяцев, а уже когда Вы начнёте приносить прибыль фирме %вмакдакестольконеплатятнокэтомумоментувысдохните%".

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

Как известно, в при трудоустройстве в IT сфере очень часто либо до, либо после собеседования нужно выполнить тестовое задание для подтверждения знаний в области профессиональной деятельности.

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

С тестовыми заданиями вышло всё очень хорошо. Я не отказывался писать тестовые задания ни в одной конторе, которая предлагала мне его пройти. За несколько месяцев у меня набралось несколько программ в репозиториях (места для обмена программами), которые, по факту, стали моим каким-никаким "портфолио". Очень удачно получилось.

С другой стороны, когда я стал искать работу и выполнять тестовые задания, пришлось подзабить на учёбу в очередной раз (на основную работу-то не забьёшь).

Затем были ещё менее интересны собеседования. Всего к настоящему моменту штук 10-15 прошёл. Немного, но все, в основном по делу. Все с отказом. "Ничего, - думал я, получая очередной отказ. - Моя работа меня найдёт". Так, собственно и вышло.

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

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

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

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

Как стать программистом (мой опыт) Длиннопост, Текст, Трудоустройство, Программист, Обучение, Личный опыт, Гифка

Всем хороших выходных.
Пойду посплю - и дальше учиться.

P.S. картинки не мои - стащил из поискового запроса. Баянометр агрится на них.