I don't know how many times I've read or heard this question over the years but if I had a dollar for every one of those times, I'd be a rich man. In the past I might've answered this question with "If you have to ask, then the answer is probably 'No'" but I've thought a bit about this question lately and have come to the conclusion that the process, mechanics and practice of programming aren't necessarily well understood before one decides to embark upon a software engineering career path.
Personal experience, and having worked with many different people during my career lead me to believe that there are a few common traits that indicate certain people would be quite capable of becoming software engineers and would greatly enjoy doing so as a career.
Making
If you like making or fixing things around the house just because:
- It seems like fun or saves money
- It looks like an interesting exercise, even when you know that your final product may not be as good as a bought one
- Just to “have a crack” at making something even though there’s a good possibility of failing and wasting your time and end up having to buy “the real thing”
If you like building things and enjoy the process of doing so just to learn how to build that particular thing or because you’ll learn a new skill required to build that thing such as:
- Welding for metalwork
- Cutting dove-tail joints for woodwork
- Creating test circuits on breadboards for electronics
- Hacking projects with Arduino (or the plethora of other small, board based consumer computers)
- Automotive bodywork and spray painting in order to paint a car
- How internal combustion engines work in order to build your own performance engine
- Arts and crafts of any type
- Doing something new by hand, either because you don’t have the specialised tools or as a deliberate choice (e.g. dove-tail joints with a handsaw)
then programming may be for you.
Breaking
If you like pulling things apart just because:
- You want to know how they tick
- You want to challenge yourself in putting things together
If you like to scribble, draw, design, plan or theorise on things such as:
- Thoughts about how a component, piece of equipment, or phenomenon might work.
- A breakdown of some process or pattern into manageable steps, items or sub-tasks
then programming may be for you.
Intrigue
If you have an appreciation of:
- Machinery, mechanics, electronics and/or technology whether that be from actual hands on hacking, modifying, repairing or fixing; or from a viewpoint of wonder and intrigue of their inner workings
- Learning new skills or processes in order to achieve something, and in some cases caring more about the learning process than the actual end product
If you have something more than a passing interest in the technicalities of things such as:
- Physics, the universe, and everything
- Music and the arts
- Mechanics of human movement in sports (e.g. skateboarding, gymnastics)
- Psychology and logic
then programming may be for you.
Should you, or someone you know, become a Programmer?
I’m not claiming that the indicators I’ve outlined in this article are definitive, however personal experience leads me to believe that the common thread throughout the examples above (Making, Breaking and Intrigue) indicate that people possessing these traits would be quite capable of becoming competent software engineers and most likely enjoy doing so as a career.
I’ve deliberately avoided mentioning any academic qualifiers in this article because in my opinion, the subject needs to be considered first from a personal interest and motivation angle before an academic proficiency in certain subjects (e.g. mathematics, logic, computer science) or intelligence point of view.
If you, one of your kids, or someone you know likes to know how things work, making things, breaking things or has a genuine appreciation or intrigue for the technicalities of things, in whatever subject, then programming may be a fulfilling and valuable career path to consider.