Hacker News new | ask | show | jobs
Ask HN: I'm a bored front end developer. What should I learn next?
4 points by SampleRate 4087 days ago
I've been doing web development for the past 4 years and I've had enough of pushing pixels around for clients. I have a degree in Physics and I'd like to do something more numerically demanding. There are a ton of amazing resources out there on things like Coursera, Udacity, iTunesU etc for teaching yourself new things, but that's my problem - I don't know how to narrow it down, and I don't want to waste time learning things that won't be worthwhile. Here are some of my initial thoughts: teach myself Machine Learning, Data Science, GIS, computational fluid dynamics. I have a good knowledge of Javascript, so I'm thinking it's possibly a good idea to learn another language like Python/C/R etc. Do any of you have any good suggestions that would lead to promising career paths? Thanks
4 comments

I have a path to avoid: embedded programming. Its low level c and being increasingly marginalized due to moores law. Its a field dominated by accidental complexity and wheel reinvention on its path to irrelevance.
I could see C replaced with something like Rust, but I don't see it disappearing just because hardware gets faster. Companies will just make devices smaller, and it makes sense to write things in C once if that means everyone gets a faster experience. However, I sure don't want to maintain all that code!

I am paid to work at a higher level (Go, PHP and JS) I take any opportunity to write a little C, in fact I would say that I romanticize the chance, the challenge is great.

Are you currently in the embedded field, is it your experience that it is getting phased out?

Yes, I am. I made the mistake of equivocating hard, complex == valuable. Classic engineering mistake. Higher level languages, in the end, will always be in more demand than lower level ones because those levels of abstraction allow for newer possibilities. New possibilities lead to new money lead to better career paths. There will always be a need to set up registers and clocks, but once that's done by 1 or 2 programmers, the real work begins. The intentions/vision of the application come into focus, and, in the end, reap the rewards. In short, embedded is an increasingly automated dead-end; the smart skill investment is moving up the stack.
> embedded is an increasingly automated dead-end

as someone who's new in the industry and interested in embedded, what do you mean exactly? who is automating it and making it a dead-end?

I mean that a lot of low-level setup for embedded is done by tools now; for instance, Freescale has a set of design tools that let you design peripheral drivers by picking options from a pull-down list rather than writing code directly. Embedded is bottom-of-the-stack coding that is very repetitive. By all means, if you are interested, study low level programming. It's good for any developer to know those things, but in terms of career growth its probably better to develop higher level programming skills to rest on. Buy a beaglebone board to hack embedded stuff but don't invest your core skills there.
Thanks for the tip, I'll be wary about going down that route then!
No prob, please do!
Learn C, and do something with machine learning. Once you master C everything else will seem easy. This will help you by mastering another language and give you something to focus on that should use some of the math skills you probably gained from your physics degree. The nice thing about learning C is you'll never have to wonder how the other languages work because most are implemented in C/C++.
Don't know about career paths, but maybe you'd enjoy playing with http://d3js.org/ to visualize data in all sorts of interesting ways.
Thanks for the suggestion, I did a bit of dabbling with D3 a while back. I wonder what doors it could open if one became an expert in it.
I talked with the guy who originally created nvd3 a little while back - he apparently makes quite a lot contracting due to his d3 expertise (no hard numbers unfortunately).
Do you know what kind of projects he works on, that use d3?
machine learning + go|java|scala