A Fellow-Beginner's Guide to Programming
If somebody told me at the beginning of my college career that I would take classes that required programming and coding skills, I would have switched my major. I was clueless when it came to computers; using my smartphone required about all the tech-savviness I could muster. Every time I had an appointment with my advisor, they always recited the same advice: take as many math and programming classes as you can. Each time I heard this, I would chuckle and kindly reject that advice. My major, economics, has nothing to do with computer science, right? Wrong. Not only does my major have a lot to do with computer science, many other non-computer science majors require a lot of computer science knowledge.
The more I had to program, the more I hated it. I was probably the world’s worst, most inefficient programmer before I realized I wanted to change. If you are like me and want to embrace the world of computer science, data analytics, or anything along those lines, instead of running from the inevitable, take a class or start teaching yourself. Here’s how I recommend getting started on your own:
1. Start with a base understand of how computers work
It might sound silly, but it’s amazing how hard programming will be if you don’t know what the computer is doing behind the scenes. Take some time to learn about the basics of what your computer is made of, why it’s made that way, and what it’s capable of doing - even if your programming days are few and far between; it’ll give you a greater appreciation for that piece of hardware that is likely a huge part of your everyday life!
2. Choose your first program to learn
There are so many different programming languages out there: Java, C++, Python, R, Ruby, Swift… the list goes on and on. While some are more user-friendly than others, in the end, they all achieve the same purpose. Once you learn one, it’s easy to learn more, so just because you start out using Java doesn’t mean you’ll be a Java junkie for life. Personally, I would recommend starting out with one of the most widely-used languages, simply because there will likely be more resources online to help you learn and troubleshoot. Talk to professionals in the field you’re pursuing and see what languages are commonly used. There isn’t really a universal “best” language since the most useful language to learn is probably one that is used a lot in your field. If you’re indifferent between a bunch of them, I would recommend Python because it’s free, powerful, and used in many different industries.
When you’re just starting out learning how to program, there are almost guaranteed to be easily accessible answers to any questions you have. Google everything: specific problems, examples, errors, etc. There’s no sense in struggling and trying to figure these things out by yourself - even software engineers Google their problems all the time. Programming can be hard, so don’t make it any harder on yourself!
4. Keep a pen and paper close by
When you come across a programming problem you want to solve, first write out what you want the program to do in general terms. It’s called “pseudocode,” and while your computer won’t understand it if you try to write it as a program, you will understand what you need the program to do, and that’s most important. Pseudocode is meant for people to read, not computers, and it will help immensely with any program you’re trying to write. It’s kind of like writing a detailed outline for a paper - it’s the hardest part, but once it’s done, the paper basically writes itself!
5. Don’t give up!
As someone who is also still a beginner, I know how hard it is to keep going when your program is full of bugs, you can’t figure out why it’s not working, or you don’t even know where to begin. However, learning how to think like a programmer can be helpful for whatever you end up doing in life. It forces you to be explicit and clear in your thinking. The computer does exactly what you tell it to do, not what you want it to do, so you will naturally become good at thinking through every step of a problem and communicating each step precisely and accurately.