Быстрое Предисловие
Учись на практике: знание против ноу-хау
Там огромная разница в знаниях и ноу-хау. Для новых учеников является распространенной ошибкой думать, что, поскольку они могут «понимать» программу во время ее чтения, они на самом деле понимают, почему программа написана так, как она есть.
И единственный способ добраться до этой второй части - тренироваться. Сядьте, откройте текстовый редактор, командную строку и приступайте к ней.
Вероятно (и ожидается), что на этом этапе ваша способность понимать, как несколько сложных программных компонентов взаимодействуют друг с другом, ограничена. И это на самом деле хорошо, так как заставляет вас начинать с основ. Не прыгайте с пистолетом и двигайтесь в правильном темпе: начните с небольших упражнений для небольших задач.
Честно говоря, я никогда не был убежден, что начинать учиться программированию на Java - это путь (я раньше преподавал программирование для жизни в университете, и до сих пор время от времени учусь в частной школе). Само по себе это слишком сложно, чтобы начать, и большинство книг по Java будут выглядеть довольно устрашающими. Тем не менее, это, безусловно, может быть сделано (по крайней мере, для некоторых областей этого глобального знания, которые мы ожидаем от программистов), если вы ограничиваетесь обучением шаг за шагом.
книги
Поскольку вы настроены на Java, и если вам нужна приличная книга по Java, я бы порекомендовал:
- Мышление на Яве . Все нормально, хотя сейчас немного устарело.
- Учебник по Java . Это не совсем лучший компаньон ученика, но отличный справочник, который нужно держать под рукой, так как он охватывает все основы и предоставляет примеры. Обучение Язык Java Trail , вероятно , следует быть в вашем списке чтения, хотя я думаю , что это может быть сложной для начинающих , как он вводит понятия , которые могут быть трудно понять , в первую очередь.
- Эффективная Java . Это не отличная книга для обучения, но и замечательный справочник, который вы должны иметь под рукой на будущее. Не читать за один присест, а кусками размером с укус.
Я упоминаю об этом только потому, что не знаю, что вы используете в классе. Там тонны других книг. Некоторые хороши. Некоторые будут калечить студентов в течение многих лет.
Ваш учебный процесс
Основной рабочий процесс
С этого момента я бы посоветовал вам следовать этому двухэтапному процессу для всех упражнений и примеров кода, которые вы видели в классе:
- читать и учиться
- читать упражнения
- убедитесь, что вы их поняли
- код
- закрой книгу
- сядьте перед компьютером с этим редактором кода и командной строкой
- попытаться переписать программу самостоятельно
В случае отказа
Если вы терпите неудачу и чувствуете, что вам нужно взглянуть на книгу, ваша ошибка может быть либо:
- (скорее всего), что вы на самом деле не поняли решение,
- (менее вероятно), что вы забыли, как выглядит конкретная часть решения: синтаксис, использование API, ...
Первой причиной, вероятно, будет то, с чем вы сталкиваетесь чаще всего. Второй анекдотичный. Обе эти проблемы решаются путем повторяющейся практики.
Каждый раз, когда вам не удается реализовать один из этих ранних примеров, снова посмотрите книгу, затем закройте ее снова. Не пишите код, глядя на книгу. Я даже советую вам удалить все ваши решения и начать заново. Повторение является раздражающей, но важной частью процесса обучения.
Не воспринимай это легко. Каждый раз, когда вы чувствуете желание сказать себе: «Да, хорошо, я знаю это» или «Я там на 90%, это почти так же хорошо, как сделано», и вы хотите перейти к другому разделу, бороться с этим побуждением и начать все сначала. Очень трудно честно признаться себе, что вы не до конца поняли концепцию.
Дополнительное замечание: я считаю большой плохой услугой то, что большинство школьных программ в настоящее время пытаются «дать старт» курсам программирования, слишком затухая и предоставляя инструменты, которые слишком сложны для учащихся: цель не состоит в том, чтобы сделать вашу жизнь несчастной или для вас тоже учиться наизусть вещи, которые позже в твоей карьере будут автоматизированы твоими инструментами, и которые ты иногда даже почти не помнишь. Это чтобы научить вас всем, что плавает вокруг.
В случае успеха: выйти за рамки!
Если вам удается выполнить упражнение, не обязательно переходить непосредственно к следующему. Попробуйте посмотреть, что вы можете сделать, чтобы улучшить это. Можете ли вы изменить вывод, который был запрошен? Добавить небольшую функцию? Опция? Постарайтесь, поскольку вы сейчас находитесь в этой веселой зоне, где вы преодолели основную сложность, и эти навязанные самим собой крошечные требования с большей вероятностью будут поднимать вам настроение.
Однако не заходите слишком далеко: вы не переходите от печати алфавита и его переворота к внезапному отображению его по диагонали на экране с градиентом цветов. Делай маленькие шаги. Обучение - это длительный и итеративный процесс, и вам нужно подходить к проблемам с возрастающим уровнем сложности (например, посмотрите, как я обычно думаю об объяснении рекурсии ).
Это просто обучение - сравнение
Ваша проблема на самом деле не связана с программированием. Это та же самая проблема, с которой сталкиваются тысячи людей, пытаясь выучить математику.
Если вы дадите им проблему, они не поймут, как проложить себе путь к решению. Однако, если вы напишите решение для них, большинство поймет это и подумает: «Черт, это было так просто!». Тем не менее, вы дадите им аналогичную проблему с различными мерами и гипотезами, и они не смогут ее решить: они не поняли логику, стоящую за этим, и им нужна практика, чтобы иметь возможность сделать это самостоятельно.
Обратите внимание, что это общая проблема с математикой, но, по моему мнению, вы видите ее в тоннах других областей, где требуется некоторая логика: изучение сольфеджа, грамматика языка, физика и т. Д. И это не просто «естественная» способность чтобы понять эти вещи: это просто сводится к практике (будь то в этой области или в других, которые приводят человека к более легкому пониманию концепций в этой области).
Там нет причин, вы не можете научиться писать код. Ты просто продолжаешь пытаться, пока не достигнешь "ах ах!" Эврика Момент. Затем переходите к следующей, более сложной проблеме.
Это также может помочь (позже):