7 ms·
Here's what seems to be happening. First, hyperspecialization. Instead of a "programming" career we have back-end, front-end, embedded, machine learning/data s
by michaelochurch 14y ago
Here's what seems to be happening.
First, hyperspecialization. Instead of a "programming" career we have back-end, front-end, embedded, machine learning/data science, and many other silos to the career, and people are expected to be "at level" (i.e. as good as a typical person of their age and experience) in the specific silo for which they're applying. We have a zillion active languages and database technologies and web frameworks. People who choose the right specialty are in high demand. People who don't, or who fail to specialize, are more likely to lose out. When you see a two-sided scarcity problem, that's usually what's happening: a mismatch between sought skills and what is available on the market.
This is good and bad. Divergence is when exploration happens (people move away from Java and C++ to Python, Ocaml, Scala, Ruby, Haskell... and find out what works well and what doesn't) and convergence is when they move back, hopefully to better mainstays (in PL, Scala and Clojure are the front-runners; it's obvious that dysfunctional programming in the style of Java-esque AbstractVisitorHandlerFactoryFactory patterns is over) than those that were in the mainstream before. People do eventually get sick of having to change tech stacks every time they take a new job. Convergence sets in at some point, and it will, soon. We're late in a divergent phase. Both divergent and convergent phases are necessary and healthy. When we move into a convergent phase, it's going to be easier for typical programmers to find matching jobs (a reduced "curse of dimensionality" as there are fewer dimensions of variation) but some specialties are going to dry up.
Second, short job tenures. Another factor for which both sides are to blame. There are "job hoppers" out there who seek a new environment and a pay raise every 9 months, and there are companies that fire rashly, or that do such a bad job of mentoring their employees that anyone sane will leave in 6 months. Job fluidity is good to a point, but it's passed the optimal point. Now it's in a vicious cycle: an environment of short job tenures discourages companies from investing in their people, which leads to high turnover. Some startups welcome turnover with the self-satisfied and cultish belief that those who leave "weren't good enough" but that just shows a lack of introspection to a degree that's irresponsible. Extremely high turnover is just bad.
Third and most importantly, we need to handle the education problem. We will see technological convergence and increasing job tenures for macroeconomic reasons... to a point. However, technological change is going to remain rapid and continuing education is going to stop being a luxury (for programmers and in general) in no more than 10 years. People will need to access educational resources continually in order to direct their career growth, and they'll need some way to prove they've mastered skills necessary for the transitions they need to make.
The best solution for this problem, for a forward-thinking company, is to drop to 3-4 days of metered work (for most jobs) and require people to pursue some kind of education in the other 1-2 days/week. That reduces unemployment of the "not enough work to go around" sort, and it reduces the friction caused by mismatches in experience. That said, I've seen "20% time" type programs, as wonderful as they are in intention, fail more often than they succeed. Google's 20%T is only used by about 10% of engineers because there's absolutely no anti-retaliation insurance (i.e. managers can punish employees in performance reviews for taking 20%T and employees have no recourse, which means, in effect, that employees only really have it if the manager wants them to have it). Building a robust 20%T program is really not easy.
Tuition reimbursement is a good policy, but people rarely use it because it requires them to plan in ways that most professionals simply can't. How many people can predict that they won't face a badly-timed drop-everything production crisis or other hourage spike over a 15-week semester? Very few. The solution is going to have to be more asynchronous than the typical university schooling model, but also more open and self-directed than most in-house corporate training.
- fuzzythinker 14y agoDon't think requiring 1-2 days/week of education is going to work. People who aren't interested in pursuing new technical education/re-education will not only not going to benefit from it, but it will also be a waste of the employer's money (2X actually, for the time lost and for the education). They will just either sleep during class if physical presence is required or just find ways to cheat if done online. On the other hand, those who do want to further their skills will not stop even if they are already working overtime, have a family with kids, or perhaps even personal side projects.
- umjames 14y agoThe proof of the education shouldn't be passing some test or getting a certificate, it should be that you'll be required to use that knowledge in your job. If you "completed" the education and aren't able to do the work that requires it, then you didn't really understand the material. At that point, it's up to your employer how they want to proceed (re-education, termination, etc).
- zevyoura 14y agoWhy are you hiring people who aren't interested in pursuing further education?
- eli_gottlieb 14y agoBecause he needs to get work done right now.
- zevyoura 14y agoIn that case educational perks are probably not of serious concern.
- fuzzythinker 14y agoWhy do you assume I am hiring?
- michaelochurch 14y ago