Коротко — вы уже на хорошем пути. Но чтобы понять свою точную позицию и конкурентоспособность, нужно оценивать не только «сколько времени программируете», а что именно умеете делать и как это видно внешнему миру (репозиторий, портфолио, умение объяснить свою работу). Ниже — практическая инструкция, как это проверить и что делать дальше.
1) Как объективно оценить сейчас
- Посмотрите на реальное «выходное»: есть ли рабочие проекты в GitHub/на диске, которые можно запустить и показать. Вы уже сделали мессенджер — это большой плюс.
- Проверьте базовые навыки:
- Версии кода в git и умение работать с ветками?
- Умеете ли объяснить архитектуру проекта и почему выбрали socket+threading, как организована авторизация, какие есть уязвимости?
- Есть ли README, инструкция по запуску, скриншоты/видео демо?
- Есть ли тесты или хотя бы ручная проверка основных сценариев?
- Алгоритмы и структуры данных: можете ли решать простые задачи на массивы, строки, деревья, рекурсию за 20–40 минут? (Это важно для собеседований.)
- Общие инженерные навыки: отладка, логирование, обработка ошибок, работа с базой данных/файлами, асинхронность.
- Софт-скиллы: умеете ли описать проект, принять код-ревью, работать в команде, общаться устно/письменно.
- Видимость: есть ли публичный профиль (GitHub) с понятными проектами и активностью?
2) Как себя позиционировать (реалистично)
- На 3–4 месяце самостоятельного изучения — вы скорее начинающий (beginner/junior-intern). Ваш мессенджер — сильный проект для этого уровня.
- Конкурентоспособность против таких же новичков высокая, против кандидатов с годами опыта — низкая. Но для стажировок, домашних лабораторных, участия в хакатонах и фриланса на простые задачи вы конкурентоспособны.
- Возраст (14) даёт некоторые ограничения на официальную работу, но не мешает стажировкам, учебным проектам, open-source и фрилансу.
3) Конкретные шаги, чтобы повысить конкурентоспособность (план на 3–12 месяцев)
- Упакуйте проекты:
- Загрузите код в GitHub с понятным README: как запустить, какие зависимости, демонстрация работы (скрин/видео).
- Добавьте описание задач, которые решает проект, какие сложности преодолели.
- Улучшите код проекта-мессенджера:
- Хранение паролей — хешировать (bcrypt) вместо plain text.
- Подумать о безопасности: авторизация, проверка данных, защита от инъекций/спуфинга.
- Добавить persistent storage (sqlite) для пользователей/сообщений.
- Реализовать тесты на ключевые функции.
- Сделать простую демонстрацию развёртывания (например, Docker или запуск на Replit/VPS).
- Рассмотреть использование asyncio или high-level библиотек (websocket, aiohttp) — но это опционально.
- Освойте необходимые инструменты:
- Git, GitHub — ветки, пулл-реквесты, README.
- Основы HTTP/REST, базы данных (SQL), базовая сеть (TCP/UDP), основы безопасности.
- Практика алгоритмов:
- Решайте задачи на Codeforces/LeetCode/Timus/Stepik — хотя бы базовые категории.
- Получайте фидбек:
- Попросите опытных программистов посмотреть код (форумы, Telegram/Discord сообщества, хакспейсы).
- Публикуйте проекты в сообществах — просите код-ревью.
- Публичность и портфолио:
- Соберите 2–4 небольших проекта разного типа (CLI/GUI/web/network), каждый с README и демо.
- Сделайте личную страницу или раздел в GitHub с описанием проектов.
- Участвуйте:
- Хакатоны, школьные / региональные IT-конкурсы, open-source проекты.
- Возможные микозаказы/фриланс (простейшие задания) — для опыта и отзывов.
- Учёба и сертификаты:
- Продолжать курсы (Stepik, Coursera, freeCodeCamp) и выкладывать проекты из курсов в портфолио.
4) Как проверять прогресс (метрики)
- Количество и качество публичных проектов + наличие README и демо.
- Количество решённых задач на платформе по алгоритмам (цель, например, 50 простых/20 средних).
- Наличие отзывов/код-ревью от других разработчиков.
- Успех на соревнованиях/хакатонах/интернатурах.
- Количество откликов на заявки/приглашений на стажировки.
5) Куда можно двигаться сейчас (реальные цели для 14 лет)
- Устроиться на стажировку/менторство в локальной IT-школе или к фриланс-заказчику на простые задачи.
- Вступить в open-source проект как начинающий контрибьютор (исправлять баги, писать документацию).
- Участвовать в хакатонах/командных проектах — это ценится сильнее одиночных демо.
- Готовить портфолио для подачи в профильные летние школы и курсы.
6) Быстрые рекомендации по улучшению мессенджера (с учётом того, что вы уже реализовали)
- Переписать авторизацию так, чтобы пароли не хранились в открытом виде.
- Разделить логику сервера/клиента по модулям, добавить обработку ошибок и логирование.
- Добавить тесты на основные команды (/kick и т.д.).
- Сделать простой протокол сообщений (JSON с типом сообщения), а не ad-hoc строковые парсеры.
- Записать короткое видео-демо и поместить в README.
7) Как понять, готовы ли вы на собеседование/стажировку
- Можете за 5–10 минут объяснить архитектуру своего проекта, почему приняли технические решения.
- Можете показать работающий код в репозитории и запустить демо.
- Решаете базовые алгоритмические задачи (по крайней мере easy/medium).
- Понимаете основы git и умеете присылать pull request с изменениями.
Если хотите, могу:
- Просмотреть ваш README/описание проекта и дать конкретные советы;
- Составить чек-лист изменений для мессенджера (безопасность, тесты, README, деплой);
- Помочь с планом обучения на 6 месяцев, ориентированным на стажировку.
Хорошая новость: у вас уже есть реальный проект — это редкость для 3–4 месяцев обучения. Систематическая упаковка, улучшение кода и получение фидбека быстро поднимут вашу конкурентоспособность.