
Типичный программист
Почти с нуля до первого продукта: как я в 46 лет научился программировать и в 49 создал полноценный сайт
Помните компьютеры Дельта-С ? Нет? Тогда вы явно моложе меня 😄. В школе родители купили мне этого железного друга со встроенным бейсиком, и я влюбился в программирование. Но потом, во взрослой жизни я уже никак не касался программирования, а технологии разрослись настолько, что мне казалось — поезд ушел навсегда.
Возвращение блудного программиста
В 46 лет я решился на безумство — пошел на курсы веб-разработчика. Курсы героически не закончил (всего-то 20% осталось 🤦♂️), но освоил HTML, CSS, JS и немного React. Главное — получил вектор развития и понял, что мозги еще работают! И дальше отправился в самостоятельное «плавание».
Идея века (или не очень)
Чтобы знания не улетучились, нужна была практика. И тут меня осенило: "А что если сделать сайт для создания электронных свадебных приглашений?" Подумал, что это будет легко — всего-то главная страница, личный кабинет, редактор и страница приглашения. Наивный я, наивный... 😅
Так родилась идея finemeet.ru — сервиса, который в итоге отнял у меня 2 года жизни, но зато какие это были годы!
Путь тернист и полон граблей
Дизайн в Figma — это было легко и приятно. А дальше началось веселье...
Фронтенд писал на ванильном JS с отдельным webpack'ом для каждой страницы (сделать все страницы с одним webpack'ом я не умел). А на главной странице анимацию сделал с помощью gsap, т.к. хотел попробовать его после поверхностного знакомства с ним.
Бэкенд решил делать на NestJS (многие его хвалили за несложность в освоении). Изучал по YouTube каналу "Давай Попробуем" (жаль, что его забросили).
База данных — MongoDB, потому что показалась легче в понимании.
Медиафайлы — мой личный ад
С фотографиями было относительно просто — сжимал через compressorjs. Но видео... Сначала пытался сжимать на фронте через ffmpeg — работало, но пользователи могут состариться, пока файл загрузится.
Потом додумался использовать serverless functions — и сразу стало легче! Функция автоматически срабатывает, когда файл загружается в S3, забирает его, пережимает и возвращает обратно. Сейчас все медиафайлы на finemeet.ru загружаются относительно быстро и хранятся в S3.
Карты, регистрация и прочие радости
Для карты изучал Yandex Maps API. Сначала использовал Геокодер, но там для бесплатного использования есть ряд ограничений. Теперь просто вставляю iframe, а координаты пользователи вводят сами — не Google Maps, но работает!
Регистрация через email казалась хорошей идеей, пока я не начитался про персональные данные. Быстро переделал на логин/пароль + секретный вопрос. Безопасность уровня "девичья фамилия матери", но зато никаких юридических проблем 😄
Капча от души
Как на всех серьезных сайтах, решил добавить капчу. Но не обычную, а свою, крафтовую! Потому что зачем просто, если можно сложно?
Деплой — финальный босс
Изучение Docker и Linux стало венцом моих мучений. И через 2 года в интернете наконец появилось моё цифровое создание!
Вот он — finemeet.ru 💍












Чему я научился (кроме терпения)
Это было намного сложнее для меня, чем я предполагал. Помимо полученных знаний на курсе пришлось самому познавать, пусть и поверхностно, но всё же:
- NestJS
- MongoDB
- Обработка медиафайлов
- Яндекс карты api
- Работа с email
- JWT (теперь знаю, что это не название группы)
- S3 хранилище
- Serverless functions
- Docker
- Linux
И еще тонну всего, о чём даже не подозревал в начале.
Мои лучшие учителя: StackOverflow, YouTube, Google Translate, а под конец — ИИ. Искусственный интеллект оказался отличным ментором: терпеливый, не ругается матом и не закатывает глаза на глупые вопросы.
Зачем я это рассказываю?
Во-первых, чтобы показать: начинать программировать в любом возрасте — нормально! Не бойтесь, что –
Во-вторых, чтобы немного засветить finemeet.ru — а то Яндекс про него не знает 😅
Ну и в третьих, если кто-то решится жениться, то может воспользоваться этим сайтом для приглашения гостей.
P.S.
Скорее всего, с точки зрения опытного разработчика здесь не всё идеально, но главный результат для меня — это работающий сайт, ведь я не профессиональный программист, а самоучка и всё ещё учусь.
Спасибо всем, кто прочёл мою статью, а я побежал кодить новый проект.

















