Привет, заинтересованный читатель! В этой статье я хочу порассуждать о том, можно ли сменить профессию (а именно — переучиться на программиста) после 30 лет. Возможно, мой опыт кому-то окажется полезным.

С детства, с пятого класса, я ходил на олимпиады по математике (и не только), потом был физмат лицей... Жизнь шла своим чередом, и вот в 17 лет я обнаружил себя на первом курсе механико-математического факультета. Бакалавриат, магистратура. Первое знакомство с HTML. После универа — 2 года работал учителем в школе (преподавал математику и информатику). Потом захотелось поступить в аспирантуру.

В научной среде у нас до сих пор много хороших людей! Во всём помогут, всё расскажут и покажут — только учись, вникай, разбирайся. Получай новые результаты, публикуй по 1–2 исследования в год...

Только вот в финансовом плане перспективы профессии научного сотрудника не радужные. И чем дальше — тем отчётливее начинаешь это понимать. Посмотришь на однокурсников, друзей и знакомых с младших курсов: кто в банки или в страховые компании устроился, кто-то занялся веб-разработкой или программированием мобильных приложений. Вот тут и вспомнился мой опыт программирования на Pascal, Delphi, немного на C++, а также написания несложных страничек на HTML. И я решил его развивать.

Как я учил HTML/CSS

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

Надо было найти что-то вроде базового учебника. Мне повезло найти сайт htmlbook.ru. В начале 2010-х он был ещё без навязчивой рекламы (теперь-то я знаю, как это лечить).

Последовательно читая раздел «Самоучитель HTML» и пробуя всё новое своими руками, буквально за месяц я ощутил силу языка разметки гипертекста! Потом был «Самоучитель CSS» на этом же сайте. Опять же, не спеша, в свободное время, я углублялся в код — как в чужой, так и в свой. Второй самоучитель я уже не стал дочитывать до последней корки — чаще обращался к справочным разделам или поиску сразу по ключевым словам.

Таким образом, в неспешном порядке, исключительно в свободное время, я освоил вёрстку с помощью HTML/CSS, можно сказать, в совершенстве. Ставлю себе 95 баллов из 100.

Теперь об HTML с высоты своего опыта я могу сказать (не сильно преувеличив), что он прост, как огурец. А вот процесс обучения мастерству оформления веб-страниц у меня непрерывно продолжается. Частенько обращаю внимание на заметки о CSS в сети: очень интересные встречаются эффекты, в том числе и эффекты анимации.

Также отмечу сайты w3schools.com и caniuse.com. Первый является учебником от разработчиков HTML/CSS, а потому, наверное, наиболее полным. Второй — отслеживает все существующие версии самых популярных браузеров и всегда может ответить на вопрос, начиная с какой версии в них будет работать то или иное CSS-свойство.

Как я учил PHP

Когда питомцы вырастают до определённых размеров (здесь я имею в виду pet-projects на HTML), приходит понимание, что уже использованных технологий явно не хватает. Да, 5–10 однотипных страниц сайта ещё можно сверстать вручную. Но что делать, если их нужны сотни?

Сначала я вспомнил о языке XSLT. Познакомился с ним ещё когда-то давно, где-то на третьем курсе. Но очень скоро выяснилось, что XSLT стал тупиковой ветвью эволюции сайтостроения. Не только я так считаю: на момент моего второго обращения к этому языку фирма Apache уже прекратила развивать свой проект Forrest.

Само собой, очень скоро поиск технологий привёл к PHP. Сайт, с которого началось моё изучение PHP, почему-то сейчас найти не могу. Видимо, это был чей-то не очень долго живущий pet-project, который просто не выдержал конкуренции с php.net и php.su.

Метод изучения всё тот же: чтение первых 10–20 уроков самоучителя с честным выполнением всех предлагаемых там заданий. Дальше – начал внедрять полученные знания в своих сайтах, в тех случаях, где давно не хватало подобной шаблонизации. Поиски разнообразных «how to» очень быстро привели к сайту stackoverflow.com, который, как оказалось, содержит ответы не только по PHP.

Признаюсь честно — дальше первых разделов по ООП на PHP я не пошёл. Конечно, если вы планируете работать в командах над большими проектами, то учтите, что надо уметь обращаться с популярными фреймворками PHP. А там сплошное ООП... Но для моих повседневных нужд базовых знаний уже хватало. Более того, давно назрела потребность помимо тренировки на своих собственных, никому не подотчётных проектах, выйти на широкую дорогу... Короче, конвертировать свои знания в деньги.

Как я познакомился с WordPress

Накануне своего 30-летия я прошёл собеседование на работу в офис. Это была контора, которая разрабатывала платные темы для WordPress.

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

Нас, таких «эникейщиков», набрали 5 или 6 человек. С недельку нам почитали лекции о том, как вообще работает WordPress, в какой последовательности лучше разрабатывать тему, как создавать шорткоды и т. д. Знания PHP пригодились, хотя в штате был опытный программист и самый жёсткий бэкенд писал он. Мы же брали готовый код и слегка адаптировали его под нужды конкретной темы. Так что самой творческой нашей задачей было написание HTML/CSS. Но намного больше было рутины: нужно было проверять, как выглядят разные страницы во всех возможных случаях. Ведь пользователь может включать и выключать разные опции, виджеты, слайдеры — и в любом случае вёрстка должна корректно работать на всех девайсах при любой ширине экрана.

Конечно, знакомство «изнутри» с одной из самых популярных в мире CMS была для меня полезным опытом. Кроме того, здесь я познакомился с LESS и SASS — инструментами для валидации, а также минимизации кода.

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

Изучение JavaScript

Чего не хватает новичку в веб-разработке со знаниями HTML/CSS и основ PHP? Естественно, умения писать грамотный код на JavaScript. Да, я уже знал, что к сайтам подключаются скрипты (иногда даже в избыточном количестве), среди которых очень часто встречается jQuery, а также всевозможные слайдеры и галереи. Но в глубине души я чувствовал, что это — уже надстройки. А изучать язык нужно с основ.

Толковым сайтом по JavaScript мне показался learn.javascript.ru. Там же я записался на платные курсы (Илья Кантор). Возможность задать вопрос, а также получить фидбэк по своему домашнему заданию — это действительно важно.

Первые темы — основы языка — давались легко. Ведь чем больше языков знаешь, тем легче изучать новый. Но вот вторая часть — документ, события, интерфейсы — это был уже постепенный взрыв мозга! Процент выполнения домашних заданий по этой теме у меня резко просел, пришлось перечитывать некоторые главы по 2–3 раза.

Порог вхождения в браузерные события JavaScript, а тем более в Node.js (по сравнению с PHP) мне показался высоким. Но и возможности, которые дают эти технологии, очень серьёзные.

Как я работал в веб-студии

Вооружившись свежими знаниями, в августе 2015 года я устроился на испытательный срок фронтенд-разработчиком в небольшую веб-студию. Мы делали уже более серьёзные проекты, чем просто «Ещё один сайт на WordPress». В команде было уже 3 фронта и 3 бэка (и ещё набирались новые).

Здесь я на практике познакомился с github.com, более глубоко разобрался с CSS-препроцессорами, получил представление об особенностях вёрстки email-рассылок, о tpl-шаблонах и других полезных вещах. Контроль рабочего времени вёлся специальной программой, которую пришлось ставить на свой ноут (да, в этой конторе пришлось работать со своим ноутом). А контроль выполнения задач – в basecamp.com.

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

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

Первый опыт фриланса

Начитавшись на Хабре статей о прелестях свободного графика, в начале 2016 года я начал регистрироваться на разных фриланс-биржах. Как оказалось, здесь непросто быстро разогнаться.

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

Заказчики, у которых нет отзывов, могут обманывать. Был такой случай, что просто отдал работу за бесплатно, поверив на слово, что оплата будет. Теперь работаю только через сейф или с частичной предоплатой (исключения – только хорошо знакомые заказчики).

А ещё бывает, что заказчики не совсем чётко описывают задачу. То есть сдаёшь работу – а оказывается, что за эти деньги ты должен был сделать ещё два вагона и маленькую тележку. Столкнувшись с таким явлением, теперь гораздо внимательнее отношусь к согласованию ТЗ.

Иногда бывает соблазн взять одновременно несколько проектов. Особенно если хорошо платят. Но потом постепенно приходит понимание, что по ночам, вообще-то, нормальные люди спят. 😊

Каких результатов я достиг?

Регулярно выполняя проекты, связанные с разработкой и обновлением сайтов, я, конечно, пополняю копилку своего опыта. Уже после работы в веб-студии я освоил Bootstrap, познакомился с другими CMS, углубился в CSS-анимацию.

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

Немаловажными также являются навыки планирования своего рабочего времени и общения с заказчиками.

Как подтвердил мой опыт (довольно поверхностного) знакомства с Angular и Node.js, после 30 мозг уже не так быстро схватывает новые знания, как в 15 лет. Тут хочется сказать: дети, учитесь верстать и программировать уже в школе! Но на другой чаше весов – жизненный опыт, знание разнообразных программ, широкий кругозор, умение общаться с людьми и выполнять обещания. Учитывая всё это, освоить новую специализацию (я не имею в виду абсолютно незнакомую профессию) не так сложно.

Офис vs фриланс: что лучше?

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

Мой девиз – не беру проекты «до утра», «до вечера» и тем более «на вчера». Качество требует разумных сроков!


Благодарим Александра за то, что поделился своей историей! Мы любим читать о ваших успехах. И наши читатели тоже! Хотите больше историй в блоге? Расскажите нам о поисках себя в IT!