Elliott Hulse, a fitness coach, on the topic of building muscles,
Your muscles need to be stressed to a point where they are FORCED to grow bigger and stronger. Otherwise they will stay the same, seeing no need to waste valuable energy on developing a bigger musculature. Something key to remember, for any physical goal, is that the body will always take the path of least resistance. Put it in an environment where YOUR GOAL is the only possible outcome.
To have big muscles you have to lift heavy weights. Heavier than what you lift easily. If you won’t push your body, it won’t develop. Forcing your body to do the impossible is the only way to make it develop.
We all create a comfort zone. We build it, cherish it, rely on it, and then we lock ourselves inside it. This is true for software development too.
You never improve if you cage yourself in your comfort zone.
Call your specific skills your niche. Proclaim that the your programming language is the best language ever created. Fall in love with your platform and become its ardent worshipper. Your call!
You cannot improve with this attitude.
C was the first programming language I learned. After few months, I landed on my first job where I kept developing softwares in C. For a long time I didn’t bother to learn how to use a debugger at all.
My excuse was something along these lines, “I can debug all I want using log statements thrown all around the code.” This was a good enough excuse for many.
The real reason was that learning a command line debugger (GDB) scared me.
Each time I opened up a GDB tutorial, I would close the browser tab within few minutes. “Gosh! What is this? The lingo is so alien. What the heck writer is babbling about? Argh! I will never get it.
“I have reached my limits. Why add another item in list of my failures? Lets drop it. I don’t have to feel so uncomfortable. My world is going fine without GDB.”
Don’t do what I did.
This approach may work for some time and in few cases. Unfortunately, this attitude becomes persistent and turns into a habit. It begins to spread from your programming skills into rest of your life.
In the same class where I learned C, several students gave up on C. Their excuse, “C is not widely used. We are interested in learning Java or C#. These will offer us better job prospects.”
Guess what? They didn’t come around to learn any of their favorite languages. First they gave up on pointers, and then C. Same guys gave up on object-oriented programming introductory classes. When C# classes started they weren’t ready for it at all. Finally they stopped programming altogether.
Some took up graphic designing, and rest took up quality assurance. The attitude of shying away from difficult stripped away their dreams.
If you want to improve, get out of your comfort zone. Pick something that challenges you.
Do whatever that makes you uncomfortable.