Делаете ли вы упражнения при чтении книги? [закрыто]


14

Сколько из вас фактически выполняют упражнения, изучая книгу (любую книгу, связанную с программированием), в настоящее время я пробираюсь через книгу по C ++ и обнаруживаю, что некоторые из упражнений, которые, как мне кажется, я могу выполнить, довольно легко пропускаю. Большинство людей делают это? Или они читают всю книгу и возвращаются к упражнениям, которые выглядели сложными?


2
Соответствующий пост stackoverflow.com/questions/498246/…
Игорь Милла

4
Я люблю ездить на велотренажере во время чтения, что позволяет легко заниматься физическими упражнениями и учиться в бакалавриате. Хотя я подозреваю, что физические упражнения здесь не в контексте.
Крис

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

Никто другой не находит забавным, что это было перенесено из StackOverflow и затем быстро закрыто на Programmers.SE? Это советская бюрократия! XD
Дрю

Ответы:


17

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

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


5

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


4

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

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

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

Еще одна большая помощь, как предлагает «Торстен Мюллер», - запустить какой-то проект, fx. сортировка по B-дереву или что-то всегда интересное для реализации :).


4

Это зависит от книги. Например, загадки в K & R довольно эпичны и поучительны, и есть даже книга под названием The C Answer Book , в которой описываются упражнения в деталях, которых они заслуживают.

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

Однако, как инструктор, я обнаружил, что многие упражнения во многих хороших книгах просто ужасны. Некоторые из них просто BS, похоже, в последнюю минуту. В результате, при назначении задач в классе, я должен сделать свой. Пока вы сосредоточены на правильных книгах и правильных проблемах, вы многое из этого получите. Я рекомендую вам делать это в K & R, даже если ваша цель - изучение C ++.


+1 Для K & R я прочитал его (в очень быстром темпе) и выполнил большинство упражнений, и на самом деле мне показалось, что я что-то узнал по каждому. Другие книги выглядят так, словно я их выбираю
Адам

2

Только те, которые выглядят интересными и сложными. Если я знаю ответ, то набирать его будет мало смысла.

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

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


1

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

Если упражнений не существует, я делаю их самостоятельно. Я также всегда, по крайней мере, стараюсь использовать материал из этой главы (введите код в Vim, выполните, измените и т. Д.).

Иногда я оставляю некоторые упражнения на потом или до конца сеанса чтения (если мне довелось прочитать несколько глав).

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


1

Чтение книг - пустая трата времени, если вы не понимаете и не помните, что написано. Упражнения убедитесь, что вы делаете. Кроме того, иногда делать упражнения это весело!


1

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


0

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


0

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


0

Если я изучаю новый язык и знаю, что буду много над ним работать, я непременно выполню каждое и каждое упражнение. Делая это, я «впитываю» язык, и мой основной синтаксис становится сильным. Таким образом, вы не просто учитесь кодировать, но и «думать» на определенном языке. Во второй раз, когда я его пересматриваю, мне может не понадобиться делать упражнения.

В то же время IMO не одинаков для всех языков. Например, мне не нужно было слишком усердно практиковать SQL, чтобы овладеть им в C / C ++, я практиковал его как минимум четыре раза (включая курс колледжа), чтобы овладеть им.


0

Никогда. Однако я стараюсь что-то написать с этим решением, опираясь на массу прошлого опыта (другими словами, неудач), и пытаюсь решить его. Это, кажется, действительно привлекает новую вещь в мой мозг, поскольку я связываю это с существующим контекстом.


0

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


0

Нет.

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

Я думаю, что модель обучения книг устарела. Я попытался бы найти лекции / лаборатории онлайн и сделать это.

Например, я изучил основы Python, пройдя курс Google Code University.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.