Thinking Like a Programmer

I’ve been trying to learn to code for a long time. I took a Python course on Udacity and a JavaScript course on Coursera, and these were great experiences that really got me interested in coding. Then I started doing lessons on Codecademy, where I learned the basics of JavaScript, HTML, and CSS. These lessons were really fun and informative. I’m very thankful for all of these opportunities to learn and to explore my interest in computer programming.

But I didn’t really learn to code until I took Foundations of Computer Science at my college. I came into the class with a pretty good knowledge of the basic syntax of programming. I knew how to write a for loop and how to solve basic problems by coding. But that class offered me something I didn’t get anywhere else. In my Computer Science class, I learned how to think like a programmer.

It’s one thing to know how to write code. I think anyone can learn that. You just memorize how to communicate with the computer in whatever language you’re using, and you spit it back out at the computer. And using this knowledge, you can do some pretty cool stuff under the right circumstances. But there is a limit to how much you can really do with just a knowledge of a computer language, and I hit that limit with my online studies.

And because I hit that limit, I got burned out. I stopped trying to learn. I thought that I had learned all there was to know and that I just didn’t have a knack for it. Codecademy kept giving me exercises to do, and if I couldn’t do them in one or two tries, I would find a way to trick the computer into thinking I had done what it had asked, or I’d look up the answer on Google. I wasn’t really programming.

Then I enrolled in my CS class at school, and somewhere admist the lectures, programming exercises, and exams, something changed. I learned to think like a programmer. I learned to approach challenges in coding not as obstacles to be overcome, but as puzzles to solve. I learned to break them down into pieces and to get excited when I could finally get all the pieces to fit together just right. I learned to be persistent when I ran into a wall and to try different approaches when my initial ideas inevitably didn’t work. I learned to code, and it felt great.

I owe most of this to my professor, Dr. Ferrer, who was very patient with everyone in my class and really made an effort to teach us not just the basic syntax of programming, but also how to approach programming. He even put the entire course schedule on hold and postponed a test because he felt like some of us weren’t ready. He wasn’t just concerned with providing the information so we could reproduce it on an exam. He wanted to teach us how to think like programmers, and he wanted us to love coding.

I’m proud to say my love for coding has been revived. And now that I can think like a programmer instead of just trying to reproduce the right syntax over and over, I have no limit to what I can do with my programming knowledge. I’m going back to the online class route and taking Stanford’s Programming Methodology class through iTunes U. I’m really enjoying it, and I can see how different the experience of coding is now than it was before. I hope to continue to learn more about programming and eventually develop my own app for phones and tablets. It’ll be a while before I get anywhere near that point in my programming skill, but I’m so excited to learn more about coding every day, and I can’t wait to see what I’ll learn to do next.

Side note: If you don’t know how to code, you really should give it a try. Learning how to communicate with computers on their own terms is not only a great mind exercise, it’s also a marketable skill. Plus, it’s just really fun! Resources for learning to code are everywhere. I personally suggest taking an introductory-level Computer Science class at your local university or trying out Codecademy to get started. Good luck, and happy coding!