I’ve written about how having fundamental knowledge on the command line can help you outside of landing an engineering role. It can help give you better visibility around what’s happening on your computer, on top of automating common, mundane tasks.
What about programming in general, though? What benefits do non-engineers gain from learning how to give instructions to a computer through code, and how can it help you in your day-to-day life, regardless of who you are or what you do?
With the rise of “no-code” tools, on the surface it seems like engineers might even be obsolete. Unfortunately, I can assure you that while these tools seem attractive, they’re all powered by one thing under the hood despite the name: code.
Learning basic computer programming fundamentals (not anything crazy, like how to invert a binary tree 🤓) is super important in this growing digital age. Even if the benefits aren’t clear now, in just the few years I’ve spent programming and building up my knowledge over time, it’s thoroughly changed the way I think and approach the real world.
Abstract & logical thinking
Programming promotes logical and creative thinking. There’s always more than one way to solve a particular problem and satisfy requirements.
Like many software solutions, something as benign as creating a basic quiz can be broken down into many smaller problems, building up to bigger functionality:
- Showing the question to be answered by the user
- Prompting the user for their answer & storing their input
- Comparing the user's answer to the correct answer etc…
Each project you build or plan will have different requirements, but fundamentally you need to think on a microscopic scale around the problems to be solved to get to the final result. Think of it like explaining what you want done to a 5-year-old.
Productivity & the power of automation
They say great programmers are lazy, and I’m no exception. The word “lazy” might have a negative connotation, but being lazy can be a good thing. You’ll rarely catch me spending 5 hours manually inputting data into an Excel sheet because surely, there’s a better way.
I’m obsessed with efficiency. My mind is constantly looking for small optimizations to increase throughput.
Let’s say you’re working on an app with 50 thousand users. Your boss wants you to send through an Excel sheet containing information on how many of those 50 thousand users have signed up for a specific feature. All the data you need is available in the database, but there’s just one problem. There’s 50 thousand users.
Even if you’re in a good rhythm, and it takes you ~2 seconds to get one user’s data and document it in the spreadsheet, it would take you just over a full day of work to complete that one report.
It’s possible some companies would just bear the cost of hiring a few extra employees with some overtime to expedite those results. But, even when you split the work across multiple people, it’s hours of time that could be spent elsewhere. Why settle with “good enough”?
Give me six hours to chop down a tree, and I will spend the first four sharpening the axe.
A creative solution through programming can save you incredible amounts of time, allowing you to “buy back” time you would’ve spent doing the task had you not developed an automated solution. Essentially, offloading time you would’ve spent doing this dull task to a computer, so you can be more productive.
Or, if you’re like me, automating tasks to get back precious time for games or YouTube. Need to manage that a bit better…
A more in-depth understanding of technology
Technology is becoming an increasingly important part of our lives. We’re surrounded by technology everywhere we look, and the rate of technological developments and breakthroughs has no sign of slowing down.
I think there’s benefit in having at least a surface-level, superficial understanding of how the services and tools we use work under the hood, for many reasons, including:
- being able to troubleshoot issues independently, saving time and potentially money
- not being left in the dark when others are using certain technical terminology
- incorporating technology in your interests
Okay, I get the idea. Where do I get started?
Learning basic programming is indispensable, but it’s definitely daunting if you’ve got no idea where to start. Even if you’re actively learning, but searching for some extra tips to supercharge your path to being a great developer, take a look at my piece on Earlywork around 5 secrets to teach yourself how to code!
It goes into detail around why setting tangible goals is essential, planning & breaking down problems, but most importantly, getting your hands dirty and digging deep to solve puzzles.
I’m on a personal mission to make programming more accessible and understandable for people all around the world through my newsletter, Nevuletter. Check it out, and subscribe if you’re looking for more content like this and other valuable information to hit the ground running, with a vast repository of programming knowledge around all kinds of topics.
Did you find this article valuable?
Support Blake by becoming a sponsor. Any amount is appreciated!