I have joined Fidelis Cybersecurity! Look for great new product announcements!

Programming religions

gladiator-fight-300x205“There are numerous infamous religious wars in the world of programming. Windows vs. Unix, Windows vs. Mac, IDEs vs. text editors, Emacs vs. vi, Python vs. Ruby, where to put the curly brace, spaces vs. tabs, 2 spaces vs. 4 spaces; the list goes on ad nauseum. The fact that these arguments never end shows that there is no “true” answer.

Usually it comes down to personal preference, which is normally acceptable. The problem comes when programmers become bogged down in the arguments, and begin to see their side as “the one true way”.  This creates deep cultural conflicts that can end up creating huge technical debt.

“Anyone using the other method is an infidel and must be converted or crushed. People are hired based on belief vs skill.  Of course, this is often just tongue-in-cheek banter, but all too often it goes further than this.”  – “SkillDrick”

Steps to open your opportunity and mind for solutions.

  1. Make a list of all the systems you do and don’t prefer
  2. Set up a list of problems or solutions and see what tool or languages work
  3. Make an evaluation set and dive into one item deeply
  4. Agree to browse or experience one small aspect of an “evil”.  e.g. Google Maps vs. IOS maps
  5. Read a bit of logic out side of a given programming language.  How to handle a given problem, and see why others choose to attack the issue with another language.

The goal here is to get inside the head of your “enemy”  Keep your friends close, and your enemies closer.  Great technology leaders and users know that it’s logic and how you think that makes a great technologist not an exacting skill.  Here is a good way to look at it.

  • Programming Knowledge: Understanding of how to use a programming language.   It’s syntax, keywords, code usage (e.g is it an object orientated language). This knowledge can be gained through reading textbooks and studying the language concepts.
  • Programming Logic is the ability to solve problems and to think in an abstract way when using the programming language. This is different to programming knowledge because programming logic is gained with experience and practice.

Some programmers may have a good knowledge of a programming language and almost no experience in solving problems with it. Equally, some programmers may have good logical reasoning skills but have limited knowledge of the programming languages. Skill in both programming knowledge and programming logic can be gained, but the latter comes with experience.

This process should show immediate benefit.

  • You won’t say NO first.
  • You will have a framework to compare
  • You will find a common ground more quickly when you answer the question; Have you tried this and that to solve for this or that?

Lastly, you might inspire someone else, maybe your enemy, to try the same approach.  Then we are all one step closer to ending the religious wars!

Leave a Reply

%d bloggers like this: