What are some things you wish you knew when you started programming?
1) Language choice isn’t that critical if your goal is to learn for the sake of learning.
That said, I recommend starting with, a like Ruby as opposed to a lower level language, like C, which is far less semantically rich. If C is like speaking in grunts and hand gestures, Ruby is like speaking in song and idiom. Those grunts matter! But, if you’re just starting out, a higher level language will give you more momentum. Coding is difficult enough to start. You should definitely not spend months self-flagellating in a cold dark windowless room learning machine code.
2) Language choice is more critical if you’re seeking employment for your code skills.
3) Languages and frameworks are always changing.
An engineer isn’t just a person who knows some languages. That’s what a compiler is. An engineer solves problems. Your tools (languages and frameworks) will change, due to the task at hand, an employment change, or the natural evolution of programming paradigms and best practices. I know a guy who used to write embedded software in C/C++ at Motorola, and these days he’s a Android dev.
4) Errors are awesome.
Some languages and frameworks have more descriptive errors than others. When you first begin coding, you aren’t accustomed to constant failure, and so those gigantic error messages feel defeating or overwhelming. After a few months, you accept that the stream of errors is just part of the process. The more detailed the error, the better.
5) There are times to bang your head against the wall, and then there are times to ask for help.
As with most things, you learn coding by doing it. If every time you get stuck, you immediately ask your brilliant, cool, and helpful friend Lisa for help, you are doing yourself a disservice. Depending on the complexity of the problem, you should give yourself a time limit for actively trying to solve it. If you’re struggling with something like, simple string manipulation, give it 30 minutes before posting to Stack Overflow or asking your friend. If the problem is more complex, your limit may be a few hours.
When you’re first learning, you will benefit from asking questions when you max out your time limit. Once you’ve grinded on something simple for an hour, it’s obvious that critical coding thought habits are still too far out of your wheelhouse for you to be “productively stuck.” Oh, and ask good questions. Like “If you got stuck on this problem, and you tried X, Y, and Z, what would your next step be?” If you want to learn to fish for yourself, pay attention to the habits of good fishermen.
6) Take a damn walk.
If you’re really stuck and you just want to explode into a million tiny zeroes and ones, sometimes you just need to give your mind a break. Take a walk, talk with a friend, play a game, work out. Eat something. So many times I’ve taken a break and then come back to see the problem at hand in a totally different light.
Feeling ready to learn to code? Take a look at our brand new Coding Bootcamp Prep course.
Make yourself useful.