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'?
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).
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?
"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.
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.
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.
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.
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.
43 comments
[ 2.9 ms ] story [ 94.0 ms ] threadI 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).
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).
Learn how to analyse and decompose problems. There always will be some.
You may also push up your own technology and contribute in changing the next 10 years.
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?
Pick up an artistic or handcraft technique.
Make friends.
Comedy, music, drama, or something other performing art.
Know your means, live within them.
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.
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.
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.
For the purpose of what to learn for the next ten years, Java is probably more relevant to the job market than C.
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.
Oh yeah - if you save 68% of your earnings, you can retire in under 10 years.
The Shockingly Simple Math Behind Early Retirement http://www.mrmoneymustache.com/2012/01/13/the-shockingly-sim...
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.