ФронтендHTML / CSSJavaScript

Как сделать сайт-портфолио программиста: структура, проекты и публикация

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

Кодик

Автор

5 мин чтения

Хорошее портфолио за полминуты отвечает на три вопроса: кто вы, что умеете и где посмотреть работающий код. Для первой версии хватит одного адаптивного экрана, трёх честных проектов и понятных кнопок «Демо» и «Код».

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

1Формулируем

Одна роль, короткое обещание и стек без рейтингов.

2Доказываем

Карточка проекта показывает задачу, решение и личный вклад.

3Направляем

Контакты, резюме, репозиторий и демо доступны без квеста.

Что должно быть в первом портфолио

Разделите страницу на hero, проекты, краткую информацию и контакты. В hero оставьте одну главную кнопку. В проекте показывайте не только скриншот, но и исходную задачу, две технические детали, ссылку на демо и репозиторий.

РазделЧто положитьЧто убрать
Первый экранИмя, роль, специализацияДлинную биографию
ПроектыЗадача, вклад, результатСписок всех учебных файлов
О себеКонтекст и интересОценки навыков в процентах
КонтактыПочта и профильНеактуальные соцсети

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

Маршрут по портфолио
От обещания к доказательству. Каждый шаг виден без скрытого меню

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

Собираем страницу и карточки проектов

Ниже минимальный каркас. Сетка auto-fit сама переносит карточки, а clamp делает заголовок адаптивным без десятка точек перелома. Ссылки имеют понятные подписи, поэтому пользователь заранее знает, куда попадёт.

<header class="hero">
  <p class="eyebrow">Frontend-разработчик</p>
  <h1>Аня делает быстрые и понятные веб-интерфейсы</h1>
  <p>JavaScript, TypeScript и React. Люблю формы, доступность и чистые состояния.</p>
  <a class="primary" href="#projects">Посмотреть проекты</a>
</header>
<main id="projects" class="projects">
  <article class="project">
    <div class="preview" aria-hidden="true">Task Flow</div>
    <h2>Планировщик задач</h2>
    <p>Собрала фильтры, сохранение и управление с клавиатуры.</p>
    <ul><li>JavaScript</li><li>localStorage</li><li>CSS Grid</li></ul>
    <p><a href="https://example.com">Демо</a> <a href="https://github.com/example">Код</a></p>
  </article>
</main>
<style>
*{box-sizing:border-box}body{margin:0;color:#16182d;background:#f6f7fb;font:16px/1.6 system-ui}
.hero,.projects{width:min(1100px,calc(100% - 32px));margin:auto}.hero{padding:96px 0 64px}
h1{max-width:820px;font-size:clamp(2.4rem,7vw,5.4rem);line-height:1.02}
.primary{display:inline-block;padding:14px 20px;color:white;background:#5b4bff;border-radius:14px;text-decoration:none}
.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;padding-bottom:80px}
.project{padding:24px;background:white;border:1px solid #e2e4ef;border-radius:24px}.preview{padding:48px 24px;border-radius:16px;background:#16182d;color:white;font-size:2rem}
li{display:inline-block;margin-right:8px;padding:4px 10px;background:#eceaff;border-radius:999px}
</style>
Что должно работать после первого запуска

Первый экран сразу называет роль и специализацию. Каждый проект объясняет задачу и личный вклад. Демо и код открываются отдельными понятными ссылками. Сетка работает от 320 пикселей до большого монитора.

Описание проекта
Факты работают сильнее оценок. Сравнение показывает, какой вариант легче поддерживать и проверять.

Как описывать проекты без пустых прилагательных

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

Слабая фразаКонкретная версия
Современный сайтАдаптив от 320 px, Lighthouse 95+
Удобное приложениеДобавление задачи с клавиатуры, фильтры и localStorage
Работал в командеСделал форму и провёл два code review
Знаю ReactСобрал маршруты, запросы и состояния загрузки

Сохраняйте в одном месте то, что может измениться. Если одно и то же значение скопировано в три функции, после первой правки они начнут расходиться. Один объект состояния и одна функция отрисовки снимают эту проблему.

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

Практика: проверяем ссылки и телефон

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

Проверка своими руками
  1. Замените имя, роль и текст первого экрана.
  2. Оставьте три проекта, которые можно открыть.
  3. Для каждого напишите задачу, вклад и две детали.
  4. Проверьте все Демо и Код в приватном окне.
  5. Сузьте страницу до 320 пикселей.
  6. Опубликуйте через GitHub Pages и повторите проверку.
Готово, если выполняются все пункты

За 30 секунд понятны роль и стек. У каждого проекта есть доказательство: демо или код. Нет выдуманных процентов владения технологиями. Контакты работают, а страница читается на телефоне.

Проверка перед ссылкой
Четыре окна настоящего просмотра. Пройдите все четыре сценария перед публикацией проекта.

Доводим портфолио до публикации

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

Десять одинаковых учебных работ

Выберите три и объясните различия.

Ссылки ведут на localhost

Проверяйте в приватном окне и с телефона.

Прогресс-бары навыков

Процент ничем не подтверждён.

Анимация мешает чтению

Контент и фокус должны работать без неё.

Сверьтесь с первичным источником. Поведение используемых функций и ограничения примера проверяйте по документацией GitHub Pages. Документация особенно важна, когда меняются версии, политика платформы или формат ответа API.

Что получится в итоге

Готовый результат проекта: Как сделать сайт-портфолио программиста: структура, проекты и публикация
Финальная страница сразу показывает специализацию, три проекта с доказательствами и простой путь к контакту.

Короткие ответы
Сколько проектов достаточно для старта?

Трёх законченных и проверяемых проектов обычно полезнее, чем длинного списка одинаковых заготовок.

Что написать в карточке?

Задачу, личный вклад, две технические детали и ссылки на результат.

Что проверить перед отправкой?

Ссылки, мобильную ширину, клавиатуру и публичный доступ.

Как понять, что проект готов?

Он повторяет целевой сценарий несколько раз подряд, понятно реагирует на ошибочный ввод и не теряет состояние при обычных действиях.

Можно ли копировать код целиком?

Можно как стартовую точку, но сначала замените значения из примера, затем запустите проект по шагам. Если вы не можете объяснить одну строку, её лучше разобрать до следующего шага.

Опубликуйте доказательства, а не список технологий

Основу страницы можно собрать в курсе HTML и CSS, интерактив добавить в курсе JavaScript. Репозитории оформите по гайду загрузки проекта на GitHub.

Профиль свяжите с GitHub README, а адаптив проверьте по отдельной статье. В Кодике каждый кейс можно развивать как самостоятельный проект.