What is More Important for a Software Engineer- Creativity or Efficiency?
We can’t overbeat this argument, can we? But before going into the foray of deciding what quality — creativity or efficiency — is more important than the other, there is a need to first look into their definitions. Creativity, according to Google, is the use of imagination or original ideas to create something; inventiveness. On the hand, efficiency, according to collinsdictionary.com, is the quality of being able to do a task successfully, without wasting time or energy.
Careful consideration of the definitions above shows they both hold implications and importance to a software engineer, especially one who is aspiring to be a great engineer. Which of these two is more important, however, is the bone of contention.
To pride oneself as a software engineer means you can write code that can fix a bug or proffer a solution. Awesome. This quality means you are good at what you do and are also creative. It is creativity that empowers you to look at a problem in the face and take advantage of available resources — even someone else code — to fix it. That is, make it work, well, at least until something breaks again because there’s always a bug lurking around in the dark.
Being creative as a software engineer makes you by default a problem solver. Who doesn’t like a problem solver in a tech space? Excluding jealousy, no one. It makes you the go-to smart person everyone is looking forward to sharing their problems or bugs with because it is certain, one way or the other, you would make it work. Whether or not you can explain your approach to making your code work is another argument. We would come to that later on.
At this juncture, and not trying to burst your self-pride bubble for being a good software engineer, I should also state that going by creativity, there are thousands of creative developers around the world. A stop by at Stack Overflow or Google Play Store would prove this right. There are thousands of codes out there fixing a bug and over 2 million apps on Google Play Store and Apple App Store solving a problem. I hope you still feel special? Hang on.
However, in the world of tech, when push comes to shove, and excellence is watched out for, the difference is made by how fast a code can solve a problem, correctly and meets the industry standard, in the shortest time possible. This is where efficiency becomes sunshine. It is a distinguishing factor between a good and a great software engineer.
Beyond making a code work correctly, a great software engineer understands why and how his or her code is working and would always return to re-factor and increase the efficiency of that code. Great engineers are not scared of making their skills to automate the process and let a computer do it for them, so long it makes things more efficient. How else would have AI come to existence?
Stepping away, a little, from the codebase, how efficient you are as an individual speaks more about your personality than your creativity. Be as creative you can with your code, if you’re not organized, not communicating well or delivering tasks on or before scheduled deadline, your creativity would do no good to anyone at work. Just saying, but you know that to be true.
In conclusion, and given the discussions above, it is safe to state that efficiency is very to important to every software engineer, but first, they need also to be creative too.