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

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

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

Автор оригинала: John Selawsky.

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

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

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

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

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

Копирование Не Всегда Незаконно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1

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

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

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

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

2

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

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

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

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

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

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

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

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

3
4

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

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

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

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

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

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

Учитесь в Библиотеках и Существующих Классах

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

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

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

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

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

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

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

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

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

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

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

5

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

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

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

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

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

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

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

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

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

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

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

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

Оригинал: “https://www.codementor.io/@johnselawsky/steal-like-a-pro-learn-java-by-using-code-examples-16876yulwo”