Have you ever accidentally hit some unknown keys on your keyboard and saw some gobbledygook like the following pop up?
In case you’re wondering, you’ve accidentally hit CTL + U. And this has revealed your website’s source code! Congrats! This is the source code, or skeleton that our web browsers use to turn mundane letters and numbers into the beautiful things we mindlessly scroll through every day.
It’s 2020. You probably know all of this by now. But what you may not know is how to read that code. Sure you recognize a lot of words, but the language? Whaaaat? And while many of us have dreamed about ‘learning to code,’ if you’re like me, you take one look at the image above and think ‘That’s WAY over my head.’
However, that may not be so true. Programming is simply learning a new language – several new languages, in fact. Before you sign up for classes though, let’s dig into that first step in learning – Computational Thinking.
What is computational thinking, you ask? Great question. It’s really not so different than critical thinking, and you probably utilize it more often than you would think. For instance, if you’ve ever looked in the cupboard and turned that old box of Bisquick and frozen chicken (let’s hope the chicken was in your freezer and not your cupboard!) into Chicken Dumplings, congrats! You’ve computationally thought that through! Going from raw ingredients, imagining how to substitute, merge, divide, reimagine, and apply external processes (uh, like putting it on a stove), to end up with a delicious hot meal.
And here’s the comparison: Software algorithms can be likened to a recipe. You take random ingredients, and following a step-by-step process, layer them together in certain quantities until they produce the desired outcome. And of course, because it’s math (and in the culinary case, we’ll throw in science), you need to follow certain basic principles.
- List ingredients first (and in order)
- Specify specifics (size, quantity, time, etc.)
- Watch for signs that things are running (erm cooking) correctly at each stage
- Offer opportunities for customization, but make note of what’s critical. After all, computers don’t really get nuance; you need to spell everything out.
In both cases, you imagine the end result and then break it down into manageable pieces to get there. You with me?
We can all agree that programming won’t be going away any time soon. Coding opportunities increasingly surround us. So why not start on the path to learning about it? Or teach your kids to approach situations with a computational mindset? Computational thinking opens doors! Simply by taking a complex problem, understanding the problem, and developing possible solutions that a computer, a human, or both can understand.
The BBC outlines four cornerstones for this:
- decomposition – breaking down a complex problem or system into smaller, more manageable parts
- pattern recognition – looking for similarities among and within problems
- abstraction – focusing on the important information only, ignoring irrelevant detail
- algorithms – developing a step-by-step solution to the problem, or the rules to follow to solve the problem
So, if you’re like me, and too intimidated or busy to explore one of the many free and easy ‘learn to code’ websites, just start tweaking your thinking a little bit. Exercise that computational thinking. Because if we can turn our half-filled refrigerator and cupboard into Thursday night dinner, then we can do anything! Who’s with me?
If you DO want to check out the fun world of coding, there are some great (and FREE!) resources available. Go visit Girls Who Code, Code Academy, or Hour of Code. And while many developer jobs out there won’t require you to write code to get a Frog across a busy street (Frogger? Anyone??), it’s a great first step in understanding our new and changing world.
If you’re looking for help with some slightly more difficult coding projects, you can get in touch with us for all of your programming needs. After all, our software and web developers look at this each and every day. They speak multiple code languages, read, write, and translate code, find and fix errors and issues, and generally make the world a better place with their awesomeness.
Got a broken, old, or clunky website? We can help! Or what about an inventory system that doesn’t talk to your ordering system? We can help with that too! Just send us a message letting us know what you need, and we’ll come up with the alternative solution you’ve been looking for.