Nomadic programming
edofic.com
edofic.com
Total agreement with "You should always strive to become better!"
I definitely feel this all the time. Just about the time I start feeling comfortable building webapps, I step back and see _all the programming_ I'm not doing. Writing webapps in Ruby, Python, PHP, JavaScript in any number of flavors (Rails, Django, Flask, web.py, node, Backbone) still has the same feel, because it's all for the web; there's a common goal.
"Sprachgefühl" is perhaps a useful word here — having a "feel" for languages is all you need to start learning new ones. It's even truer for programming than it is for natural languages.
To be honest, I am a bit confused. Are there really people out there who don't switch stacks at a whim's notice? Whenever the job might be done better in a different technology?
This is a great time to be an expert generalist.
Particularly true for debugging, at least for me. I'm a lot faster at debugging in settings where I've accumulated a lot of experience, just because there are a lot more cases where I instantly recognize exactly what's happening and how to fix it.
I think that some people suffer from a fear of learning something new and pushing the boundaries of their knowledge out further.
Absolutely, there are. I think hanging out on Hacker News probably skews our perception of this, but most programmers know one or two languages that they learned in school and use them for everything because that's what they know. Most people don't learn the intricacies of a bunch of different languages and platforms and choose whichever one seems suited for the job; they choose to use what they know.
But if I hadn't been a specialist in something at some point of my life, I don't believe I would be writing good code in those new languages. And I still think it's better to have at least some specialists on the team too, because sometimes you get some bizarre bugs that someone that knows the language for some time may be used to.
With that being said, how does his approach work for, e.g., writing software for airplanes?
"Solving problems with computers" is too broad for any one person to master all aspects of it. There are so many different kinds of problems! Many of them also involve domain specific knowledge that has nothing to do with computers or computation (my airplanes and scientific computing examples above).
People don't usually __die__ as the result of a bug in a webapp, but they can as the result of a bug in airplane software. I claim that a NomadicProgrammer™ (armed with "Learn Ada in 24 hours!", of course) would be __dangerous__ if tasked with work in this "trade".