You can improve your communication, develop your problem solving skills, and reap the excitement of enjoying a full creative process that doesn’t require expensive tools and a master level of craftsmanship.
1. Improves communication
Have you ever tried to explain a thought but found yourself all over the place while the other person looked at you in confusion? When she asked to clarify, you fumbled for answers and found yourself also confused?
In programming, what you’re doing is essentially giving the computer a set of instructions to accomplish certain task. To complete the task, however, you need to describe every step orderly, otherwise the program wouldn’t work.
Through the act of creating instructions, it forces you to begin with the outcome you want and then filling in the necessary steps to achieve it.
So before explaining your thoughts, you’d start with what you want your listener to understand and react, and then carefully work backwards to create your story.
With respect to programming, let’s say you want to find out the year the user was born. Your outcome would be the birth year. To calculate that, you’d need to get the user’s current age and the current calendar year. So your program instruction could look like this:
- Ask user for her current age, which she enters 26
- Subtract her age from current year, which is 2014 – 26
- The outcome you get is 1988
It’s clear, concise and logical.
You can also practice great communication through the habit of adding comments in the code.
Comments in code are ignored by the computer and are not part of the instructions you give. Instead, they provide documentation of what you are trying to achieve in certain parts of the program, so that you could easily refer to it next time.
It’s similar to taking notes in a lecture, recording results in an experiment, and writing a journal. Comments are the thoughts you have when writing a particular instruction.
Perhaps you want to revisit the code so that it does a different thing?
Maybe you’ll want the age program we wrote above to be able to calculate the number of weeks old as oppose to years old?
How about noting to your great grandson in the future when he sees your code that in order for the program to run correctly, he has to change the year from 2014 to the respective year?
Just note them down in the code as comments.
You’ve probably guessed right now that the comments also help others to understand your code if you decided to share it. If you pursue this journey, you’ll soon realize that there’s so many ways to do the same thing.
In any piece of software, it’s most likely that the code is written by a group of programmers. And everyone will have their own styles.
In order to make the code understandable and accessible, it’s imperative to comment the code.
Even for individual coders, like I am, I put in comments to remind myself of why I coded a feature a certain way. If I decided to add extra features, the comments could help me to ensure the existing code functions the same way.
2. Helps develop problem solving ability
When someone asked you the reason to back your statement, have you ever gave an answer that was not related in any way only because you needed to provide a response but didn’t want to look like a fool?
In programming, you are to anticipate all the problems that could occur and provide instructions on how to handle them when they do happen. This is to make sure your program works as intended.
The two typical problems that could happen in code are user error and logic error.
User error can easily be solved by providing fallback instructions when the user tries to skip a step. For instance, when someone wants to drive a car, she’ll unlock the car door, insert the key into the ignition, start the engine and shift into gear. But if she unlocks the door and immediately shifts into gear, she could do it, but the car won’t go because the engine is not running. The fallback would be the car doesn’t do anything at all.
Take the age program for example. The calculation will only work if the user provides numbers in each step. But how can we be confident that the user won’t enter “twenty six” instead of “26”?
To solve that, we will have to add an extra step that checks if the user types the word or the number. If the user enters the word, then the program will give a friendly reminder saying, “Please enter your age in digits”. If the user enters the number, then the program proceeds to the next step and then calculates the birth year. But if you decided to make a really smart program, you could just have the computer convert from word to numbers automatically without the user realizing it.
In the context of conveying your ideas, this is equivalent to predicting the possible questions that someone may ask you. Since you already have a good sense of what to expect, your response would be more persuasive.
However, when a problem arises that’s out of your current ability, programming can teach you how to be persistent in finding a solution. This is referred to as debugging in the programming world, and usually happens with logic error. Sometimes, logic error can be solved with a minor change in code. Other times, it requires a complete rethink of the instruction.
Logic error happens because the desired outcome of your program is not achieved. The only way to solve it is to keep trying. Through this, you inadvertently seek for answers – by asking around, observing how other people do it, or just keep hacking your way until something works.
And why do you have to keep trying? Because if you don’t, your program won’t work. It just won’t do it.
For instance, let’s say you’re telling someone to go to the kitchen, pick up the trash, throw the trash into the dumpster and pick up the mail afterwards. Now let’s pretend that someone is a program your writing.
When you execute the program, it goes to the kitchen, picks up the the trash, throws it into the dumpster and… nothing happens.
Through the error logs generated by the program, you discovered that it says mail location undefined.
So what happens next? You could fix it a few ways:
- Write a set of instruction to indicate where the mailbox is
- Duplicate the code that describes the kitchen location, but replace everything kitchen related to mailbox
- Find similar program that someone else wrote defining the mailbox, and hook it up into your program
- You realized that getting the mail isn’t important, so you removed that bit of instruction
Which one will work? I’m not sure. Try everything and see. Eventually through practice and experience, your ability to jump to the correct solution will be faster.
And this is all part of the coding experience.
On top of that, the excitement of finally getting something to work is always a positive motivational boost.
3. Experience full creative process without spending a fortune
The ability to create is probably one of the most powerful innate attribute we all possess, whether it’s cooking a meal, wrapping a gift, humming a tune, making up a story or planning a vacation. It’s fulfilling and exciting.
Did you hear about Thomas Suarez, the 12-year old app developer who created and sold apps in the Apple App Store? For a kid, he does have a great talent and his future does seem very bright. But part of the reason that he could do it is because coding is extremely easy to get into.
Programming is one of the fastest way to create something awesome with a very low barrier of entry. To get going doesn’t require extensive craftsmanship, expensive tools and materials. You don’t need to spend a fortune of your money and time.
You don’t need a special computer. You can start right now with the computer you’re using. You don’t need expensive software. You can begin with any text editor that comes with the computer.
Coding is cheap, easy and produces great result and satisfaction. Now, being a great programmer is a different story, and requires you to put in the same amount of hours you do for other trades. But to get started and create something that works is fairly easy.
More importantly, it’s consistent.
Have you ever tried to draw something but got frustrated because you realized you didn’t have the necessary artistic talent? Or have you ever tried painting the walls of your house, but ended up with fuzzy edges at the areas you masked off?
When you program, an instruction will always perform the same task. And that same task will always provide the same outcome. It doesn’t matter if you’re having a bad day. As long as you know how to give instructions to the computer, you’ll be sure that the computer will always run your program with the desired outcome.
Once you discover the consistency of programming, you’ll eventually begin to imagine all sorts of creative things you can do.
Soon enough you’ll be on a journey of creation: From conceiving an idea and implementation to refinement and producing the final product. Show it to your family and friends, and be proud of what you made.