Proper Engineering Day1 (Efficiency & Elegancy)

There’s a difference between a “programmer” and a Software Engineer.  After learning the weird syntaxes of programing, any one can call themselves a programmer, perhaps rightfully so. However an SE applies the principles of Engineering in designing Software. Being an Engineer means designing efficient, and what many engineers call “elegant” code.  Efficiency & Elegancy.

Let’s define those two:
Efficiency means applying the understanding of two core Computer Science fundamentals: Algorithms and Data Structures.
In other words understanding Algorithms and Data Structures andknowing how to use them makes one a very strong Engineer.

It’s impossible to get a job at any legitimate Software company without understanding Algorithms and Data Structures. I’ve interviewed quite a few candidates who were “programmers” yet were shaky in Algorithms and Data Structures, the interview most certainly didn’t end well. I also have been on the interviewing end where I didn’t know as much as I know now about Data Structures and Algorithms and things didn’t go well either.

{One day I will post more on Data Structures and Algorithms and what that entails in the professional field}

Elegancy:  Is what makes a good Engineer become a rockstar (A super Good Engineer). Elegancy is:

  1. Knowing how to use less lines of code if necessary or more if it makes the codebase clearer
  2. Programming in a clear, easily understandable way.
  3. Writing code that’s easily maintainable.
  4. REUSING code you’ve already created!
  5. Proper use of Oriented Programming or Functional Programming (If you’re using a language like Erlang for example)

Leave a Reply