Over the last decade or so, I have met some exceedingly brilliant people. One bloke I met while at fairly large reputable institution was a mathematician by trade and a software developer by profession. He could create some of the most complex mathematical formula based algorithms that would process graphic trajectories and game based trigonometry . While brilliant at the art of creating algorithms this individual had a very difficult time writing maintainable code, and sharing his brilliance in with others. This gave me pause . The thing that perplexes me is how a person can be so brilliant yet not very self disciplined in software code housekeeping or engineering best practices. On one hand we have a programmer. On the other hand we have a recluse and an unmaintainable codebase.
When creating software as a software engineer. We really need the following skills:
- The ability to plan and coordinate the creation of a software product with others.
- The ability to craft code while keeping in mind that someone other that you will probably need to change it in the future.
- The ability to organize, and document code to tell a story through your implementation
- Adept at the art of simplification of thought
I’ve seen plenty of folks who are programmers and only an elite few who are Software Engineers. Which category do you fall in?