Сообщество - Типичный программист

Типичный программист

1 438 постов 6 710 подписчиков

Популярные теги в сообществе:

10

Почти с нуля до первого продукта: как я в 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.

Скорее всего, с точки зрения опытного разработчика здесь не всё идеально, но главный результат для меня — это работающий сайт, ведь я не профессиональный программист, а самоучка и всё ещё учусь.

Спасибо всем, кто прочёл мою статью, а я побежал кодить новый проект.

Показать полностью 17
Отличная работа, все прочитано!