Найти в Дзене
STEM women

Руководство по созданию вашего первого проекта

Советы для новичков в программировании, которые помогут применить полученные знания по разработке в работе над реальным проектом. Какова польза от обучения, если вы никогда не используете знания для создания проекта? В какой момент вы готовы начать проект? Даже если вы изучили самые основы программирования, вы уже готовы. Взять на себя первый проект – это лучший способ ускорить развитие ваших навыков программиста и разработчика. Хотя в заголовке статьи есть слово «руководство», ничто не может по-настоящему помочь вам выполнить проект. Весь смысл запуска вашего собственного проекта состоит в том, чтобы самостоятельно создать новую территорию. Пришло время отпустить свою защиту в виде учебников и сделать что-то, что подсказывает ваше воображение.  Эта статья будет лишь отправной точкой. Хотя я далек от уровня опытного разработчика и недавно запустил свой первый крупномасштабный проект, я думаю, что выучил несколько ценных уроков.  Сделайте его самостоятельно Несмотря на то, что в команд
Оглавление

Советы для новичков в программировании, которые помогут применить полученные знания по разработке в работе над реальным проектом.

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

Хотя в заголовке статьи есть слово «руководство», ничто не может по-настоящему помочь вам выполнить проект. Весь смысл запуска вашего собственного проекта состоит в том, чтобы самостоятельно создать новую территорию. Пришло время отпустить свою защиту в виде учебников и сделать что-то, что подсказывает ваше воображение. 

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

Сделайте его самостоятельно

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

Опыт выбора, проектирования и создания чего-то абсолютно самостоятельно является очень ценным. Избегайте (насколько это возможно) простого поиска ответов в Google на проблемы, которые вы могли бы решить самостоятельно. Сначала попробуйте сами, и если вы только окончательно застряли, воспользуйтесь StackOverflow.

Возможности

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

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

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

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

Размер

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

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

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

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

Сверху вниз

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

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

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

Организованный проект – хороший проект

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

Я просто писал функции, как только подумал о них, создавал новые классы по мере необходимости, и не производил рефакторинг кода, если только он не был абсолютно необходим.

Хорошим способом избежать этого является покупка маленькой записной книжки для составления журнала или карты ваших идей и создания схемы вашего проекта:

  • У вас будет запись о каждой вашей идее (хорошей и плохой).
  • Вы сможете визуализировать проект в целом.
  • Вы можете организовать свои идеи в единый план.
  • Вы можете работать с проблемами на бумаге перед тем, как перейти к написанию кода. 
  • В результате ваш код будет более организованным.

Несколько советов по использованию записной книжки:

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

Хорошая идея состоит в том, чтобы описывать детали как можно подробнее. Чем более подробен план, тем меньше времени вы потратите на код (и, надеюсь, отладку).

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

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

Готовый проект лучше, чем пять незаконченных. Если вы покажете готовый проект, то это много скажет о вас. 

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

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

Если вам нужен пример, несколько месяцев назад я создал на Java анимацию Rain Animation, и это отличный старт. Я сделал для неё пошаговый план и смог закончить проект за несколько часов.