The skill of software programming is one that takes a lot of learning, practice, and passion. Some of us are new to programming, and many have years of experience. Getting some experience in programming can teach you a few habits and actions about the real world.
One of the main functions of programming is to write code to solve a problem. The problem is to get the computer to perform some kind of task.
When we write programs, we don’t just write line after line of code and press Compile when it’s done and it all works perfectly. We need to spend some time thinking about the code. We need to analyse the problem that we have, and come up with ways on how it can be solved.
When we need to solve a problem, there are many things we can do to help us.
- We can use what we know about the problem and the language to come up with a technical solution.
- We can research for other occurrences for the problem, such as using Google to find the issue or searching on forums.
- We can ask other people for advice, such as coworkers or forum members, whether they are more experienced or not
Each of these methods increases our ability to solve problems in programming, and they can be translated to real world problems as well.
Brainstorming and Brain Dumping
A good habit that programming teaches us is the ability to brain storm, and the related habit of brain dumping.
Brainstorming is the process of thinking of ideas in an unfiltered and free thinking way to solve a problem. It’s often done in groups, where one person writes and the others suggest ideas. It can also be done by one person, where you just write down a whole lot of ideas and see what you end up with.
Brain dumping is another process where you write down everything that you know about a topic or an idea. This is based on what you already know about something, whether it’s technical or not. It doesn’t even have to be a problem. It can be an idea in itself or even a goal.
These two processes are good to use in real life, and are helped by getting experience in programming. It teaches you to think about different ideas and different problems and to capture them in a single place.
Programming will teach you how to perform analysis on many things. You’ll get to analyse blocks of code, functions, logs, and performance of software. While the actual areas that you analyse may be specific to software programming, the concept of analysis is something that you’ll get more and more proficient at. We can then apply this to our daily lives.
The ability to analyse things and look for problems can be transformed into our daily lives in many areas, such as:
- Working out the flow of cars in a carpark to find the best places to drive or best way to find an empty car spot, based on movement of lanes or possible car spaces
- Monitoring traffic light patterns at pedestrian crossings to work out when the lights will change
- Improving the way you prepare food in the kitchen when preparing a few items at once and timing them to be ready at the same time.
The skill of performing analysis and applying it to real life situations is something that we learn over time and can help us in many ways.
Automation and Improvement Of Our Life
The concept of programming, as you know, involves getting a computer to do something automatically so that a person doesn’t have to do it. This is called automation. It’s a pretty cool idea – getting a computer to do something so you don’t have to do it!
After spending some time in the programming field, you might come up with ideas on how this automation concept can be used in your own life outside of programming. This is even easier these days with the increase of personal devices and communication methods. Tools have been developed to do a lot of this, or you can even build your own. Some ideas are:
- Automatically syncing files between different devices (such as your phone, work PC and home laptop), so you don’t need to copy and paste files onto a USB drive
- Automatically back up photos from one location to another every week, so you don’t have to do it and so that these files are kept in case something goes wrong (such as this article on Lifehacker suggests)
- Converting your physical movies and music to a digital form so you can search and watch things easily
There’s a whole world of personal automation that I haven’t even gone in to, but the possibilities are increasing, and the experience we have in programming will cause us to come up with more ideas.
Programming is not an easy job. It might seem easy – just type some code, put in some IF statements, a few function calls, and away you go. But in reality, it’s a lot harder than that.
The concept of persistence is to keep at something until it gets done, regardless of the distractions or problems that come along. Persistence can be applied in many ways:
- Sticking to your plan of saving to buy something, such as a new car
- Keeping up a regular routine, such as reading a book before bed or going to the gym every week
- Focusing and working on solving a problem with something at home, such as a tap that leaks
Appreciation for Quality Software
Over the years of programming I’ve learnt that good quality, working software is hard to create. Well, it’s not impossible, it just takes a lot of time and effort.
I use a lot of software, both at home and at work, to do various things. Some of this software runs quickly, is well designed, and doesn’t crash. Other software doesn’t work properly, has a lot of errors, and isn’t that easy to use.
Other than general usability, you learn to appreciate software that actually works and works well, because you know what actually goes into the process to create it.
This doesn’t just apply to software you use on a computer. It can also apply to your mobile phone or even software on your TV.
Good quality software is something that motivates me as a developer.
Nothing Is Perfect
A lot of effort goes into creating software. There are separate roles for designing the look and feel of the software, designing how it works and interfaces with other systems and tools, writing the actual internal code, performing testing and then releasing or implementing it.
After all of this work, software sometimes still isn’t perfect. This can be for many reasons.
Sometimes, time constraints can apply to the project which means some features don’t get included or there isn’t enough focus put on testing. Other times there are known issues with the software that don’t get fixed before the release.
It can cause you to realise that many things in life aren’t perfect, which is a helpful way of looking at things. Your car may not be perfect, but it gets you where you need to go and carries all of your things, so it does the job. Your house may not be a mansion, but it’s enough for you and your current stage of life.
The same thought can be applied to many things, but in your life and others. Your country’s government may not be perfect, neither may the weather that day or the dinner you had last night. Nothing is perfect, but we should appreciate the quality in what we have.
Programming, like many areas of IT, is constantly changing. New technologies are being developed and new methods of creating software are being used. All of this means we need to stay up to date. We do this by learning new things.
Learning new technologies, new versions of software, and even new languages means we can stay current and effective at our job. There aren’t many other jobs that require people to stay up to date like programming.
The ability to keep learning can be used in other areas of our life. We can keep learning about non-programming topics like IT industry trends and how to use other pieces of software. We can keep learning at home, such as how to cook, improving communication, and improving our health. The more we know, the more we can improve. As the saying goes, “knowledge is power”.
If you want to keep learning and improving your skills, visit my Database Star Academy site, which has a collection of online courses to improve your skills and your career.
So, there’s a list of real life habits that a career in programming can teach us. What other habits have you learnt from programming?
Image courtesy of jscreationzs / FreeDigitalPhotos.net