"Instead what they do is they make themselves experts in a few areas (usually one or two, as far as I have seen), and instead of learning every language, environment, and/or technology out there, they pick maybe one or two languages, environments, and/or technologies, and make themselves true experts in those."
This seems to be in stark contrast with the "always keep learning" philosophy I've read on other blogs.
Is focusing on one technology really the best way to be stay valuable in the industry?
It depends on what you want to do. If you want to stay on the bleeding edge of things, building awesome products and generally having a good time, then sure, always keep learning and switching toolsets and all that. But there are niches (e.g. driver development, reverse-engineering, compiler dev (just taking some niches I personally work in and know well)) where your toolset may not change substantially for a decade or more. This isn't necessarily the most fun work in the world, but that's why it remains highly paying, and will for a very long time to come. You don't see many people coming out of college and saying "you know what? I want to write kernel drivers for webcams!", versus "I'm going to build the next Facebook!"
Facebook was built with PHP. I think it's almost a cargo-cult to think that you HAVE to be switching technologies constantly to build the awesomest stuff out there. You do your best work with a language/environment maybe 2+ years in when you know it very well.
Of course, you can both master a niche _and_ build awesome products and have a good time -- the two are not mutually exclusive as your comment implies.
From my observations the highest paid freelancers in the tech industry are super focused. They take a technology, language, or framework and master it. A good comparison would be a highly sought after designer or illustrator. They are targeted not because they can design anything but because they have a specific style, a singular approach that everyone wants.
Comments
"Instead what they do is they make themselves experts in a few areas (usually one or two, as far as I have seen), and instead of learning every language, environment, and/or technology out there, they pick maybe one or two languages, environments, and/or technologies, and make themselves true experts in those."
This seems to be in stark contrast with the "always keep learning" philosophy I've read on other blogs.
Is focusing on one technology really the best way to be stay valuable in the industry?
It depends on what you want to do. If you want to stay on the bleeding edge of things, building awesome products and generally having a good time, then sure, always keep learning and switching toolsets and all that. But there are niches (e.g. driver development, reverse-engineering, compiler dev (just taking some niches I personally work in and know well)) where your toolset may not change substantially for a decade or more. This isn't necessarily the most fun work in the world, but that's why it remains highly paying, and will for a very long time to come. You don't see many people coming out of college and saying "you know what? I want to write kernel drivers for webcams!", versus "I'm going to build the next Facebook!"
Facebook was built with PHP. I think it's almost a cargo-cult to think that you HAVE to be switching technologies constantly to build the awesomest stuff out there. You do your best work with a language/environment maybe 2+ years in when you know it very well.
Of course, you can both master a niche _and_ build awesome products and have a good time -- the two are not mutually exclusive as your comment implies.
From my observations the highest paid freelancers in the tech industry are super focused. They take a technology, language, or framework and master it. A good comparison would be a highly sought after designer or illustrator. They are targeted not because they can design anything but because they have a specific style, a singular approach that everyone wants.
Being the best at a few things is better than being okay at everything. This is not limited to programming languages.
I totally agree with this statement. 100%.