Perhaps the question itself implies too much.<p>But I feel that as time goes on, my competition will increasingly be not just those in my market, but across the globe. It's only a matter of time before programming labor is commoditized.<p>What are some strategies to deal with this beyond picking a hyper specialization?
>> What are some strategies to deal with this beyond picking a hyper specialization?<p>Well, stop thinking about it. Not only it is depressing but it is also seriously wrong.<p>I've been hearing that since before I started. Not only did it never happen, but it's getting more unlikely to happen every day.<p>It's not possible to commoditize something that 99.xxx% of people are unwilling and/or unable to do.<p>Yes, most people simply don't want to sit at a computer all day and/or don't have what it takes to be a decent programmer. And everyday the barrier to entry is getting a bit harder with more tools and more technologies and more abstractions appearing, each adding a bit more complexity over the precedent.<p>If anything, look around you and watch the race to the top for the few who can follow. There are entire companies in our industry which exist to attract and bread the best and the brightest.<p>---<p>Now, I can understand why some people would be afraid of a commodity market.<p>Somewhere in the world, there will ALWAYS be a guy who only has $10 to pay for whatever thing he wants done AND there will ALWAYS be a guy that will offer to do the job for that price.<p>That first guy will always accept the offer because he has no seemingly better alternative and he'll just burn the money hoping to get something in return. (note: ain't gonna happen. You just don't get anything real for $10).<p>The point being: Just because there are some guys with no money and some guys who are screwing them. That doesn't mean that it's a "commodity market", let's just call that a "scam market".<p>Anyone serious who wants to get the job done or anyone who can get the job done will simply NOT participate in this scam market. When we're talking real work, there is simply no commodity market whatsoever (in our field).
Supply and demand, the one thing economists get right.<p>You seems to be assuming the supply of software developers will keep outgrowing the demand for them. Why? I predict the exact opposite: As the developing world develops, local demand for software will keep outpacing global capability to create developers. I live in the developing world, I should know.<p>99% of people cannot play an instrument. 99% of people cannot draw. 99% of people cannot do math. 99% cannot develop software. And that's a conservative estimate.<p>Today's computers "Just Work", no one needs to know anything to use one anymore, and it shows. You find today people working as developers who would have a lot of trouble just using a computer from as late as 20 years ago.<p>Developers are getting dumber, not smarter. As abstractions have been piled upon abstractions actual programming skills have decreased. No one knows how to do anything anymore without an IDE to hold their hand and a web browser to look up everything. We've replaced the hacker with the hack.<p>Am I exaggerating? Try interviewing a few people for a developer position and see for yourself. The level of incompetence is astonishing. Degrees, experience or national origin seems to have no correlation whatsoever with their skills.
Not knowing your currently technical niche, industry or passions, this question implies that you think about yourself as a commodity.<p>Rather, think of yourself as a problem-solver, who has many tools at his/her disposal, (a major) one being writing code.<p>This allows you to fit yourself into many different molds, rather than just a fixed position as a programmer, much like a factory worker at a manufacturer.<p>I personally enjoy thinking of myself as a consultant, as it allows me to focus on figuring out solutions to problems I encounter, rather than the tools I have at my toolbox. This is not always natural or easy, but a continued, concerted effort at developing this mindset has paid off for me.
Don't be good only at programming. Know how to sell solutions and have the ability to communicate effectively. You will be pleasantly surprised how far along you will be if you have those extra skills other than the programming one.
IMO, you are on the right path by looking beyond hyper specialization. There is a devaluation trend for all type of labor. Sooner or later your hyper specialized labor will also be devalued. Will this devaluation happen in your lifetime, that is the only open question?<p>In the end, we all are either a labor provider or capital provider. With the ongoing devaluation of all type of labor, instead of moving from one type of labor to another type of labor that may get devalued in the future, you should be thinking and planning about moving from being labor provider to becoming capital provider. You might want to consider exploring labor to capital conversion path.<p>- Maximize labor to capital conversion rate. Favor "love what you do" over "do what you love."<p>- Maximize storing of capital. Favor much lower spending than what you make.<p>- Maximize capital generation through stored capital. Favor experiences over things.<p>Once your capital is generating enough capital, you no longer need to focus on the devaluation of labor. You can focus on doing what you love irrespective of the value of that labor.
The economic system we live in is Capitalism, and if you want to maximize your control of your outcomes you need to be a Capitalist. <a href="https://en.wikipedia.org/wiki/Capitalism" rel="nofollow">https://en.wikipedia.org/wiki/Capitalism</a>
I don't agree with the premise. But if you do believe that the future of programming will be commoditized workers making peanuts, then you would want to position yourself ahead of that curve. Be the guy who is putting together teams of low paid offshore programmers to take on the whales who have high margins/salaries.<p>Anytime you feel that the future will be X, while the present is Z, you should focus on being Y.
For many in the field, a bigger issue than commoditisation is probably wage gaps between higher and lower cost regions of the globe. While it should not be expected that the average person can or even could compete with top-notch developers, for most of us, we still have to compete with good developers in extremely low-cost regions. Until the globe evens out in cost-of-living, this issue should continue to exist. Until quality programming and engineering do <i>not</i> require substantially above-average intelligence, these professions should not become a commodity.
Everything is cyclical. People were getting crazy money late 90s early 2000. Then dotcom crash happened and a lot of people left the industry. Everything is cyclical. Look at the oil industry, financial industry, etc. I guess the medical industry is the only that doesn't have cycles.
I don't understand these types of questions. If you can program, can't you create stuff? Stuff that people are willing to use/buy?<p>Techies will always think as techies. A techie that can think like a businessperson is as rare as a unicorn.