I am currently employed as an Android Developer with knowledge of iOS / Java SE / C#.NET Forms/WebAPI / Angular JS.<p>At my current salary range I really only have the confidence to apply for Android dev, which is fine. It is the basis of my 3.5 years commercial experience.<p>My feeling is that I need to learn something new which is in demand or focus on one of my secondary skills. Simply, put I don't want to continue down the path as an Android dev and get "stuck" if demand drops off.<p>I'm hesitant to learn new "buzzy" tech, case in point RubyOnRails. I read a report on here lately about how much it is in decline.<p>Python looks good as it has been around a while, Google supported etc. Javascript is also a possibility as its not going anywhere in the browser and Node is really picking up steam.<p>Java is around a long time and often bashed on here, that said, I think it still has it's place as a lot of the commercial world we know is built on it. Learning the enterprise stack is a strong contender given the above and my current Java knowledge.<p>Finally, I have recently come across an opportunity to learn C/C++ in my job. This doesn't really seem like my thing, I do like finance and would really only consider it if I wanted to get into low latency finance type applications. That said, C and C++ are complex and might require a lot before I could work in finance at the salary level I require.<p>What do you wise folk think?<p>Appreciated.<p>P.S. I understand this may be quite broad. I am also not looking for a crystal ball into the next great/in demand technologies. Just mere opinions on what you would pursue next if in my place.
You seem to primarily want to do something that's in demand. Even though it's a fairly niche language, Ruby is in demand. Many, many startups still build their MVP with Ruby on Rails. Native iOS developers are also in demand, so Swift is an option.<p>It's hard to go wrong with Java (Scala or Clojure included) or Microsoft stacks (C# especially) if you always want to be able to find work. Python is sort of in a middle ground, but there's some good opportunity in the data-analysis/finance world with those (if you don't want to do something more traditional like Java).<p>My suggestion is to find listings for your ideal job at your ideal <i>type</i> of company (startup, enterprise, etc.) and see what the skills required are.
Swift.<p>Mobile in general seems very unlikely to have reduced demand.
As wearables increase in popularity there is likely to be an increase.<p>If there was reduced demand for Android, then iOS would presumably have increased demand.
Maybe React-native? It can be used for Android apps now (in addition to iOS, and soon Blackberry and Windows). Being able to deploy apps to iOS would be a big boost on your resume.<p>Plus the development cycle is much faster due to auto reload and a host of other things (like loading code from the remote server), so you'll have some better work to show off, too.<p>Everyone at my office is abuzz about it, and because it's so young, you have the chance to put some of your work out there on Github and get people interested in you. Give it a look.
The demand for every programming language / framework follows the bell curve. You are correct that Android demand will drop off at certain point. It's difficult to predict what will be the next big hit. The best thing to do is keep an open mind and try out different things that has the potential to become very popular. It's like managing your stock portfolio. You have to spend time in some risky technologies which has big rewards, if it takes off.
RubyOnRails isn't new buzzy tech. It was in 2008, but it will be the source of large web stacks for many years to come. I would go with node JavaScript. It's battle tested at this point and there is a lot of demand, meanwhile many of its patterns are still evolving, so there's a lot to learn. I would not say it's worth learning a specific framework to go along with it, but it depends on what side of the stack you want to work.
I would consider Go. It's easy to learn and use (certainly more so than C++) and gives you the ability to write performant code (unlike Python) for the backend with minimal dependencies (unlike what you already know). The cool kids doing container work (e.g. Docker) swear by it, and... <a href="https://godoc.org/golang.org/x/mobile" rel="nofollow">https://godoc.org/golang.org/x/mobile</a>
If you want to learn a new technology that is in big demand, and probably will always be, i suggest learning frontend web development. It's extremely easy to learn, pays well and shouldn't go out of demand any time soon. I know that you were looking for a specific language to learn, but i consider frontend development as one (HTML/CSS/JS)