Enterprise Integration Zone is brought to you in partnership with:

John Sonmez is a Pluralsight author of over 25 courses spanning a wide range of topics from mobile development to IoC containers. He is a frequent guest on podcasts such as DotNetRocks and Hanselminutes. John has created applications for iOS, Android and Windows Phone 7 using native tools, HTML5, and just about every cross platform solution available today. He has a passion for Agile development and is engaged in a personal crusade to make the complex simple. John is a DZone MVB and is not an employee of DZone and has posted 86 posts at DZone. You can read more from them at their website. View Full User Profile

How Religion Destroys Programmers

07.11.2013
| 22581 views |
  • submit to reddit

I discovered something about myself—I have an amazing gift to always make the very best technology choice.

No really, it is quite amazing.

When I look back at my development career, it seems to me that every programming language I was using at any given time was clearly the best one.

The same goes for frameworks and even operating systems.

Yes, I have this amazing ability to pick from the vast ocean of technologies, without even trying them all out, the very best one, and to vehemently defend my choice.

Perhaps as you’ve been reading this, you’ve discovered you have this uncanny ability as well?

Most developers are religious about technology

It’s true.

Don’t be ashamed, you are not alone.  Myself, and just about everyone else, is with you.

Some of use are recovering from our self-imposed brain washing.  Others of us are blissfully unaware of our predicament.  But most of us have at least one religion we’ve managed to craft ourselves.

It is perfectly natural because most programmers got into the field of software development because they were passionate about it.  Anything you are passionate about is likely to cause you to develop some highly charged opinions.

Take sports fans for instance.  I’m not really much of a sports fan myself, but I know many fans of all different kinds of sports that religiously believe their team is the best despite all the evidence to the contrary.

This defense of our own choices and ideas is core to human nature.  It is easy for us to adopt a new idea but we religiously defend the ones we have without needing much evidence to back it up. The problem is we tend to tie up our ideas about things with our identity and even our value as human beings.

It takes some deep soul searching, but it you look within yourself you’ll probably find that you can make a list of the best operating systems, programming languages, frameworks and so on.

Ignorance is not bliss

The problem with this self-imposed religion is that our technological religion blinds us from the truth.

I spent countless hours arguing about why Macs sucked so much before I had even really used one.  Ironically, I am writing this post on a Mac right now, but I am using Windows Live Writer which I am accessing through remote desktop.  Oh, and this blog post, well, it is actually hosted on an Ubuntu Linux server in the cloud on a PHP application you may have heard of called WordPress.

My point is, most of us vehemently will argue that our technology choice is the best without even having really tried the alternatives.

It seems ludicrous when you think about it clearly, but I still catch myself doing it even today.

When I look within myself to honestly ask the question “why,” I find that most of my motivations come from a combination of pride in what I have learned and accomplished and a fear of what I don’t know.

I find that it is much easier to dismiss a technology that I don’t know as “garbage” or “worthless” than it is to take the time to learn about it and see why others like it so much.  As they say, one man’s garbage is another man’s treasure.

The problem with thoughtless religion

I don’t need to tell you that mindless religious zealotry is a destructive force in our world.  You only need to go to your favorite national news web site or look in any history book to see that is the case.

But, while not too many programmers will draw swords over PHP vs C#—although I have been accused myself of throwing a chair in a similar dispute, a litigious and quite false accusation which I protest strongly to this day—many developers are quite willing to argue loudly about their opinions and even brashly tear down the works of others as I am sure you have seen if you have spent much time on the good ol’ interwebs.  I got a nice taste of this bitter water myself when I had the gall to actually post something negative about everyone’s bastard child of a language that was discovered to have royal blood after some years of abuse, JavaScript.

So, while we may think our ignorance isn’t harming anyone and that they deserve it anyway because they are clearly wrong, the truth is, there is quite a wake of destruction that our ignorance can leave behind us.

I look back on my own past and I am embarrassed that I harassed Perl developers to the degree that I did, completely discrediting their work and ignorantly pushing my holy statically typed C-based languages as their one and only savior who could cleanse them of their filth.

But more than anything, I realize that I hurt myself.

Stop hitting yourself, idiot!

The biggest growth in my career came when I was looking for a job doing C# development and found a really good opportunity to act as a technical architect for a project written in Java.

I was quite torn by the decision.  In my heart I knew that Java was bad and evil.  I knew that because Java lacked properties like C# and required the use of manually created getters and setters that everyone writing Java code was clearly an idiot.

I almost didn’t take the job, but I decided that the pay was too good to pass up and that I would suffer through this awful experience like a prisoner of war until one day my Microsoft would rescue me.  I thought I would at least get to apostatize some filthy Java writing scoundrels.

Well, it turned out that after a couple of years of mentoring developers on writing good Java code and unit testing, I realized that not only was Java not so bad, but there were some actual merits of the language and Java frameworks that could be appreciated.

More importantly though, I began to realize that my past code bigotry had closed quite a few doors on my face.  It began to occur to me that perhaps all of my technology choices in the past were not necessarily the best.  I began to start thinking that there wasn’t actually all the much difference between many of the most popular technologies.

I began to realize that understanding a wide range of technologies and programming languages made me much more valuable than ignorantly subscribing to my own religion about a particular technology that I happened to choose.

I found that my own understanding of individual technologies increased rapidly, because instead of just “eating what I was fed,” I could use my brain to compare and contrast differences between programming languages and technologies which left me with a deeper understanding of all of then.

I was rudely reminded of my own shortcomings that still exist in this area when I recently converted my blogs over to a Linux server in the cloud from Digital Ocean.

I was predisposed to choose Windows technologies for deploying web applications, but it was pretty hard to argue that a complete Linux server in the cloud that performed extremely well for $10 a month was not a good choice.

My point in all this is to say that being closed-minded about technology choices only hurts yourself in the end and severely limits your personal growth as a developer.

(Here are two good books to break down those barriers: Seven Languages in Seven Weeks and Seven Databases in Seven Weeks.)

There is no “best”

I’ll finish up this post by imploring you to believe me when I say “there is no best technology or programming language.”

I’m not going to insult your intelligence by saying that each language has a purpose for a different situation because the truth is much deeper than that.

After creating over 40 Pluralsight courses on a very wide range of technologies and programming languages, I’ve discovered a few truths.

The truth is that there are multiple great ways to do the same thing using different tools and different technologies.

The truth is that all programming languages and technologies have big mistakes and weaknesses in them.

The truth is the more you learn about different technologies, the more you will find that at the core most things are pretty similar.  What I mean by this is that most of the core concepts about writing software apply regardless of technology choice or programming language syntax.

You’ll also find, as I have, that if you are accepting about others technology choices and are able to admit your own ignorance and learn from it, you’ll find helpful friendly people willing to teach you what they know, everywhere you go.

(Side note: you may think that I am a big hypocrite with this post, since not too long ago I claimed that C++ was not back and JavaScript was doomed.  I believe what I said in those posts does hold true and I don’t think it is contrary to what I am saying in this post.  It is possible to have actual critical opinions of technologies you have actually used.  You don’t have to like everything.  My point is that, even though I dislike C++ for many of today’s programming problems and I feel that JavaScript is not the most elegant language for the web, I do recognize that both of these languages have their merits and that they are valid choices in many situations.)


Published at DZone with permission of John Sonmez, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Rick J. Wagner replied on Thu, 2013/07/11 - 7:04am

Poor article.  Please try again, with better ideas.

Robert Saulnier replied on Mon, 2013/07/15 - 8:37am in response to: Rick J. Wagner

Poor comment. Please try again, with more constructive ideas.

Nicholas Whitehead replied on Wed, 2013/07/17 - 9:41am in response to: Robert Saulnier

touché !

Rick J. Wagner replied on Wed, 2013/07/17 - 4:57pm

Thanks for asking-- I'll be happy to give you my opinion.

I find the use of the word 'religion' offensive in this context.  You're not talking about religion at all, yet you stick that label on a poor practice and further associate it with loaded terms like 'brainwashing', 'close mindedness', etc.  You continue this inappropriate analogy throughout the article (again, associating it with poison attributes.  Nobody minds a lighthearted use of the term 'religious war' if you don't bring in the heavy "you're-a-moron" attitude.)

Are you a religious person?  Can you see how this could be offensive to a religious person?

FWIW, my experience has shown no correlation between religous beliefs and programming skill. 
I've known many devout Hindus that were fine programmers, some who were terrible.  I've known some atheists that were quite good, some that were numbskulls.  Same for Christians, Muslims, etc.  Not much of a correlation that I could find. 

Is your experience different?  Do tell, if so.

Offending people is a big deal.  That's why I find this article poor.   I suspect the title was chosen to draw readership, but it has great potential to offend.  It's not worth the web click to pay that price. 

While we're being honest, I find the condescending tone annoying also.  (Calling your readers 'Idiot'....)   Looking to the superstars of programming, the greats never do this.  If anything, they're downright humble.  Some might get away with this, but this article already struck me as poor for the reasons given above.  Maybe I was especially grumpy when I first read it, but 2 mistakes is too many.

I'd like to think the meager 'up vote' count adds credibility to this assessment.  A few days in, just 13 clicks.  I'm sure you'd much rather have some big click counts.  Some articles do it, some don't.  Why didn't this one?  I'd like to think my ideas have merit.

I'm not saying the ideas in the article are bad, mind you.  Wrap this article up a little differently and I'd think it might do well.  

There you have it.  Thanks for asking, better luck next time.


Marc Visconte replied on Wed, 2013/07/17 - 6:37pm

Seconded.  I get plenty of condescension through-out the day.  From TV, radio, co-workers, strangers.  Sarcasm I understand.  Humor I like.  In a technical forum, information is best.  I don't need one more person on their pet soap-box insulting me through their snide comments when they should discussing something of merit instead.  If this isn't clear, then I can try to explain it:  What is something that you see in a positive light and take personally that I can talk down to you about as I try to impart useful information?

You may think that this is a silly thing or petty or whatever, but you also evidently see religion as something beneath you and worthy of your derision.  I don't.  I don't know what your experience with "religion" has been, but mine has been positive and supportive -- yet by and large, implying that someone is "religious" is considered implying that they are stupid or backwards.  You equate religion with ignorance. 

This is a technical forum.  I won't, as an example of Agile, discuss how stupid vegans are, or claim that carnivores are cruel, sadistic people to illustrate how superior Oracle is as a database.  I don't compare PERL to being gay or imply that Java programmers are homophobes.  I won't, as a method of discussing data analytics or Unit Testing, illustrate by referring to George Zimmerman or Trayvon Martin.  No matter how innocuous or inane or cute or funny it would seem to some, it's insulting to others, and has no place in a DZone discussion -- at least not a technical one.  Your article isn't on the scale of my over-board examples, but I hope you take my point.

If you can't make your point without being insulting to people who have done no wrong to you, then maybe you need to rethink your points or your prejudices.

You’ll also find, as I have, that if you are accepting about others technology choices [beliefs] and are able to admit your own ignorance and learn from it, you’ll find helpful friendly people willing to teach you what they know, everywhere you go.


Loïc Prieto replied on Thu, 2013/07/18 - 2:46am

I actually think the analogy is quite fitting. After all, religion is for the most part about believing a given Truth with no real demonstration, thus being blind about other options and unable to make the most efficient choices when interacting with your environment. It is as true with programming as it is with life in general.

The essence of religion it is that you take what is given to you without really trying to seek it's veracity. And when you do, you will sooner or later reach the "believing" wall. You either choose to believe or you don't, but if you do, you must suspend you analytical mind, for there is no scientific demonstration that can give some backbone to most religious claims. 
While it is true that science cannot explain everything, it is most foolish to just pick an answer at random and live by it.
And so, getting back to the analogy, if you choose to have a religious mindset when programming, having pet languages and not trying anything else, what you're doing is believing a solution is the best without verifying it.

Rick J. Wagner replied on Thu, 2013/07/18 - 6:55am in response to: Loïc Prieto

 Thank you, Loic.

I do not disagree with your analysis.  Who can argue that religion requires faith?  That point is valid.

What I like best about your comment is that it is presented in a logical manner without any offensive tones.  Your words can be read and calmly agreed to or not, the reader is not likely to be offended and thus tuned out.  Constructive, I like that.

Regards,

Rick 

Loïc Prieto replied on Thu, 2013/07/18 - 7:04am in response to: Rick J. Wagner

Thanks, Rick.

I would like to add that i would never condemn anyone choosing to hava Faith over anything, as I think we're bound to live the happiest we can, and believing in a kind god or afterlife is as good a consolation as any. We're humans and we leave in a bleak world, anything that eases this life is welcome.

Still, i do condemn a non scientific approach to programming, as there shouldn't be any emotions in choosing the best solution to a business problem.

John Sonmez replied on Thu, 2013/07/18 - 10:39am in response to: Rick J. Wagner

I agree with your points about offending people and making brash offensive statements.

I may not have done the best job in conveying my tone in the article on two accounts.

First, being that I am calling myself and "Idiot" in the subheading you are referring to.  I'm not sure if you read what was under it, but I talk about how I was an idiot because of my ignorance.  

The whole article itself is really about what an idiot I have been in the past by blinding following technologies falsely believing my arbitrary choices were best and how I still continue, in some regards, to be an idiot today.

Second, I am actually quite religious myself.  Although I prefer to use the term faith, because I see the term "religion" as blind following of practices and rituals.  I believe and what I do based on my belief, not because I am blindly following some set of rituals and checking my brain at the door.

Thanks for your input though my friend.

You make some excellent points and if you were confused about my tone and thought I was inferring people who have religious faith are in some way inferior programmers, probably other readers did as well.

Hope you are having a better day today. :)

 



Rick J. Wagner replied on Thu, 2013/07/18 - 12:04pm in response to: John Sonmez

 Thank you, John.  It's a better day already.  :)

Ashley Smith replied on Tue, 2013/07/23 - 3:17am

I find it amazing how easily religious people are offended!



Xavier Callejas replied on Fri, 2013/12/06 - 11:35am

 Of course you were amazed by Java, you were a C# programmer! good for you to pass to a real enterprise applications platform (am I a religious? :) no, seriously, Java is a more serious well designed platform than any of Microsoft (I were a M$ guy about 10 years ago).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.