Last Updated: September 09, 2019
· Andrey Kuchaev

Avoid "gut feeling" in programming

Not so short introduction

After you've read enough literature in English you can be certain most of the time how even difficult words must be spelled. Even if you don't know the rules. "Gut feeling" as some might call it.

Now, if someone comes to you and asks how a word must be spelled you might be able to help, but you can't really explain why you prefer such spelling. Because you didn't learn the rules, instead your experience tells you that it just sounds right. You've got the idea.

End of the not so short introduction

Are we software developers or poem writers?

Imagine yourself a software architect with lots of experience in developing applications of different shapes and sizes.

Your position requires you making difficult decisions to choose an appropriate design pattern for the give problem, a database type or a data transfer format. Suppose you are able to make a right choice most of the time simply because you "gut feeling" tells you what to do.

How do you explain your decisions to a new guy in your team?
"Why do you do something the way you do?" asks the guy.

I just want you to understand that without knowing the alphabet it can be challenging to teach someone a new skill.

If you are lost when you see acronyms like MVC, DBA, SOLID, DRY, DSL, CDN or
if you can't tell the difference between a callback and a postback, static and dynamic typing, authentication and authorization and so on how are you going to stay in the market?

I know it doesn't exactly look like a tip, but the importance of knowing your subject is profound and if you didn't pay attention in school it's time to upgrade your vocabulary.

The best way that works for me is to dive deep in programming talks be it the everyone's favourite blog writer or a programming wiki or a forum where like-minded geeks share their opinions.

6 Responses
Add your response

Douglas Crockford talk about "Gut Feeling" at last BrazilJS, i really recommend this talk >>>

over 1 year ago ·

thanks a lot, mate!
I am using JSLint quite a lot, but I've never heard it's creator talk. that is until now :)
very informative indeed!

over 1 year ago ·

In my experience, people who decry gut feeling are people who don't have any.

over 1 year ago ·

@mxcl thanks for your opinion, but I believe you missed my point a bit.

I am not saying that to have a feeling is inherently a bad thing. It's good and I'm trying to do everything I can to get such a feeling so that I don't have to look up reasons to use a certain thing when it's much faster to just stick to some principles and enjoy the ride.
What I am trying to say in this post is that although one might have a feeling (let's say a programmer is right about something this time), it can be difficult to build a reasoning only having feeling under your belt.

The same applies to why it can be so difficult to argue with women: their feeling are mostly right but there is no logical chain of reasoning and although they can be right about something they have difficulties when trying to explain why it is so.

@mxcl: Please do tell what you think of it

over 1 year ago ·

I think that for experienced developers that "gut feeling" is sometimes just the voice of their experience, so when everyone in a team has this feeling pointing to the same place, it usually is a shortcut to the right answer. BUT if you can't explain why you take this decision and why is better than any other alternative to a less experienced developer or a client, there are many chances that you are just following latest tech fashion and buzzwords instead of experience.

over 1 year ago ·

that's exactly what I meant but with much less words :)
thanks a lot, Javier!

over 1 year ago ·