Some advice for young Computer Science students

1. Get into the habit of writing out code by hand. It doesn’t have to be good code- it might not even have to be code at all. Psuedocode, flow diagrams, even pictures are a good start. Get in the habit of designing the structure of your program in your head; conceptualizing programs (or even just a class, or a function) will allow you to better understand what you’re trying to accomplish, and really force you to ask yourself tough questions: does this logic make sense? Is there a better way? How do I do this again? For the latter, writing code out frees you from the tyranny of convenience: it forces you to remember basic concepts, making you less reliant on Stack Overflow or simply Googling for the answer. Not that convenience is inherently bad, but you want to maintain your own independent knowledge and ability. Try things out before you look for the right answer. It’s equivalent to learning a foreign language by immersion. It forces you to remember the syntax

Being able to write out code is especially helpful for CS courses with exams that ask you to program. If you’ve practiced scribbling out code, not only will be better able to recall concepts, you’ve also gained the ability to start writing statements without an IDE’s autofill doing that for you. (That is also why a text editor, particularly a command line Linux one, is preferable for some programmers. In fact, coding in Vim without internet on or documentation to check is pretty much the same thing as writing code out by hand, minus a bit of portability.) Start writing out code a lot on your own, and the blank page with only a function prototype at the top won’t look nearly as daunting anymore. Don’t be embarrassed on ashamed

Whether GitHub will really make tech interviews obsolete or not, a programmer needs to be able to think programmatically without a computer.

2. Never, ever, be afraid of looking something up for fear of looking foolish.