Можно ли стать программистом после 45?

дисклеймер: долго и сложно, но можно.


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

Исходные данные: молодой (ой-ли?) человек 47 лет. До начала вникания в роль программиста предыдущие 27 лет программированием, можно сказать, не занимался. Еще раньше, на первых курсах института, параллельно с учебой на инженера, трудился программистом на Lisp для Autocad и позже на С без углубления в объектно-ориентированное программирование и С++.

Текущие данные: постоянное проживание в европейской стране (об этом побеспокоился заранее). Занимаюсь своим небольшим бизнесом. На жизнь хватало до недавнего времени.


Итак, первые мысли появились примерно лет пять-шесть тому назад. Для своей работы потребовалась табличка с расчетами и было решено сделать её в Excel. Попробовал и результат не удовлетворил. Нужно что-то более сложное, чем простые арифметические операции над ячейками. В Excel есть встроенный язык программирования Visual Basic, пришлось с ним разбираться и вспоминать ученические годы. Это не совсем программирование в современном понимании, но уже что-то.


Некоторое время пользовался и всё бы хорошо, но начался ковид. Границы закрылись и мой бизнес начал постепенно проседать. Работа у всех ушла в онлайн. Мне тоже надо было что-то придумывать. Первой мыслью было перенести содержимое расчетной таблички на простенький сайт и сделать возможность заказа по расчету. У моих конкурентов свои сайты уже были, и я как бы априори опоздал. Плюс после откровенного общения с некоторыми из них определился примерный диапазон стоимости их сайтов - от 7000 евро. И это не просто странички. А значит, если я сделаю простую страничку, то мне это никак не поможет. Заказать сайт "на стороне" по разным причинам, в том числе финансовым, уже не было возможности и начал поиски других вариантов решения ситуации. Всё сводилось к тому, что надо делать перелопаченный аналог интернет-магазина. Посмотрел в сторону WorldPress, его ещё называют конструктором сайтов и якобы можно творить без знаний программирования. У него есть плагины для создания своего магазина. Потом рассматривал множество других программ и сервисов, но в итоге довольно быстро пришло печальное понимание, что всё вышеперечисленное мне не подходит. У меня на сайте должны быть расчеты для конечного заказа и они не совсем простые.


Значит надо начинать писать свой сайт. Я ж "крутой", в Excel смог и тут смогу! Наивный... С одной стороны, перелопатив кучу информации о создании сайтов, я уже понимал, что ввязываюсь в опасную для себя авантюру, могу не вывезти. С другой стороны, ситуация не оставила мне шанса. Тогда мне казалось, что я справлюсь и смогу победить "всё и всех" довольно быстро. Для начала моей задачей стало параллельно с основной работой по вечерам изучать HTML и CSS. Всё шло как по маслу. Это не программирование, а скриптовые языки. Чтобы было понятней несведущему человеку - HTML и CSS это как рецепт борща - описаны ингредиенты, время и последовательность применения, но каждый сам рубит/варит/применяет по описанию как сумеет. Я сумел и стали получаться первые странички, в том числе и моя прежняя с расчетами, только без самих расчетов. В изучении сильно помог YouTube. Знаний английского у меня, к сожалению, нет и пришлось искать только на русском. В поисковике регулярно стала появляться всё новая и новая реклама каких-нибудь курсов, то по программированию на PHP, то HTML, то CSS или JS. Решено было посмотреть что это реально за курсы, качество преподавания, уровень. На торренте найдена пара курсов, просмотрена. Сделал вывод, что оно того не стоит, по крайне мере для меня. Всё тоже самое есть бесплатно либо в текстовом виде на просторах интернет, либо в роликах на YouTube. Открыл для себя автоматический перевод на YouTube сказанного по-английски в субтитры по-русски. Говорят сумбурно, но в целом понять можно. Так добавился и англоговорящий сегмент интернета.


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


Прошло с полгода от начала изучения HTML и первый результат мне наконец-то понравился. Страничка с одним расчетом была готова, она была лучше и красивей экселевской. Пока решаешь поставленную самим собой задачу за основной работой не хватает времени толком присесть и подумать. Казалось бы, всё хорошо и красиво, но уже понимаю, что один расчет - слишком недостаточно и надо делать остальные. Без них страничка всё еще остается простой страничкой, на которую заказчики не придут. Надо сделать все расчеты, надо прием заказа с отправкой email и мне как исполнителю, и клиенту о том, что заказ принят. Параллельно возникло много вопросов про учет клиентов, ведение хоть какого-то документооборота, да хоть учет тех же поступивших заказов... Млять!


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


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


Лендинг самому себе сдан, работает. Очередной этап за спиной, но реального результата как не было, так и нет. Состояние "тоска-печаль". Усилием воли поднимаю опустившиеся руки и намечаю следующую цель. Верней возвращаюсь к старой - нужен перелопаченный интернет-магазин. Вариантов движков множество, надо найти оптимальный для меня. Magento, WordPress c Woocommerce, OpenCart, PrestaShop и т.д. и т.п. Раз уж начал делать сам, вот и нефиг теперь уже кому-то платить. Только дольше буду объяснять программисту уже мной сделанное и все взаимосвязи при расчете. И снова муки выбора, куча сравнений, отзывов. Выбор пал на бесплатный OpenCart. По сравнению со статичными страничками это уже другой уровень, тут уже начинается полноценное программирование. Обойтись готовыми решениями из интернет на JS или jQuery уже не получится. Надо всё фигачить самому.


Стандартная настройка фреймворка меня в целом устраивает, в нём есть много готовых нужных мне модулей - раздел для администратора, регистрация и учет клиентов, мультивалютность, многоязычность, и... как выяснилось позже - для меня всё, остальное мне или не нужно, или пришлось переделывать самому. Решил делать учет выписанных счетов, выставление в PDF и отправку их на email, расчет нескольких вариантов доставки и их стоимости, систему купонов и скидок для разных групп заказчиков, прием предоплаты карточкой, генерацию QR-кода для оплаты банковским переводом, много еще чего... Если уже делать, то так, чтобы самому нравилось, когда заходишь от лица клиента.


Теперь внутренняя структура моего будущего сайта снова будет меняется. Да японский городовой! А-а-а!.. Как оказалось, расчеты надо делать на стороне сервера, а не в JavaScript на стороне клиента. Клиент не должен получать на свой компьютер вместе с загруженной страничкой и модуль расчета, он не должен знать как и что делается, из чего что складывается. Серверная часть пишется уже на другом языке программирования, на PHP. И снова в бой, снова изучать! Надо все расчеты переписать с одного языка на другой, с JS на PHP. В отличие от JavaScript язык PHP не встроен в браузер, его надо ставить отдельно. Значит изучаем возможности Open Server - выбрал этот пакет, потому что не нужна установка, он бесплатен и в нем есть всё, что требуется для серверной части от PHP и базы данных до хрен знает ещё чего. Делавшие его ребята круты как никто. Переношу все свои исходные данные для расчета в базу данных. Звучит просто, но новичку типа меня пришлось снова разбираться с самых основ что это вообще такое и чем отличается MySQL от того же Excel.


Когда что-то делаешь, хочется видеть результат, визуальные изменения на сайте. Серверная часть скрыта, она напрямую не влияет на внешнюю составляющую. Чтобы хоть как-то скрасить свою работу, начал не с реализации следующих расчетов, а с переделывания "корзины", выписки фактур, новостной колонки и пр. функционала. Оформил подвал сайта, раздел контактов, описание фирмы. На этот момент мной изучено далеко не досконально, но более-менее юзабельно HTML, CSS, JavaScript, PHP, Twig, MySQL запросы. Все модули для MVC framework OpenCart пишу для себя самостоятельно.


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


Примерно 20 декабря зарегистрировался на LinkedIn, сфотографировался и оформил по интернет-рекомендациям свою страничку. Описал что знаю и умею, дал ссылки на оба своих сайта - на лендинг и на сайт с расчетами. Сделал акцент на знание MVC framework, JS, PHP, Twig, подписался на рассылку вакансий по двум направлениям: JS и PHP. Система предложила добавить свой флажок на аватарку, что я в активном поиске работы. Первое, что меня удивило, так это количество вакансий - их дохрена и все местные. Что расстроило - 8 из 10 были на английском. Печаль, потому как английским не владею, а работодателем предполагается всё общение в команде как раз на нём. Ещё сильно сужало поиск работы то, что мне нужна была удалёнка, свою фирму бросать не собираюсь. Вначале попробовал отозваться на вакансии PHP-разработчика, это показалось более перспективным и востребованным, чем JS. Местные обычно никуда особо не торопятся, да и на носу было европейское рождество, но к моему удивлению на следующее утро отозвалась первая фирма, назовём её "А". Онлайн разговор через Microsoft Teams назначили на вечер следующего дня, рекрутер прислала мне ссылку-приглашение. При разговоре ничего особенного не обсуждалось, просто спросила как долго я тут живу, какой опыт программистом, что умею и есть-ли что показать из готовых проектов. Послушала, чуток рассказала о своей фирме. На вопрос согласен ли сделать их текстовое задание ответил утвердительно. После разговора прислала архив, в котором был csv-файл и текст задания: написать программу на PHP, которая загрузит csv-файл в базу данных с разбивкой по колонкам. Потом выведет таблицу на экран с возможностью сортировки по колонкам и по суммам. Как дополнительное необязательное задание - сделать пагинацию. Сроки выполнения задания оговорены не были, у меня впереди были выходные дни и местное рождество. Сделал всё, как мне показалось, в лучшем виде, включая пагинацию. Вывод на экран сделал через ajax без перезагрузки страницы. Выложил работающую программку на свой сайт в отдельную папку и отправил им на неё ссылку плюс архив с файлами. То ли рождество, то ли ещё что, но на моё письмо они не отреагировали.


Первые мои мысли, что стар я для всего этого, не возьмут меня. Отправил свое резюме еще в пару фирм и так понемногу, день за днём, дело сдвинулось. Объявились рекрутеры, стали отзываться фирмы. Всего я за две недели отреагировал примерно на десяток вакансий, мне писали 4 или 5 рекрутеров. В другой отозвавшейся мне фирме, пусть будет "В", также пожелали тестовое задание, поспрашивали что могу. Из заинтересовавшего меня - попросили прислать им результаты с сайта codewars.com. Попробовал, понравилось, интересно, но занимает неприлично много времени, чтобы достичь хорошего результата и ответить им. В итоге после нескольких переписок мне отказали - им нужно знание PHP-фреймворка Symfony, о котором я не знал ровным счетом ничего. Codewars несколько зацепил, постепенно повышалась и сложность задач. Пока остановился на выполнении заданий из 4 kyu, на следующие уже сейчас нет времени.


Еще одной довольно занимательной вакансией была русскоговорящая фирма, рекрутер которой написала мне сама. Им требуются и джуниоры, и сеньоры. Работа только в их офисе, без удаленки, зарплата джуниора заявлена от 1400 евро/мес, что довольно мало по местным меркам. Джуниору надо якобы знать только PHP, JS и еще по мелочи. Всё покажут, научат. Не стал им отказывать сразу, попросил прислать их тестовое задание для сеньора. Прислали для джуниора и оказалось, что тому надо знать Laravel, роутинги и прочее-прочее. Как потом сказала девушка рекрутер - этот архив был заданием на сеньора, но как внутри оказалось текстовое описание для джуниора объяснить не смогла.


И тут снова отозвалась первая фирма "А". Оказалось, что технический руководитель растянул себе рождественские праздники на новый год и вот только вернулся из такого отпуска. После совместного онлайн-разговора, как мне показалось со снисходительной улыбкой, приняли моё выполненное задание. Рекрутер призналась, что ей было дано задание искать именно возрастного программиста, потому как их команда в целом такая и многие молодые у них не приживаются. На вопрос работал ли я с Symfony ответил, что знакомился и пробовал, но большого опыта не имею. Мне выдали второе тестовое задание уже на Symfony и с оговоркой, что оно будет оплачиваться как положено и на выполнение мне отводится 20 часов чистого времени. Если потребуется больше, то сообщить сначала им. Тут уже меня начало слегка колбасить - я еще толком не знакомился с Symfony, пару роликов на YouTube просмотрел лишь поверхностно. Второй момент - по описанию второе задание не отличается фундаментально от первого, но оплата мне ими была назначена по уровню как для мидла или сеньора по нижнему тарифу. Это меня в моей ситуации устраивало более чем. Снова мне повезло и для выполнения задания впереди меня ждали выходные дни и я мог их потратить на изучение Symfony. Ничего за два-три дня толком изучить мне не дано, делал больше по наитию и с массой оговорок. Даже выложить на свой сайт полуготовый проект мне не удалось, отправил им только файлы архивом. И... снова тишина в ответ. Да что за засада!


Всю неделю я поглядывал новые вакансии, вяло переписывался с рекрутерами, но к моей радости через примерно неделю отозвалась фирма "А". Технический руководитель заболел ковидом, моё второе тестовое задание скорее всего даже не смотрели, а просто приняли. Назначили дату моего к ним приезда для личного знакомства и подписания документов. Все прошло довольно спокойно, как-то буднично. Никого моё иностранное происхождение и акцент не смущал, ну или не подавали вида. Из иностранцев похоже я у них единственный. Вся работа будет на удаленке, выход на связь один-два раза в неделю. Если что непонятно - обращаться вот к этому сеньору, он твой условный куратор, который введет в курс дела. Пока на этом точка. Моя задача справится с мандражом и осилить Symfony. Если есть специалисты, буду рад советам или возможности к вам за ними обратиться.

Что ответить в моей ситуации на вопрос: можно ли стать программистом после 45?

Я для себя ответил - долго и сложно, но можно.

Лига программистов

1.5K постов11.4K подписчиков

Добавить пост

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

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