Как я стал программистом в 35 и стоит ли оно того?

image

Привет, Хабр!

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

Для чего я решил написать этот пост? Отчасти поделится опытом, советами, отчасти меня с подвигла на это статья «Как я не стал программистом в 35 лет», я тоже решил написать свой пост на схожую тему, но в то время у меня не были выполнены два условия: 1. Мне не было 35; 2. Я только устроился на свою первую работу разработчиком, но я считал что не могу называться программистом если не отработал в этой должности хотя бы 1 год. Сейчас все условия соблюдены, если вам интересно прошу под кат.

Для начала несколько слов о себе, мне 35, есть профильное образование ВТ и ПО, долгое время работал системным администратором, специалистом по инфраструктурным решениям и даже был И.О. ИТ директора крупной компании, но я понимал что начальником становиться не хочу, все эти «бумажки», совещания мне казались на 90% пустой тратой времени, да еще к тому же надо было лебезить перед вышестоящим начальством, чтобы быть на «хорошем счету», а мне все это не нравилось, конечно обязанности начальника я старался выполнять в полном объеме, поднял инфраструктуру в своей организации и в дочерних, пробивал курсы и технику для подчиненных в дочерних компаниях, способствовал повышению заработной платы нескольким толковым ребятам в области, но пришло время, я понял что я топчусь на месте и пора что то менять, я решил заняться разработкой.

Конечно многие из вас подумают «Ну конечно он итак айтишник, что тут сложного стать программистом?» и отчасти будут правы, у меня есть неплохая база, но программированием я практически не занимался, если не считать уроки по Turbo Pascal в школе, когда я писал листинг программы на тетрадном листочке, а потом с нетерпением ждал неделю чтобы на уроке информатики вбить код и проверить работает ли программа, в университете я учился заочно, программирования там практически не было, был Delphi, но там все ограничилось несколькими «лабами» с формами и каким то примитивным кодом, к слову когда я закончил университет, у меня уже было два года стажа по специальности «Инженер — программист», кстати если кто не знает раньше «инженер-программист» не всегда значило что ты программист, так называли системных администраторов, эникеев и вообще компьютерщиков, меня даже называли как то «кибернетчиком», я же отработал 2 года простым эникеем/системным администратором, то есть помогал пользователям с сетью, мышками и в то же время администрировал сервер документооборота Lotus Domino.

Но вернемся к основном теме поста, я решил стать разработчиком и преследовал 2 цели:
1. Я хотел создавать что то новое, а также быть причастным к чему то большому, при чем не просто обслуживать это, но и создавать;
2. Я всегда хотел иметь возможность работать удаленно, чтобы больше времени уделять семье и видеть как растут мои дети.

Я перепробовал несколько языков программирования, начинал учить Java, бросал, начинал снова, потом изучал C#, его я тоже бросил через пару месяцев, какое то время изучал JS и даже освоил создание SPA на стеке MEAN, но работы в моем городе на стеке MEAN не нашлось, было две вакансии для middle+ разработчиков, в одну компанию я даже сделал и отправил тестовое задание, но мне так и не ответили, даже при запросе обратной связи.

В итоге я нашел первую работу разработчиком на Python, с Python я был знаком и раньше, писал простые скрипты по работе, да и просто «баловался» делая парсеры курса валют или погоды, но всерьез язык не воспринимал, а зря… Работу нашел довольно быстро сходил на 2 собеседования на одном был «допрос» и меня смешали с грязью под смешки и ухмылки разработчиков и аналитиков сидящих в кабинете (да собеседование проходил в общем опенспейсе), во второй компании собеседование было быстрым и удачным, показал свои поделки на Python, показал простенький проект на Django «накиданный» за пару вечеров
и меня взяли на работу.

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

Совет №1. Подумать.
Да именно так прежде чем менять специальность в 35 лет, стоит хорошо подумать, надо ли вам оно? Как это воспримут ваши родные? Как это скажется на вашем бюджете? В каком состоянии сейчас ваше здоровье, как моральное, так и физическое? Конечно возможно вы только сейчас закончили смотреть первый сезон «Кремниевой долины» или «Мистер робот» и под впечатлением хотите влиться в этот дивный мир ИТ или может посмотрели какой нибудь завлекающий ролик про зарплату в 300к/сек. и работу на пляже с ноутбуком, но я вам категорически советую ПОДУМАТЬ! Подумайте не будет ли вас смущать если задачи вам будет ставить человек лет на 10 младше вас? А коллеги которые моложе вас на 10–15 лет, но уже намного опытнее? Не будет ли вам жалко потраченного времени? А может быть есть более простой способ увелить ваш текущий доход? Пройти курсы повышения квалификации или попросить прибавки у начальства? Может быть вы талантливый и опытный врач и принесете больше пользы здесь и сейчас? А может вам просто нужно сходить в отпуск? ПОДУМАЙТЕ!

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

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

Совет №4. Как учиться.
На этот счет тоже миллиард статей и видео, если вы лучше усваиваете информацию посредством видео, то смотрите видео, если текст то читайте документацию вашего язык или книжки, стоит ли покупать курсы? Даже не знаю в последнее время их столько, что сложно что то советовать, но если бы стоял выбор между онлайн и офлайн курсами, я бы выбрал второе, так как банально на офлайн курсах группы меньше и можно в ходе урока задать вопрос преподавателю. Мне же изучить основы Python помогла книжка «А Byte od Python», 150 страниц, на русском языке, очень понравилась. Не забывайте также про CS и английский язык, а так же основы GIT. В общем главное тут не как учиться, а главное иметь желание учиться, а способ вы найдете.

Совет №5. Как искать работу
Открываем hh и ищем вакансии, исключаем вакансии где явно написано Teamlead, Senior, Middle+ и необходимый опыт работы больше 2-х лет. Тщательно изучаете требования, не бойтесь задать вопрос по интересующей вас вакансии, даже если список требований внушительный, уточните рассматривают ли они на эту вакансию начинающих специалистов, попросите тестовое задание, лучше написать и уточнить, чем сразу подаваться на вакансию, если вы из крупного мегаполиса где есть офисы крупных ИТ компаний, то вам крупно повезло, обратитесь в HR отделы этих компаний и уточните есть ли там набор на стажировку или может нужны джуниоры.

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

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

Совет №5. Не работайте с мудаками
Наверное это один из самых ценных советов что я получал тут на Хабре и охотно делюсь с вами, это действительно так, лучше не работать с неприятными вам людьми, сэкономите кучу нервов, но к сожалению иногда приходится таких людей терпеть и как то уживаться с ними. Приведу свой пример устроился на работу, но так сложилось, что менеджер проекта крайне неприятный мне человек, который очень легкомысленно относится к проекту, не ведет никакой документации, не обсуждает с разработчиком сроки, перед тем как назвать их руководству, обещает, но не исполняет обещанного, но при этом он на хорошем счету у руководства, какое то время, около полугода мне пришлось с этим мириться, так как я живу не в огромном мегаполисе и найти работу разработчику без опыта ой как не просто, но со временем, как только я разобрался в проекте и стал представлять ценность как сотрудник, я начал работать на своих условиях, стал вести задачи в Trello, не соглашался на сроки пока их не обговорят со мной, настаивал на тщательном тестировании функционала перед «заливкой» в production среду, требую письменного подтверждения на каждое решение по изменению чего либо связанного базой данных или боевой средой. В общем я тоже стал мудаком, но мудаком который хочет порядка. Конечно надеюсь вам повезет и вы попадете в крупную компанию с Тимлидом, который будет давать вам небольшие и понятные задачи, с понятным и четким ТЗ и документацией, но если не повезет, то возможно почерпнете что то из моего примера.

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

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

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

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

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

P.S.
Извиняюсь если получилось сумбурно или вам не понравилось, я постарался описать свой опыт, показать как негативные так и положительные стороны, в любом случае больно не пинайте, но объективная критика приветствуется. Всем добра.

© Habrahabr.ru