Я изучаю новые языки, я пишу код для самых основных программ на нескольких языках и хожу на занятия. Я читал книги, статьи, уроки, видео, вы называете это, однако я не могу понять некоторые вещи.
Например, я никогда не понимал указатели - в чем они хороши. (НЕ ЧАСТЬ ВОПРОСА - переназначение с помощью «Указателей» не требуется ...)
Мой вопрос, однако, заключается не в том, что делают указатели, а в том, как я могу понять такие вещи? Если после прочтения книги или статьи об определенной части программирования я не понимаю, что мне делать? Написание кода в определенной функции программирования, безусловно, помогает, однако на самом деле это не помогает понять это. Теоретическая часть важна для понимания.
learning
language-features
Bugster
источник
источник
Computer Architecture 101
курс очень помог бы с пониманием указателей. ... и все остальное.Ответы:
Если у вас есть проблемы с пониманием абстрактной концепции, просто спуститесь на один уровень ниже. Если вы не можете получить указатели в C - спускайтесь на уровень сборки. Все еще есть проблемы? Узнайте больше об оборудовании, вплоть до логических элементов.
источник
MIX
и другие подобные игрушечные архитектуры вокруг. С аппаратной частью все то же самое - есть много простых игрушечных процессорных ядер для изучения.Короткий инкрементальный жизненный цикл обучения
Дополнительные шаги
Использовать с осторожностью.
man -k
,apropos
и т. д.)Это подлый, потому что вам нужно переоценить себя, чтобы убедиться, что вы правильно поняли. Прямое наставничество хорошо осведомленным человеком, как правило, лучше, сопровождаемое, конечно, вашей собственной проверкой приобретенных знаний путем повторной реализации того, что вы только что изучили (и затем пытаясь продвинуть его на один шаг вперед и изучить концепцию более высокого уровня, построенную на вершине из этого, например, связанные списки для ваших указателей).
Кредиты: Nupul (для построения диаграмм)
источник
По моему опыту, это все о вкладе и обратной связи. Вы хотите получать информацию в максимально возможной степени и как можно быстрее получать отзывы о своих ошибках.
По моему опыту, моя степень CS была очень сухой, очень формальной и совершенно бесполезной при обучении программированию. Я посещал две-три лекции в неделю, и если ты не получаешь их, то это в значительной степени - у лектора есть еще один класс для преподавания, и он не может помочь тебе. И, скорее всего, один парень понимает это определенным образом, и он будет учить этому определенным образом, и все, поэтому, если вы не будете думать, как он, вы никогда этого не получите. Хуже всего то, что, поскольку он, вероятно, понимает миллиард других связанных понятий, он, скорее всего, сформулирует его в терминах тех других понятий, которые вполне могут оказаться у вас над головой или просто отсутствовать даже в материале курса.
Я пошел в Stack Overflow и спросил в канале чата C ++ и получил пять разных объяснений за пять минут. Все они были созданы специально для меня и именно той проблемы, с которой я столкнулся, поэтому неудивительно, что один из них ударил меня по дому, и я понял это. Скорость, с которой вы можете учиться, получая отзывы от нескольких экспертов в реальном времени, значительно превосходит то, что вы можете получить из сухих бумажных источников.
Поэтому в идеале сделайте перерыв, и тогда вы найдете небольшую или среднюю группу единомышленников, которым нечего делать, и общаться с ними вживую. Кстати, Stack Overflow - отличное место для получения высококачественной высокоскоростной личной обратной связи.
источник
Ни в коем случае книги, друзья и чтение хорошо документированного кода являются хорошими источниками. Практика - единственный способ научиться: стараться писать небольшие юнит-тесты. Например, для указателей напишите код, который работает со строками: переверните строку, переверните каждое слово в строке, проверьте палиндром, замените букву цифрой ...
Задавайте вопросы по stackexchange ...;>
источник
Практика делает идеальным! (в любом случае, лучше). Просто продолжайте стараться и старайтесь использовать как можно больше разных источников и чувств:
Источники: Книги, Интернет, Группы пользователей, друзья, Видеообучение, использование сайтов, которые позволяют тестировать немного «кода», такого как jsfiddle (в основном, html),
Rubular (выражения Ruby),
SQlzoo для тестирования sql,
jslint для javascript,
кодовая панель для многих языков.
Чтобы запомнить абстрактные вещи, подумайте о мномике - врачи используют их!
Считай себя пожизненным учеником и оставайся скромным, и ты сможешь далеко уйти.
источник
Вы должны изменить фокус на некоторое время, а не на 5 минут. или 5 часов ... я имею в виду что-то вроде 1 дня, не глядя на этот код .... просто расслабься об этом ... иди почитай что-то другое ...
Если вы должны понять это сейчас ... попросить помощи у друзей или здесь =)
источник
Что все остальные в IT делают.
Я использую поисковую систему для поиска связанных понятий, которые не понимаю, пока не смогу вернуться к теме, которую изначально хотел понять.
Скорее всего, вы также не до конца понимаете стек, кучу, автоматические переменные, процесс компиляции C ++, сборку, управляемую память и неуправляемую память.
Большая ясность в отношении этих и других связанных с указателем концепций, вероятно, прояснит все.
источник
Там нет верный быстрый способ понять предмет. Ваш успех зависит от того, какой контекст вы привносите с собой в учебу. Вам очень повезет найти человека, который объяснит все с вашей точки зрения. Как и машины Тьюринга, каждый может узнать то, что знают другие, и это просто вопрос настойчивости и принятия, что разочарование естественно.
Я помню огромные трудности, с которыми я столкнулся с указателями. Только когда очень терпеливый чувак объяснил мне это, как будто я был полным идиотом, я понял это. Это иногда то, что нужно.
источник
Это общая проблема в обучении и преподавании. И, как говорили другие, нет надежного способа обойти это. Это фундаментальная истина, которую мы все изучаем по-разному, так как наш мозг по-разному подключен тонкими, но важными способами.
Обучение порождает новые нейронные связи. Не вдаваясь слишком много в нейробиологию (о которой я почти ничего не знаю), генерация новых связей требует разных видов воздействия на концепцию для разных людей. Попробуйте много разных углов, прочитайте / услышите / посмотрите разные объяснения. Практика!
Если это не сработает, отложите проблему в сторону: возможно, вы просто упускаете другую часть головоломки, которая после ее приобретения делает первоначальную проблему очевидной.
Ты знаешь это ага! моменты? Это когда ваш мозг только что установил новое соединение. Вот как происходит обучение.
Кстати, любой хороший учитель это знает. В руководствах по техническому письму часто указывается, что каждое понятие должно быть объяснено как минимум дважды, с использованием разных слов (и, возможно, с некоторым текстом между ними). Если вы обратите внимание, вы сможете заметить, что все хорошие научные писатели следуют этому правилу.
Увы, слишком многие учителя игнорируют это и объясняют вещи только один раз. И даже если им удастся найти элегантное объяснение с большой метафорой, этого просто недостаточно.
источник
Прочитайте любую соответствующую документацию и Google ваши сомнения.
Попробуйте написать примеры кода, посмотрите, что они делают.
Попробуйте выполнить код в режиме отладки и посмотрите его шаг за шагом.
Если вы все еще не понимаете определенного поведения, спросите кого-нибудь, лично или на таком веб-сайте. Если вы попробовали все вышеперечисленное, у вас должны быть все элементы, чтобы составить хороший вопрос. Не стесняйся :)
Я думаю, что это в значительной степени то, что делают все остальные.
источник
Продолжайте исследовать и учиться. У меня была такая же проблема с различными другими аспектами программирования. Но общение с другими и чтение статей в конечном итоге приводит к моменту «АГА». Как правило, это какой-то другой пост в блоге или SO-ответ, содержащий информацию, которой я могу следовать.
В основном, продолжайте искать и будьте терпеливы для понимания.
источник