Welcome to graduate school! (And, for that matter, real life.)
As in grad school, the secret is: If you can't figure it out, ask around. Form teams that stay up until 3am waving their hands and sketching on chalkboards. If nothing else, it's a bonding experience that you'll treasure for life.
Of course I can always ask on the web, but having to break off from coding, pose a question, and then wait for it to get answered before I can continue really breaks up my learning curve.
[0] People will be a lot more helpful if they know you are trying to learn, rather than posting a "send me teh codes plz" request. Also they will hopefully give you just enough of a hint and not spoil the whole thing for you.
This.
I often find that I run into a problem, try to solve it on my own, then bring someone unfamiliar in to get a fresh set of eyes on it. It usually goes like this
Me: "Hey, I honestly can't figure out why this is doing this particular thing, can you take a look? <start explaining problem here in detail> ...FUCK! Nevermind, I know exactly whats going on. Thanks for your help"
Person I asked: "Huh?Uh sure? I can solve problems with my presence alone"
It seemed ridiculous, but it worked wonders. Most of the time said professor didn't have to open his mouth. It was just a matter of organizing your thoughts in a coherent way.
There's a wiki article about it here:
Then I get to stamp something 'solved' on my task list, and everybody's happy.
I've been programming professionally for almost 20 years. What you described right there is the fundamental skill/activity I have performed. Whether waiting for a spec, or decision if this feature is going in, or most commonly like your self looking for answer to some problem I don't get.
Good programmers either know everything (ha) or know how to learn/find the answer quickly. It's a great skill to start honing now.
You're skipping a vital step. Searching for the answer on the web. Most of the time the question you want to ask has already been answered.
One thing about those though is that if you can't complete them, then just move on and maybe mark it for later. You should try to figure them out for a bit, but sometimes you just can't and have to come back to it later.
Finally, make sure you have this latest version of the book. I added a small section in the beginning which talks about this, so you might have an older version.
EDIT: Oh I'm assuming you mean the Extra Credits. The lessons you should try really hard to do and figure out before moving on. But skipping Extra Credit is quite alright.
Example: http://stackoverflow.com/questions/3391998/pydoc-is-not-work...
Freenode’s web client http://webchat.freenode.net/ isn’t perfect, but it should be figure-outable when accompanied by some simple directions.
Every programmer in the world is pissed that "I'm not sure - I'd Google It" is not an acceptable answer to a question about "how do I do X in programming language Y". Happens every day.
That being said - a book forum or Q/A section on the site would likely be very helpful. I'm learning Objective-C right now and the book I'm using has a corresponding forum associated which usually has the answers I'm looking for.
Maybe some kind of forum in addition to the bok would be a good idea.
Of course, there's always irc.
On the other hand I might have used thatcher help too early...
My only gripe is that he poses certain questions/exercises that he fully expects us to solve, one way or another. But if we cannot; we're screwed. He does not give the answer. It has only happened once so far, but that was enough for me to miss out on what seems like a pretty crucial part of the book.