Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Looks great. But just to clarify: in the context of a CS program, it's not about reading and retaining the entire books cover-to-cover, retaining everything, or doing 100% of the exercises. The professor will assign specific readings and exercises that track the lectures. Some will not use the textbook's exercises at all, and instead build their own homework assignments. You can typically find a PDF describing the assignment on a course's website, along with starter code. Typically there's a test suite that does automated grading. If you're lucky, you'll be able to obtain that and run it locally without a university login.

I spent the vast majority of my time and effort on the programming assignments, and while I did the readings, I didn't pore over the books that closely except when stuck. IMO, that's the way to do it. You want to think of programming projects, not books, as primary.

The part of my CS education I loved and still cherish was the evenings in the library with project partners, triumphantly flushing out one last segfault moments before the 11:59pm submission deadline.



For math and computer science, a good rule of thumb is to treat the exercises as the primary way to learn, and to refer to the rest of the text as support to help you with the exercises.

That extends to reading academic papers; but there you have to come up with your own exercises.

(I say rule-of-thumb, because it's a good approach, but please don't take it as gospel.)

You don't need to do 100% of the exercises. A random selection is usually sufficient: the goal is to get good enough that you _could_ do any of the exercises.


The nice thing about this approach is admitting that it's _okay_ if you skip an exercise you're struggling with. It can be a little frustrating at times, and feed a little bit into that insecurity, but a key realization is that one programmer can't possibly know everything. Not in this field, it's way too big. So, skip it! If it bugs you, come back to it in a month or so and you'll be surprised at how much easier it is on a second pass. Or, you'll have such a strong grasp of the language that you'll see, "Ah, there's the fundamental element I don't understand, here's what I can search for, or who I can ask to point me in the right direction."


I agree, but only if you tried really hard. I believe that the main benefit of exercises is not so much getting the right answer (who cares anyway?), but the fact that they made you go over and over again over the concepts, forcing you to really understand, to reread your notes, and to apply them, even if you fail at first. If you do this, it will stick, and, as you said, the next time you come across said concept you will be much more likely to get the subtleties and, suddenly, that mother of a problem becomes trivial.


I'd argue that you shouldn't do 100% of the exercises, or even nearly all of them.

With mathematical subjects, the best way to revise is to go back and do more exercises. So leave some there to go back to!


Isn't this true for just about any skill, not just math and computer science? You're only going to get better at tennis by playing tennis. Or piano. Or woodworking. Or communication skills. Best way of learning is actually doing the thing, not reading about doing the thing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: