Рубріки: КарьераТеория

Что такое портфолио и как программисту его создать

Сергій Бондаренко

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

Что такое портфолио?

По мере того, как специалист накапливает знания и умения, в его багаже собирается все больше и больше примеров собственных работ.

Художник рисует красивые картины, фотограф делает удачные снимки, повар готовит изысканные блюда и так далее. Все эти творения показывают наличие у человека заявленных навыков.

Именно поэтому самые лучшие примеры собирают в отдельный виртуальный «портфель», который называется портфолио.

Кстати, слово «портфолио» произошло от итальянского portafoglio, которое как раз так и переводится — бумажник, портфель. Ссылки на портфолио прикрепляют в резюме как доказательство заявленных специалистом навыков.

Кому необходимо портфолио?

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

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

Отличия портфолио от резюме

Многие путают портфолио и резюме, употребляя эти слова как синонимы. На самом деле это разные вещи.

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

Портфолио — это необязательное, но очень важное дополнение ко всему тому, что написано в резюме. Оно подтверждает заявленные навыки и снимает все вопросы относительно квалификации специалиста.

Виды портфолио

Для художников, фотографов или дизайнеров портфолио может быть оформлено как онлайн-галерея работ или вообще выложено для доступа в сети отдельным PDF-файлом.

В случае с разработчиками дело обстоит сложнее. Любое дельное приложение разрабатывается не одну неделю, поэтому портфолио, особенно у тех, кто только недавно стал изучать программирование, может быть довольно скромным.

Как же его собрать? При приеме на работу программистов (как опытных, так и начинающих) существует практика демонстрации своих pet-проектов.

Pet-проект — это задача, которой программист занимался некоторое время, просто потому, что ему это было интересно (отсюда и забавное слово pet — любимый питомец). 

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

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

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

Что делать, если работы закрыты NDA?

Часто бывает, что человек работает над проектом, но затем не может его никому показать и не имеет права рассказывать о его технических подробностях. К сожалению, от таких проектов в портфолио лучше отказаться. Или при их упоминании стараться «обезличить», рассказывая только поверхностно и перечисляя в описании работы те инструменты/технологии, с которыми работали именно вы, разрабатывая свою часть кода.

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

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

Примеры портфолио, идеи для проектов

Но что делать, если креативность — не ваш конек? Если с идеями pet-проектов дела обстоят плохо, можно поступить иначе. В каждом IT-направлении есть набор стандартных задач, которые можно использовать для прокачки своих скиллов.

Их без особого труда можно найти в интернете, если немного погуглить.

Вот, например, список проектов для специалиста, который позиционирует себя на позицию программиста Python:

  • веб-сайт (с использованием Flask, Django и т.д.);
  • реализация компьютерного зрения для анализа изображений или трекинга в реальном времени (скажем, через библиотеку OpenCV);
  • использование графического интерфейса (Tkinter, PyQt5, wxPython и другие библиотеки) для удобного приложения (калькулятор, медиа-конвертер и т.д.);
  • поисковый бот — для сбора данных в интернете (по товарам, магазинам, кафе, салонам красоты, автомастерским и пр.);
  • бот для торговли акциями или криптовалютами;
  • организация обучаемой нейронной сети для создания «сильного» игрока в компьютерной игре.

Аналогичные списки проектов можно найти и для других языков программирования. 

Если вы работали на фрилансе, то наверняка знакомы с сервисами, которые упрощают публикацию вашего резюме и портфолио.

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

  • разработана форма регистрации и входа;
  • учтена валидация, например, в форме для связи;
  • создана оригинальная система навигации (а не просто скучное меню-гамбургер);
  • добавлена обновляемая новостная лента с полезной информацией (курсы криптовалют, наличие товаров в магазине и др.);
  • выводится на экран какой-то случайный элемент (цитата, совет и т.д.);
  • применен индикатор загрузки.

Еще вариант ответа на вопрос «где найти идею» — занимайтесь проектами с открытым кодом и включайте их в свою коллекцию работ. Например, решайте issue из чужих репозиториев на GitHub. Можете использовать утилиту для выбора случайного issue по нужному языку.

Другой способ придумать себе задание — воспользоваться генератором челленджей. Как вариант — Sharpen или Briefz. Просто замените design на develop и пробуйте создавать то, что там предлагается.

Неплохой способ прокачать свои навыки и выполнить тестовые задания — сервис Codewars. Он поддерживает 55+ языков программирования и поможет закрепить различные навыки кодинга.

Как правильно составить портфолио

Хорошо, если ваше портфолио не будет скучным. Вау-эффект еще никто не отменял, и если у вас в коллекции выполненных работ, скажем, будет не просто пять корпоративных лендингов, а пять ярких сайтов с уникальной динамичной версткой и анимацией — это будет то, что надо.   

Основные требования к разработчику зависят от направления, в котором он работает.

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

Не перегружайте свой сайт-визитку текстом. Разбейте разделы сайта на собственные веб-компоненты или отдельные HTML-страницы. 

Упорядочивайте свой код, чтобы наблюдалась иерархия с определенными главными областями. Задействуйте section, nav, header, aside, body и др. Следите за тем, чтобы позиционирование элементов через CSS соответствовало современным спецификациям.

Если вы идентифицируете себя как веб-разработчик — по возможности уменьшите использование в коде div и span.

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

Например, вы можете сказать, что использовали в своей программе алгоритм быстрой сортировки. В этом случае, есть большой шанс, что вас спросят, какие еще существуют алгоритмы сортировки. Вы их с легкостью перечислите: сортировка пузырьком, сортировка по Шеллу, сортировка перемешиванием и т.д.

Ну, и конечно, нужно запомнить их преимущества и недостатки. На Highload есть материал по этой теме, рекомендуем к прочтению. 

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

Если вы программист, то вся или большая часть вашей работы так или иначе завязана на GitHub (или любой другой системе контроля версий).

Поэтому наличие ссылок на репозитории GitHub — обязательно. Но тут есть нюанс. Ваше портфолио может быть гораздо шире, поэтому составляя свое резюме, следует отбирать работы под те требования, которые указаны в вакансии. Скажем, если требуется работа с базами данных, стоит показать пример, где как раз реализована какая-то фишка с БД. 

Советы по GitHub

Уделите внимание своему разделу на GitHub, проверьте профиль и вообще оформите его аккуратно и педантично.

Дайте нормальное и понятное название для репозитория, сделайте описание. Файловая иерархия у вас не должна быть запутанной.

Обязательно должны быть:

  • хотя бы простейшие комментарии, которые сэкономят время тому, кто будет просматривать ваш репозиторий;
  • имя;
  • фамилия;
  • профиль;
  • контактные данные (например, профиль на LinkedIn, почта для быстрого запроса);
  • краткая биография.

Заполнить репозиторий не трудно — это могут быть:

  • выполненные домашние задания с обучающих курсов;
  • какие-нибудь лабораторные работы;
  • некоммерческие pet-проекты.

В показателе вашей активности установите разрешение для отображения коммитов с ваших приватных репозиториев. Коммиты, ясное дело, должны быть определены — в описании следует указывать не просто bug fixed, а какой именно был найден баг, что было исправлено.

Постоянное использование систем контроля версий позволит продемонстрировать активность в профиле и будет хорошим сигналом для работодателя или рекрутера.

Добавляйте readme, ссылки на демо, лицензию, описание установки, видео, картинки и т. д. Используйте теги, которые позволят рекрутеру найти ваш репозиторий-портфолио. Код-стайл должен быть везде одинаковым. 

Основные ошибки при создании портфолио

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

Не стоит включать в портфолио незавершенные проекты, даже если они очень интересные. Сырой продукт только испортит общее впечатление.

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

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

Будьте внимательны при составлении описания своих pet-проектов. Работодатель может смотреть не только на суть проекта, но, также может уделить внимание таким «мелочам» как организация его поддержки, использование git-flow, написание документации. 

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

Ну, и, понятное дело, не стоит себе присваивать чужие проекты — это очень быстро выясняется и только заберет ваше время, но и время работодателя.

Сервисы для создания портфолио

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

Кроме того, выбранная платформа может быть оптимизирована под определенные технологии. Так, например, генератор сайтов Gatsby ориентирован для React.

VuePress использует технологию Vue.js. Преимущество этих сервисов в том, что вы быстро получаете стабильно работающий статический сайт с адаптивностью для просмотра на мобильных устройствах и оптимизацией «из коробки».

Платформ для сайта-портфолио существует огромное количество.

Самый простой вариант — Google Sites. Он бесплатен, имеет набор шаблонов и очень прост в использовании. Единственный минус — аскетичный адрес такой визитки.

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

Например, договориться с начинающим веб-дизайнером, который сделает интересную верстку, а вы со своей стороны, например, реализуете на Python или Java логику веб-приложений.

Такой «бартер» в большинстве случаев заканчивается успешно, ведь в проекте заинтересованы оба разработчика. Найти себе единомышленника можно, например, здесь — на Simbi.

Заключение

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

Также мы рекомендуем вам посмотреть видео, в котором подробно разобран пример оформления портфолио на GitHub с заполнением профиля для HTML-верстальщика:

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

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

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024