Programming is a fantastic career field for many reasons (great pay, solid career growth, serious job demand). No news there. But what you may not realize about programming as a job choice is that, no matter how far along in your studies you may be, you can actually already do it really well.
“Say what?!” you may be thinking, if you’re a total coding newbie and intimidated by the perceived learning curve. Or else, if you’re in the process of picking it up or sharpening your skills, “I know I can already do it, I’ve learned through courses, books, blogs, and hours of coding practice.” But here’s the thing: every day, people of all types, in all fields, of all mathematical abilities, are “programming” in their daily lives simply by way of using certain thought structures or patterns of logic. Computer programming is just the practice of transcribing those everyday rules into a more structured format.
Not convinced? Let’s consider a few examples.
Ever assembled a toy or a piece of flat-pack furniture? For a job well done, you need to break it down into steps that are concise, clear, and easy to follow, with no ambiguities. That’s exactly how a machine processes information too. Let’s say you had to set up an IKEA bed that came with no instructions (no huge mental leap there!). You’d probably examine all the different pieces you have, sort them into the different parts of the bed, then focus on each group one at a time. Within one grouping, like the legs of the bed, you might assemble each part on its own before then screwing all four completed legs into the base of the bed and moving onto the next parcel of parts.
Essentially, you’d be breaking down the problem at hand into smaller and more digestible pieces so that your brain could understand the process without having to interpret shades of meaning along the way. You’d be approaching the situation in a specific and unambiguous manner. In other words, you’d be writing a program. Programming, or writing code, is the practice of instructing a computer to perform some type of operation.
Have you ever gotten to the middle of assembly of a product and realized you don’t have a Phillips screwdriver, and then substituted a flat-head screwdriver and still completed the project? That’s a conditional: if (Phillips exists), use Phillips screwdriver; if not, use flat-head screwdriver. The if statement allows a programmer to control if a program enters a section of code or not, based on whether a given condition is true or false.
Perhaps you’re driving along the highway and come across some road construction. You might try to detour around the roadblock by driving on a local road parallel to the highway. Traffic on the local road is likely moving much slower than optimal highway speed due to the lower speed limit, so you’ll want to get back on the highway given the opportunity. But while there is still construction on the highway, you’ll stay on the local road. In other words, when the condition “road construction” no longer exists, you can execute the next step, which is to reenter the highway. The while loop is used to repeat an action or a section of code an unknown number of times until a specific condition is met. The same scenario could also be drawn out in an if statement like the above: if there is road construction on the highway, stay on local roads; if not, reenter the highway.
Programming is also present in your kitchen. For example, a mandoline (a simple food processor) can be viewed as a function, in programming terminology. A mandoline cuts or slices X, where X can be any of a variety of things. The mandoline doesn’t know what X is, but it will still act upon X in exactly the same way every time regardless of what X is, be it a zucchini, a potato, or block of cheeese. Further, you can change the width of the mandoline’s slice to fit your culinary needs, just as you change the purpose of the programming function to change your needs. A function is a type of programming procedure that performs a distinct task and returns some value.
There you have it. Proof that programming is already omnipresent in your daily life, no matter your coding chops. That observation is pretty awesome, when you think about it. The innate cognition of programming helps you in multiple ways.
For one thing, thinking like a programmer helps you think more logically about everything, beyond just your coding work. If an upsetting situation occurs, you can break down the scenario into digestible facts to help you process it. If you’re trying to form a new habit, you can channel the if/then mindset to perform a certain action based on a certain trigger (if sneakers are at front door in morning, put them on and go for run).
Everyday programming also facilitates more effective communication. Getting used to telling a machine to do something, under certain conditions, can help you communicate with similar clarity to teammates, clients, direct reports, and management. Coding know-how provides you with the tools to articulate exactly what you need, when, and how.
Further, noticing the paths of programming thought in your normal life can help you get more organized. A place for everything, and everything in its place. Just like with computer programs: if it’s not right, it won’t run.
Whenever you feel overwhelmed or bogged down by your current work or the prospect of progressing forward, or else wonder if your professional goals as a programmer have any deeper worth, bring your thoughts back to those innate skills that you flex when you’re simply slicing vegetables or choosing tools for a home improvement project, as well as the overarching benefits you can reap from operating like a programmer. Whether you haven’t yet dipped your toe in the water of programming or you’re in the thick of the learning process, know that programming isn’t nearly as scary you think: you’re already doing it without realizing it.
Understanding the nature of how you think is the key to truly understanding how to program. Once you grasp that, you’re golden.