Let's be honest, folks.
Coding is brutally, punishingly frustrating.
Nothing has ever made me feel like an idiot so regularly than computer programming. In fact, I took 3 years off this job, thinking "I'm done. no more!"
It means going through failure after failure, spending hours-sometimes days- on a problem only to reveal a tiny typo, a missing colon.
Sometimes you write a few lines of code, something fairly simple, then you run a test and… it doesn’t work. Sometimes everything works and your mind goes, "what about that improvement?" (so you change code and tada!!!)
But, there's something interesting about it. Isn't it?
When you finally open your pull-request, tests run smoothly and you tick off items from the development todo list, you experience an absolute sense of mastery and joy.
I remember when I started studying computer science back in high-school.
I've always been a logical and systematic human being. The one who crosses the street stepping on or avoiding particular floor tiles.
And I immediately fell in love working with machines that do whatever you say — but only if you are perfectly, utterly precise in your instructions.
Sure, in the beginning is hard. One small mistake, one misplaced bracket, and the whole thing stops working. But...
Programming is like martial arts.
The more you train, the more able you become to handle crushing and incessant failures and roadblocks.
Software engineering helps you approach problems methodically, break big tasks down into tiny steps and develop sound solutions.
This is a prerequisite in many modern jobs.
Not only programmers, but researchers, entrepreneurs and white-collars of any kind benefit from this mindset.
If you're able to tackle with the psychological storm and endure such a grind of this job, you'll:
- develop a strong ability to deal with pain (a "painability")
- become fearless of new challenges
- work on interesting stuff that will make you proud
- have lots of digital friends
- break production code and make customers go crazy before fixing the bug and pretending you just saved their life
Trust me, this one of the most rewarding jobs out there. I've sold my successful real estate company, just to come back and work again as a programmer. I really like it.
Mattia, what's the real secret of a programmer?
To succeed in life, you must be great at analyzing details, facing challenges and automating tasks.
Programmers are really good at it.
And programming can also improve your relationships, because you know... women appreciate attention to details and men, well, they're men (they're cute dogs). Marry a programmer!
Let me know what you think, in the comments ;-)