Рубрики
Без рубрики

Воруй Как профессионал: Изучай Java с помощью примеров кода

Каждый разработчик программного обеспечения в некоторой степени является вором кода, поскольку кража кода – это обучающий инструмент и экономия времени. В этом посте я собираюсь объяснить, что я подразумеваю под “кражей кода”.. Помечено как начинающие, java, программирование, обучение.

Первоначально эта статья была написана и опубликована на Простой программатор .

Всем привет! Я Джонни, старший разработчик Java и … Я похититель кодов — действительно, старый преступник в этой области. Но угадайте, что самое приятное: это не преступление!

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

В этом посте я собираюсь объяснить, что я подразумеваю под “кражей кода”. В частности, я покажу вам, как это помогает улучшить как ваше изучение Java, так и ваш код.

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

Копирование Не Всегда Является Незаконным

Знаете ли вы, что почти каждый мастер-художник, имеющий свой собственный стиль, начинал с копирования других?

Почти каждый мастер, чьи картины вы узнаете с первого взгляда из-за их оригинальности, начинал в музеях с набросков и копирования популярных работ своего времени. Погуглите, например, “Ранние работы Дали”. … Я полагаю, вы вряд ли узнаете в них будущего сюрреалиста.

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

Оригинальный стиль, конечно, не так важен для программиста. Более того, это может быть даже вредно. Хороший код не всегда оригинален. Иногда все, что для этого нужно сделать, это выполнить следующие условия:

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

“Код должен решать задачу” – это более или менее понятно (хотя и здесь есть нюансы: понять, правильно ли решена задача, не всегда просто). Но как вы узнаете, является ли ваш код понятным, стандартным и простым в обслуживании — особенно если вы только начинаете учиться?

Решение: “Украсть” код у других!

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

Итак, что это значит?

Как можно “украсть” код, чтобы он был законным и полезным для личного изучения?

Используйте учебные ресурсы и идеи, созданные профессионалами

Нам посчастливилось жить с Интернетом. Там вы можете найти полезные и практические курсы и учебные проекты, которые помогут вам вырасти как программисту.

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

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

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

Игровые проекты

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

Отличная идея для игровых проектов – создавать части игры и писать код на основе кода классических игр.

Джон Кармак, автор влиятельных игровых проектов, таких как Doom, Wolfenstein 3D и Quake, однажды сказал в своем Twitter что каждый новичок должен попытаться воссоздать классические ретро-игры в качестве упражнений по кодированию. Гуру игрового программирования назвал это занятие очень полезным для будущих разработчиков. использование примеров кода Однако создание даже самой простой игры может оказаться непростым делом для полного новичка. Как правило, новичок теряется и не знает, с чего начать. Но опять же — как нам повезло — Интернет с его ресурсами здесь, чтобы помочь!

Code Gym – это портал с хорошо продуманным практическим ядром Java, в котором есть раздел бесплатных игр . В нем предлагается шаг за шагом воссоздать одну из этих классических видеоигр – Сапер, Змея, Космические захватчики, Гонщики и другие.

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

Игры в изобилии снабжены инструкциями и примерами кода. После завершения игры вы можете изменить ее по своему усмотрению. На веб-сайте zetcode вы можете найти подробное руководство по 2D-играм на Java с примерами кода для классических видеоигр (Sokoban, Snake, Pacman и других), а также полезное руководство по разработке собственных игр.

Единственным недостатком является то, что здесь используется довольно старая библиотека Swing. Однако вы все равно можете извлечь из этого урок. Главное – понять концепцию. Изучите код, используйте его часть, а затем попробуйте воссоздать те же самые игры, применив более современные игровые технологии для отображения.

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

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

По крайней мере, вы можете переписать код из книг по Java, таких как Head First Java , Core Java или любой другой, который вы используете в своем обучении.

Задавайте вопросы на Форумах и читайте ответы других людей

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

Google покажет вам лучшие форумы для чтения кода, такие как Stack Overflow , некоторые темы Reddit и JavaRanch .

Давайте смоделируем эту ситуацию. У вас есть проблема, вы зашли в Google и нашли человека, у которого есть похожая проблема. Перейдите в комментарии, где другие опубликовали решение, и … украдите код! Однако хорошая идея – попытаться понять, что было не так и почему код вашего интернет-коллеги правильный. Если вы не можете найти ответ на свой вопрос, тогда… барабанная дробь … создайте новый вопрос!

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

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

В результате они теряют свою мотивацию.

Так что будь осторожен.

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

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

Извлекайте уроки из Библиотек и существующих классов

Когда я учу своих студентов работать с IntelliJ IDEA, я прошу их с самого начала запомнить комбинацию Ctrl+LMB (левая кнопка мыши).

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

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

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

В Java есть класс LinkedList. По сути, это двусвязный список. Я прошу своих учеников написать класс Односвязного списка, “украв” код из двусвязного Связанного списка.

И, конечно же, я приглашаю всех внимательно прочитать Javadoc . Там все очень хорошо описано.

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

Используйте Код Из Существующих Проектов С Открытым Исходным Кодом

Одному из моих учеников очень понравился Майнкрафт. Когда он начал программировать, он начал с декомпиляции Minecraft, получения кода Java и изменения его для собственного использования.

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

У нас есть Github с миллионами различных проектов на нем. Если вы еще не поняли, Github – одно из самых интересных мест во всем Интернете. Если вы хотите найти интересный проект, нажмите “Исследовать” и найдите популярные репозитории. Вы можете выбрать его по типу (например, инструменты повышения производительности, 3D-моделирование), по коллекции или просто по названию. Например: Я хочу создать свою версию Space Invaders, но я новичок. Используя вкладку “Исследовать”, я могу найти клон Java Space Invaders, загрузить его и попытаться прочитать код. Сделай то же самое!

Что, Если Все, Что Я Кодирую, Крадут У Других?

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

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

Чтобы бороться с этим, ** напишите код с нуля.

Иногда я даю своим студентам “час кода на листе бумаги”. “Я рекомендую вам делать то же самое один или два раза в неделю. Выберите задачу, которую вы решили не так давно, или, если у вас хватит смелости, вы можете создать новую и решить ее в приложении Notebook без подсветки синтаксиса и без Google.

Вы можете использовать даже лист бумаги!

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

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

Воруй Как профессионал

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

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

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

Оригинал: “https://dev.to/selawsky/steal-like-a-pro-learn-java-by-using-code-examples-4ma7”