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

Изучайте Java как музыкант … но быстрее!

Итак, девиз этой статьи: “Избегайте типичных ошибок студентов Java и учитесь программировать как музыкант (но, пожалуйста, не так долго!!)”. Помечено как начинающие, java, программирование, обучение.

Оглавление

  • Совет Бо №1. Выполните множество простых упражнений по кодированию, “Гаммы и арпеджио” Явы
  • Совет Бо №2. Сложные задачи
  • Совет Бо №3. Умная практика для вашей “души”
  • Совет Бо № 4. Ежедневная практика
  • Совет Бо №5. Ставьте перед собой большие и маленькие цели
  • Совет Бо №6. Учитесь у других
  • Совет Бо №7. Делайте это по-разному
  • “И теперь у нас есть…

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

Несмотря на юный возраст кузена, смотреть на то, как он играет на фортепиано, и болтать с ним об обучении в те дни, когда я был новичком в Java, было чрезвычайно полезно. Кстати, его зовут Бо. Обычно я делюсь его рассуждениями о своих ранних занятиях со своими студентами (я работаю не только старшим разработчиком программного обеспечения, но и преподавателем Java), и знаете что? Мои ученики обычно становятся поклонниками методов Бо. Однако я никогда не упоминал его в своих статьях. Это несправедливо, и я решил это изменить.

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

Итак, девиз этой статьи: “Избегайте типичных ошибок студентов Java и учитесь программировать как музыкант (но, пожалуйста, не так долго!!)”.

Совет Бо №1. Выполните множество простых упражнений по кодированию, “Гаммы и арпеджио” Явы

“Я ничего не понимаю в этой книге по Java. Я не знаю, что делать здесь и там. Может, мне просто бросить учиться?”. Это были мои мысли и мысли многих других студентов-программистов. К счастью, рядом со мной был юный Бо, и я мог пожаловаться ему на мою тяжелую жизнь! Бо был не только молод, но и мудр:

– Я знаю, что ты умный, сказал он, – Ты хорош в математике и так далее. Я не верю, что ты не умеешь программировать. Я предполагаю, что ваше обучение неправильное. – Что вы имеете в виду под этим? – Программирование – это создание приложений, верно? – верно. – Сколько приложений вы делаете в течение дня? – Что ж… Не так уж много. Вчера и сегодня – дни моего изучения теории. Завтра я продолжу писать свою программу с учетом сегодняшней теории. – Оу… Я не очень разбираюсь в программировании, но подозреваю, что вы недостаточно практикуетесь. У меня есть несколько занятий по теории музыки и истории музыки, но основной темой является практика игры на фортепиано. Я имею в виду ежедневную практику игры на фортепиано с учителем или без него. Я никогда не начинаю свою практику с композиции или даже этюда. Прежде всего, чистые упражнения. Они более или менее просты, иногда скучны, но они обязательны. – Какие упражнения? – Гаммы и арпеджио. Помните диснеевский мультфильм “Аристократы”?

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

  • Итак, продолжил мудрый Бо, я предполагаю, что в программировании есть определенные “гаммы и арпеджио”, и вы должны практиковать их каждый день.

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

Я нашел множество коллекций задач и время от времени решал их. В наши дни все становится проще. За последние два года я нашел несколько отличных сайтов с Java-задачами. Вот они.

Код тренажерного зала . Базовый курс Java с примерно 1000 заданиями по кодированию для студентов, изучающих Java, от новичков до уверенного уровня upper intermediate. Этот сайт позволяет вам не только читать лекции по Java Core и решать задачи, но и проверять правильность вашего кода.

Codecademy . Это, вероятно, одна из самых известных онлайн-платформ для изучения многочисленных языков, включая Java. Здесь вы начинаете кодировать с первого урока. Бесплатный курс предназначен для начинающих.

Совет Бо №2. Сложные задачи

“Каждый новый технический этюд или другая композиция, полученная от моего учителя, содержит некоторые проблемы”, – сказал Бо.- “Во-первых, я должен подумать о том, как их решить. Если у меня ничего не получается или я пытаюсь, но ничего хорошего не получается, я обращаюсь за помощью к своему учителю. Иногда он дает мне дополнительные упражнения, чтобы преодолеть технические трудности, или просто говорит мне, что делать. Довольно часто я чувствую, что “я ненавижу это задание”, и моя учеба, в целом, слишком сложна, и я хочу поиграть во что-нибудь простое просто для удовольствия. Иногда я играю все, кроме сложных ролей, снова и снова целую вечность. Это глупо! Конечно, я должен сначала обратить внимание на сложные части”.

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

Хорошие форумы для студентов, изучающих Java, включают Раздел Java Stack Overflow (судя по комментариям, тамошние ребята не всегда добры к новичкам) или Coderanch (очень дружелюбный к новичкам). Кроме того, на Reddit есть сообщества, такие как java и learn java , где вы найдете полезные советы по изучению Java .

Где найти сложные задачи, если у вас нет репетитора: Codewars предназначен для пользователей, имеющих хотя бы небольшой опыт программирования, CodingGame, где вы можете написать код для игры, скомпилировать его и посмотреть, как он вступает в силу в игре. В Code Gym есть много сложных задач (действительно хороший онлайн-курс, я писал об этом выше) и особенно JavaDocs , ресурс с отличной коллекцией головоломок по кодированию для разных уровней.

Совет Бо №3. Умная практика для вашей “души”

“Вы знаете, каждый музыкант играет лучшую пьесу, которая ему действительно нравится. Иногда студенты-музыканты пытаются сыграть что-то задолго до того, как они смогут это сделать практически. Я помню историю одного старшего мальчика из моей школы, который хотел сыграть концерт № 2 Рахманинова на 4-м курсе. Этот композитор хорошо известен как очень жесткий автор для пианистов, потому что у него были действительно огромные руки, и он писал свою музыку, чтобы играть руками. Руки этого мальчика были… просто руки 10-летнего парня. Он постоянно спорил со своим учителем, и тот позволил ему попробовать… Ничего хорошего не произошло. Мальчик просто потратил впустую уйму времени и нервов. Однако много лет спустя он вернулся к концерту Рахманинова, и в 16 лет у него это действительно хорошо получается…”

“На втором или третьем курсе я сходил с ума по мультфильмам Диснея и песням Битлз, так что я выучил некоторые из них и действительно наслаждался этим! Теперь у меня всегда есть хотя бы одна часть моей любимой музыки, которую я должен выучить”.

Что это значит для студента Java? Все дело в ваших собственных проектах, которые вы, возможно, захотите создать. После того, как вы приобретете некоторые теоретические и практические знания, вы можете попробовать создавать свои собственные проекты. Я сделал несколько небольших игр, начал, но не закончил одну RPG в японском стиле и написал виртуальную клавиатуру для фортепиано (снова влияние Бо!). Я начал свои небольшие проекты примерно через 6 месяцев обучения и стал более “серьезным” в конце моего первого года. Не пытайтесь создавать операционную систему в качестве новичка. Первые проекты могут быть очень маленькими и легкими, но приятными для вас. Обычно я предлагаю своим ученикам начать создавать некоторые проекты на 6-м месяце, а для быстро обучающихся – на 3-м месяце. Они делают простые таблицы тайм-менеджмента, игры, клавиатуры (для Android) и так далее.

Совет Бо № 4. Ежедневная практика

” Если вы верны своей ежедневной практике

Вы обнаружите, что ваш прогресс обнадеживает”

Здесь мы снова имеем цитату из “Аристократов”. Вы знаете, сколько времени в среднем практикуется студент фортепианного колледжа? 5-6 часов в день, иногда это может быть вдвое больше… Бо тренировался по 1 часу в день, когда ему было 4-5 лет, а позже — все больше и больше…

Я наблюдал за ежедневной практикой Бо, маленького мальчика Бо в тот момент, и… Я начал понимать, что мне следует делать, если я хочу стать профессионалом. Во-первых, я начал кодировать от 10 до 18 часов в день. Это продолжалось недолго и я замедлил это, потому что хотел пережить свою молодость.

Итак, теперь я предлагаю очень простую формулу обучения для своих студентов: по крайней мере, 2 часа в рабочие дни и 5 часов в выходные, если вы хотите стать профессионалом как можно скорее. Мы не музыканты, поэтому за 6 месяцев достаточно приблизиться к Сильному уровню стажера.

Совет Бо №5. Ставьте перед собой большие и маленькие цели

“Мне было 8 лет, когда мой учитель сказал мне, что я приму участие в своем первом более или менее серьезном соревновании. Я был абсолютно шокирован, потому что чувствовал, что совсем не готов. Однако у меня было 5 месяцев на подготовку. Я должен сказать, что это был мой первый настоящий прорыв в игре на фортепиано – подготовка к этому конкурсу. Я был одновременно очень нервным и очень сосредоточенным. Я много тренировался, но что было более важно, я тренировался с умом. Я придумал программу, выбрал пьесы для игры, точно подготовил их… который я позже расширил до практики любой пьесы с парой небольших целей, таких как “Сегодня я играю гаммы и арпеджио Соль # минор и выучу такты 9-16 пьесы”., а также большие цели, такие как “Экзамен в июне” или “Большое соревнование”.”

Иметь конкретные цели, будь то большие или маленькие, вместо абстрактных “хорошо понимать Java” или “стать профессионалом в Java” – это действительно хорошая идея.! Я ставлю перед собой цели и использую их в качестве наставника. После недели или двух моих занятий я обычно помогаю своим ученикам ставить перед собой маленькие и большие цели. Вот пример.

Мини-цели моего среднестатистического ученика:

  • Каждый день: 4-5 простых заданий (“арпеджио”), работа над сложными задачами (1 сложная задача от 2 дней до недели, в зависимости от ее сложности). Не только само кодирование, но и продумывание задач и составление проекта.
  • 2-3 раза в неделю (после первых 1-2 месяцев): работа над курсовым проектом.
  • 3-4 раза в неделю, по 1 часу: чтение и просмотр (лекции, чужой код, статьи профессионалов, экзаменационные вопросы и так далее)

Большие цели на конец курса (конец семестра):

  • Есть хотя бы один хороший проект для резюме
  • Сдайте местный экзамен по Java (я делаю это для своих студентов)

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

Совет Бо №6. Учитесь у других

“Иногда я не знаю, как мне следует играть эту пьесу. Я забил, но когда я пытаюсь, я получаю механическую и пустую интерпретацию. Когда вы все еще учитесь, это хорошее время, чтобы учиться у других… быть хорошим подражателем! Подражайте другим ученикам, которые на один или два шага впереди вас. Зайдите на YouTube и послушайте профессионалов, если произведение, которое вы пробуете, достаточно известно. Попробуй прислушаться к различиям”.

Здесь у нас есть несколько советов для разработчиков программного обеспечения. Java – это язык с открытым исходным кодом. Вы можете не только использовать библиотеки Java, но и читать их код. Например, у нас есть github, где программисты разных уровней хранят свою работу. Учитесь у них! Кстати, это очень хорошая идея – создать свой личный репозиторий на github. Каждый образованный студент-программист знает, что вы должны научиться работать с облачными репозиториями.

Это очень ценно, если у вас есть сокурсники! Прочтите их код и попросите их прочитать ваш. Если у вас нет сокурсников, зайдите на форумы ( раздел Java Stack Overflow или Coderanch ) и сначала найдите ответы на вопросы вас интересует. Ничего не нашли? Не стесняйтесь задавать вопросы! Это очень важно.

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

  • Javaworld (новости, полезные руководства, “как это сделать” и так далее);
  • DZone (статьи и руководства для начинающих и опытных разработчиков);

Совет Бо №7. Делайте это по-разному

” Очень трудно преодолеть лень… и заново выучить что-то по-другому. Тем не менее, это хороший способ вырасти как исполнитель. Впервые я попробовал двухголосное изобретение до мажор Баха, когда мне было 7 лет. Я выучил ее и мог играть на ней… Много лет спустя я нашел эту пьесу в исполнении 5 профессиональных пианистов. Я слушал их снова и снова и пытался воспроизвести их по-разному… Это было захватывающе!”

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

Не испытывайте этого страха перед экспериментами! Как только вы решили интересную проблему, а затем нашли новый способ ее решения, не стесняйтесь, попробуйте!

И теперь у нас есть…

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

  • Ежедневная практика необходима для вашего успешного обучения.
  • Ставьте перед собой маленькие и большие цели.
  • Посвятите 75-80% своего времени практике, 20-25% – теории.
  • Технические упражнения — небольшие простые задачи по кодированию. Делайте их каждый день, по крайней мере, 5 из них или даже больше. Делайте это с самых первых дней обучения.
  • Сложные задачи: выполняйте их со второго месяца. Ежедневный.
  • Когда вы будете готовы (3-4 месяца обучения), начните свой собственный небольшой проект, который вы можете закончить за 3-4 месяца.
  • Читайте код других разработчиков, как начинающих, так и профессионалов.
  • Ищите ответы на форумах и не стесняйтесь задавать там вопросы.
  • Нашли/узнали что-то новое? Попробуйте решить старую проблему/задачу по-новому, используя эти новые знания!
  • Удачи вам в обучении!

Было опубликовано на Было опубликовано на

Оригинал: “https://dev.to/selawsky/learn-java-as-a-musician-but-faster-33hc”