Ask HN: What new development technology in the last 3 years is worth learning?
For the last 3-4 years I've been working at a super small startup doing Rails, and basically just using my existing technical knowledge and avoiding the learning cost of new technologies. I know React has gained a lot of popularity -- what else is worth looking at as I take my head out of the sand?
Not limited to web programming; OpenCV and other technologies are neat too!
69 comments
[ 25.7 ms ] story [ 633 ms ] threadFunctional languages have begun to gain popularity and coverage as well.
On the frontend Elm is excellent. On the backend Elixir and the web framework Phoenix offer top notch developer experiences.
If you have experience in the dot net world... Dot Net Core is shaping up to be a revolutionary rewrite of the dot net ecosystem. It's fast and lean, as well as cross-platform.
If you are into lower level languages, Rust & Go have picked up a ton of steam in the past few years. Until recently they have been stuck in the systems level programming niche, but Go especially is beginning to take hold for API and more "front side of the backend" development.
But for startups or faster moving enterprise shops, Dot Net Core does present a more exciting (and flexible) ecosystem.
Picking up .NET core would make a great start to transitioning to a Microsoft-based skill set. That's generally the way those skills are gained - by starting with the latest available to the platform and working backwards as necessary. I started down the path with .NET 4.5 and don't think I've had but a small handful of opportunities to utilize the features in it because most of the servers I work with have .NET 4 as the latest version.
.NET Standard is the newest of the new.
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introduci...
The terminology is getting hard to follow :)
There's nothing wrong with Xamarin. We have a few apps still maintained in Xamarin. But I find developing UIs and even the general data flow to be better in RN. Perhaps I just prefer JSX and the Redux pattern.
I find that Xamarin is still better documented and it's easier to find help than with RN. But we tend to live on the bleeding edge a bit.
now also NativeScript and up and coming Weex (React Native for Vue, built by alibaba)
https://www.assetstore.unity3d.com/en/#!/content/64131
Get the asset and watch those YouTube videos.
Understanding JWT and how it works as it seems to gain momentum.
Angular2, React, Vue I think are all worth learning and playing with as each developer will have a different taste. It looks like React is getting a lot of traction everywhere.
ES6, Promises, Async/Await, TypeScript, Babel, WebPack etc are definitely worth getting familiar with.
https://en.wikipedia.org/wiki/ESP8266
As far as MicroPython goes, same thing. It's great for prototyping, but it's still somewhat hackey, slow, not that memory efficient. It doesn't need to be for its use case...but for production ready sensors I need to be sure to work the best they can off the shelf, I'm gonna write that in C/C++ or most likely Rust (if there is an LLVM backend for the chipset).
You may get skeptics who scoff at the new approaches and say you should learn traditional computer vision or machine learning first. I strongly believe these people are wrong.
http://cs231n.github.io/
I also have to put in a plug for Geoff Hinton's Coursera course. It's not for the faint of heart. It's essentially a graduate level college course with the commensurate required time investment. It's getting a little old now but it was my introduction to neural nets and if you want to learn from a pioneer in the field it's still a good option in my opinion: https://www.coursera.org/learn/neural-networks
I would expand this to include machine learning in general, with a healthy dose on deep learning architectures.
Specific tools/tech:
* Python and C++
* TensorFlow (and TensorBoard for vis)
* Keras (soon to be part of TensorFlow)
* Theano (not as popular as the previous two, but look into it)
* CUDA/CUDNN
Per the last one - if you're going to be playing in this sandbox, get used to using NVidia's tech; AMD for some reason isn't there yet - though they do have some stuff. Maybe it's a lack of marketing or something.
If you want to get your toes wet a bit - check out:
http://playground.tensorflow.org/
Finally - there's been recent research on using deep learning to create and enhance deep learning networks - so for all I know, in the future a developer role in deep learning may not even resemble an actual software development gig...
- Immutable architecture via Docker & containerization in general
- React & React Native
- Most of the fully-managed services on AWS... a lot of them are turn-key for things that used to take a lot of overhead
- Blockchain
The best tool in your toolbelt. You could easily build apps for the desktop, mobile, server, watch, tv, linux, etc. It's the digital clay to build whatever you want to build. Your imagination is the limit.
So yeah, I guess I'm seconding Ansible, and adding in Docker as well as many have done.
Android: Java -> Kotlin
iOS: ObjC -> Swift
Web App: React + Coffee -> React + ES6 (Backbone models)
Website: React/ES6/Redux/Babel/Webpack with server rendering
Backend: Clojure at the core; Python for heavy number crunching
To me, learning is a time / long-term-benefit trade-off. You're giving up your precious and valuable time now to get something that you believe will pay off in the long term. I'd love to learn everything under the sun but I only have time to learn a few things. So, I will spend the time where I think the biggest payoff is. A bucket of 30 slightly-related but "hot this month" technologies is a lot of cost for unknown benefit.
If you asked this question 20 years ago, there was a similarly-sized laundry list of hot technologies one could have learned, but I'd argue only a few really would have resulted in lasting long-term benefit. C++ was probably one of them. Linux was probably one of them. HTML probably. WebTV? Probably not.
TLDR: ES6 and its surrounding environment.
- ESP8266
- ethereum
- software defined radio projects
- ketamine as an antidepressant
- https://www.addgene.org/vector-database/
^ note, I just think these are all technologies that have yet to reach their true potential