Ask HN: What technical skill should I learn to prepare for the next 10 Years?

35 points by alexjray ↗ HN

43 comments

[ 2.9 ms ] story [ 94.0 ms ] thread
Study the fundamentals. Learn some timeless science like physics or math.
VR and self driving cars should do ;)
I built a self-driving car, and am launching a VR-based startup. Figured I should chime in here.

I personally don't see much opportunity for people to get involved directly with autonomous vehicles, from a tech/development standpoint. The vast majority of work is focused on highly specialized subsets of development. Computer vision, embedded systems, network infrastructure, cellular networks, robotics, artificial intelligence, yada yada yada. The only meaningful work being done right now, is mostly by engineers with Masters, Doctorate, or post-Doctorate level education in niche fields.

Personally, I don't have that kind of educational background. I still managed to piece together everything to make a working prototype, but there is not a snowball's chance in hell that I would be able to contribute anything into this field.

Not to say it's useless, though. This is about to unlock a need for UI designers/developers on a level that is hard to fathom. Sit down and think for a while about what the hell people are going to be doing, while being chauffeured around. Entertainment options (Netflix, Youtube, News, etc.) will be in massive demand. Gaming of all different kinds (especially multiplayer experiences, that involve the vehicle's environment.) Advertising as a whole. (And goddamn do I wish I could be an investor in PornHub right now.)

While Oculus, HTC, Microsoft, etc. all have (or will soon have) consumer-ready products available for the VR market, I still feel like this technology is barely entering it's infancy stage. The financial barrier to entry is holding back 98% of the world from getting into it (for now). There isn't enough meaningful content beyond some decent games. (Once again, goddamn do I wish I could be an investor in PornHub right now.) For the most part, still tethered to a computer (or using a watered-down phone-based experience). It's cool tech for sure, but it doesn't feel (to me, at least) like anyone has really figured out what the hell to do with it yet.

3D development isn't terribly different than any other kind of development. A few more thoughts and considerations, but still the same principles of traditional console/pc game development. WebVR (and ReactVR) are still just a novelty. Because of the sheer scale and intricacy of most 3D environments, and my own predictions of an explosive growth pattern in this industry, I'm thinking that some form of automation (A.I., etc.) will have to be taking over most of the grunt work for development. Thinking that most dev roles are going to evolve into mostly architect roles, and that the real need is going to be for UI/UX (particularly thought leaders, as opposed to designers).

Thanks for this insightful comment. The current VR status irritates me as well. It has only affecting gaming till now, despite the remote working/AR implications. What do you mean by an 'explosive growth pattern'?
Algorithms and SQL.
Why specifically SQL?
Even if you don't use the language specifically, the ideas it provides on creating queries applies to pretty much every database I've used, with the one exception being Redis.

It also doesn't hurt it's the most popular language at the moment and judging by the amount of applications using it, won't be disappearing anytime soon (especially not in just ten years).

Not sure if exactly technical, more like a meta-skill.

Learn how to analyse and decompose problems. There always will be some.

Learn about fundamentals and underlying principles; equip yourself with fast learning skills.

You may also push up your own technology and contribute in changing the next 10 years.

Political science. Its like techical. It changes faster than technology.
As someone with a degree in political science, it absolutely does not change faster than technology.

What massive political science paradigm shifts have happened in the last 7 years, the same timeframe that has seen the advent of cloud computing, containerization, hyperconvergence, agile, ect?

Learn to be resilient.

Pick up an artistic or handcraft technique.

Make friends.

Comedy, music, drama, or something other performing art.

Know your means, live within them.

None of those are technical skills
"Making friends" is more technical than "learning math." But more importantly, having friends helps more with technical problems than, say, knowing some technology that doesn't apply here. Same for resiliency.

This was an off-the-cuff response, but it's a genuine one, particularly with skills "for the next ten years." I've hired a lot of developers over two decades, and some of them have done good work for me for a long, long time.

Functional programming, especially a language focusing on purity such as Haskell.
decision making through empirical research
There is no technical skill that will prepare you for 10 years.
OOP, OOD
I found it amusing that the comment directly below this was recommending functional programming.
The world is going WWW, so I'd recommend stick to it.
If you're talking about programming - learn Lisp. Pick any. Clojure, Racket, LFE, Chicken, Guile or emacs-lisp, etc.. Understanding Lisp will make you a better programmer. I'm sure, even 50 years from now there will be a Lisp dialect among 20 most popular languages in use.
20 is pretty far down the list for programming language popularity.

https://www.tiobe.com/tiobe-index/ lists Scratch in the 20th position. Cobol is 25. I'm not sure there's a Lisp dialect in the top 20 now.

Of course, any ranking of programming languages is problematic. Learning Lisp is always a good idea.

I'm not sure I'd agree with the TIOBE Index as a measure of popularity. It ranks languages based on search queries, which more than likely does not correlate that closely with use.

For instance, according to the Index, Java (#1) is twice as popular as C (#2). While Java is certainly popular, it seems a stretch, given the amount of code written in C, to say that Java is twice as popular as C.

You might like githut's rankings better. http://githut.info

For the purpose of what to learn for the next ten years, Java is probably more relevant to the job market than C.

(comment deleted)
Machine learning, especially deep learning.
Practice decomposing problems in a way they can be solved on multiple processing elements in parallel. Identify problems that cannot be decomposed in this way and why. Good if you can make a certain problem run on eight processors. But will it also run on a thousand processors?

Processor clock speeds will not rise much or any. Everyone has enough memory for most every day problems now, so memory will only gradually increase. The next bragging rights will be how many processing elements my box has vs. your box.

Tensorflow. We're going to be offloading a lot of pattern matching to machine learning. Knowing when and where (and of course how) to apply machine learning will become increasingly important.
The amount of cores in CPU's is on the rise; get into functional programming.
It's a safe bet that if something was relevant twenty years ago, and still is today, then it will also be relevant in ten years from now. Examples: OS fundamentals, networking fundamentals, low level languages, embedded development, shell/bash scripting, vim, emacs.

It's nearly impossible to look at a new technology and determine if it will be around in 10 years. But you know for sure that these timeless fundamentals will still be relevant, so the first step should be mastering all of those.

Example: Unix system administration fundamentals are not going anywhere and are more important than ever in the age of containers and developers owning more parts of the stack. It's funny to read blogposts like "check out this problem we ran into with docker" that is really just a rediscovery of a long-known problem in system administration. Example: the recent post from codeship about running thousands of containers on one network. Surprise, they ran into issues with an overflowing arp cache.

digital electronics, hardware programming
(comment deleted)