Jonathan Blow, creator of Braid, gave a talk to UC Berkeley computer science students on his style of programming.
Most of the talk is about the aesthetics of code, and about how it's possible for an individual to write the ~90,000 lines of code needed to write a game like Braid.
There is some great advice on ways to code to get things done, but probably the most important thing that Blow says isn't really about programming at all (transcribed below):
Back when I was an undergraduate the Internet existed but it really wasn't the thing that we have now. There wasn't that much of substance online then. Now of course the Internet is huge and it's in everybody's life and it's full of all these people saying things and trying to share information with each other, and I think what happens very often is that you read something somebody said on the Internet and you're like, yeah I get what that guy is saying but he's wrong, or yeah I get what that guy's saying, he's right, but I already knew that and he's stupid, I know better than that now.
Please entertain the idea as you go out into the world that usually neither of those things are true, usually you don't actually understand what the other person is saying. They may be using words where you think you understand each individual word, but the way that they interpret their phrase is different to the way you interpret their phrase and this leads very quickly to problems and it can prevent you from coming to a better understanding of computer science.
Worth a listen, especially for the context surrounding this section that really emphasises the point.