Letter to a young programmer

Dear Skillcrushers,

My name is Tim Preston and I am currently a student at MakerSquare, a 10 week full-time intensive web app development course in awesome Austin, Texas.

I am by no means an expert programmer. I am, however, a very thorough and methodical learner, so what I can offer to other aspiring programmers are some lessons I’ve learned on how to overcome some of the frustrating experiences that you will be sure to encounter.

I absolutely understand how daunting it can be to learn and debug stuff in what can only be described as an alien language. But, it doesn’t matter where or how you start, or how bumpy the ride is, what matters is that you DO start and that you keep at it!

Lesson 1: Understand the basics.
I can only guess what it must feel like to debug a program with tens of thousands of lines of code, but for us beginners, understanding the basics (not just learning, but truly understanding) is crucial.

There’s no way any of us will ever know that a word has been misspelled without understanding the alphabet first, and the same goes for code.

In this day and age where we’re so obsessed with instantaneous results, we find ourselves wanting to fly before we’re aware of the hands and knees we have to crawl with.

The beginnings are humble, but there is beauty in that modesty, so take time to absorb the basics. It’s only with this kind of foundational knowledge that you’ll be able to take full advantage of all of the future possibilities.

Lesson 2: Start making sense
When I find myself stuck, the first thing I ask myself is: does the code I’m writing make sense?

If I had to describe (even through body language) that I needed to use the restroom, any person could figure out what I was trying to say, because humans are intuitive.

Computers, on the other hand, are not.

I think this fact is one of the hardest to come to terms with. It’s okay to feel that way, because not only is it a brand new language to learn, it’s a language that is entirely instructional. No sarcasm or tone will work here. However, we’re all capable of understanding logic – the reason many people believe that “coding isn’t for everyone” is because they may be intimidated by the syntax and “grammar” of programming.

It’s perfectly natural to feel that way as human brains aren’t wired to work the way a program needs you to. It is up to us to learn to “talk” to the machine. When writing code, you have to tell your program what has to be done and EXACTLY in the right order.

If you’re making sense to the computer and yourself, you’re on the right track.

Lesson 3: Get good at problem solving
So let’s say the basics are covered, and let’s even go so far as to say that the logic of your work is fine. And yet, your program is laughing at you (if it could) when you specifically asked it to be quiet!

What’s the problem??!!

Chances are, the syntax is incorrect. Perhaps you didn’t put in the parentheses, or maybe one semicolon is misplaced. Or worse yet, you forgot to throw in an “end” to kill a loop before you needed another “end” to finish the program…and maybe even one more “end.”

Or two.

As programmers (especially the aspiring kind), you’re quick to realize that there are a million ways for a program to go wrong, yet only one way it can be right.

Some would disagree. They would say that with programming there are always many ways that code can be written in order for it to execute properly.

But that’s not my point – my point is that there is only ONE WAY for a program to actually be right, and that is only if the logic and the syntax are in perfect harmony. Take either out of the equation and you’re left with a never-ending pile of frustration and confusion. Which leads to…

Lesson 4: Embrace that frustration, seriously, embrace it!
The MakerSquare instructors hammer it into our heads to EMBRACE the frustration. I’m not kidding! The sooner you do what seems completely masochistic, the more comfortable you will become with it and the less intimidated you will feel. But we only need to embrace that frustration enough to do the right amount of problem solving to squash it.

And when you do squash it by making a program execute properly, you will feel GLORIOUS.

Extra bonus lesson:

Stay positive and motivated with why you wanted to learn programming to begin with.

Remember: You’re a person, and what you’re dealing with is a dumb computer, and there is no such thing as a program or even a computer that is smarter than you!

Happy programming!