There are things that every developer does even when he does not want to. Maybe things that happen on his day forced him to learn habits that he had to create to survive in this job. I still have habits that I had acquired in my years as a developer, habits that are still useful today.
These habits transcend the professional activity of the developer and end up integrating the personality of developers themselves: haven’t many people who had talked to a Software Programmer heard things like a “high priority interrupt” or “Sorry,I am kinda bugged”? Sometimes it helps, sometimes it gets in the way, but most of the times are these habits good to have. So I do believe everyone should have a little bit of a developer. Everyone should have these skills that I list below.
Understanding programming logic or even to program.
Understand the most basic concepts of programming might help anyone to perform better instructions, to execute more complex instructions and understand what really happens behind the scenes of any software. Then, at least, one would know that it is not easy to “just add this little thing”.
To understand programming logic helps to realize that each statement is the equivalent of a brushstroke of paint on a canvas. Therefore, software is the sum of several coordinate directions, analog to all the strokes forming the final painting. It helps to understand what are the so called bugs and why they happen.
Every developer surely was thwarted by calling technical support and had pass a huge battery of basic questions. Stupid questions sometimes.
Make sure you are connected to the power. Then, restart the machine.
What is obvious to the developer, and not the majority. It took me some time to accept it.
Or because the very exercise logical reasoning, is to adopt scientific method / engineering practice as productivity, is the fact that developers can, often, to work things they never had previous contact.
There is a video Dilbert video that is just about it. He speaks about engineers, but this is the behavior of all developers: they have a natural instinct to find the problems of all things that move. Or, in other words, they have “the knack”:
I doubt that most people read the manual of their TV. Neither I belive they have used the help of MS-Word to learn how to do something. Or even they have read something in the help of MS-Excel. I rarely meet people who read the manual of their vehicle. Rarely.
An instruction manual is one of the best sources of information that one can find. In an instruction manual you will find… Instructions (pretty amazing, isn’t it?). On the other hand, developers are good at learning from documentation. I know people who learns even without documentation (although this never happens smoothly).
Learning to interpret manuals and use this acquired information to put things to work is a habit that should be common to all.
In time, developers do not always learn it themselves. Sooner or later, if they do not have this ability, they might end up asking a question in an internet forum and would receive back a “RTFM”. End of story.
It’s a nice incentive …
This and that people who says he spent another day and did not use formula Bhaskara. I honestly know that there are plants classified as monocotyledon and that also make little difference in my life, but I’m happy to know a some basics about botanic…
Let us return to algebra. If you know how to work with formulas, it was the damn Bhaskara who taught you. If you understand that an interest rate calculation formula with a lot of letters that represent numbers, it was it again who taught you. Face it: it is a nice curve to learn about, the parabola and Bhaskara are easy. One could use another curve such as an ellipse:
Anyway, it was not the curve itself that was being taught, but algebra. Letters instead of numbers. The famous “variables”. Usually developers have good mathematical notion, in the example of Bhaskara, geometry or algebra. Even when they are awful with numbers with numbers (i.e., bad in arithmetic).
An addendum: to know the difference between a linear and a non-linear curve was another thing that was taught in the parabola. How? By having studied the parabola in depth, you saved at least that.
Be Inquisitive and curious
This characteristic that developers have is also very common on other professionals, for example, scientists. In this case, it is one of the several similarities between the two.
Most developers I know are at least either inquisitive or curious and commonly both. Questioning and exploring the limits of something or to unravel the mysteries of operating some device will always help anyone in any activity.
To look to an activity and become suspicious of a result, even when good, is something that every experienced developer does, mainly software programmers. They all know that only the bugs that were known corrected. They also know that even working well, software possibly still have the unknown bugs.
Even when doing that does not make any difference.
Every developer has the in his blood the craze desire to optimize things. The guy is doing a barbecue and is optimizing the use of coal. He is washing the dishes and is optimizing the use of water, soap and the sponge (to maximize the life cycle, for example).
Whether for one activity or another, the developer is always optimizing what they are involved. I am absolutely certain that the idea of PIP on televisions was the idea of a developer wanting to optimize his time watching TV and to see more programs at once without spending time with the advertisers.
When I was buying new furniture for my apartment, rather than go out and buy a lot of expensive furniture (when expensive means better quality and not just luxury: as a developer I like to improve things), I bought that kind of very cheap and low durable furniture to check if I’m really going to get along with it. And luckily I did this: I bought some furniture which I gave away for not being useful. Example: a bar; I rarely have drinks at home and it become just another thing to pile junk over.
In other words: I made prototype. Developers have the great habit of prototyping things before final implementation. I know that it can’t be made every time, but prototyping things before closing a big deal helps to save a lot of money later. Prototyping is, in terms of money, invest 10 not avoid to unnecessarily spend 100.
Moreover, prototyping is often a requirement for debugging.