
Ask HN: I'm a bored front end developer. What should I learn next? - SampleRate
I&#x27;ve been doing web development for the past 4 years and I&#x27;ve had enough of pushing pixels around for clients. I have a degree in Physics and I&#x27;d like to do something more numerically demanding. There are a <i>ton</i> of amazing resources out there on things like Coursera, Udacity, iTunesU etc for teaching yourself new things, but that&#x27;s my problem - I don&#x27;t know how to narrow it down, and I don&#x27;t want to waste time learning things that won&#x27;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&#x27;m thinking it&#x27;s possibly a good idea to learn another language like Python&#x2F;C&#x2F;R etc. Do any of you have any good suggestions that would lead to promising career paths? Thanks
======
aswanson
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.

~~~
Sean-Der
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?

~~~
aswanson
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.

~~~
ljk
> _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?

~~~
aswanson
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.

------
taf2
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++.

------
klum
Don't know about career paths, but maybe you'd enjoy playing with
[http://d3js.org/](http://d3js.org/) to visualize data in all sorts of
interesting ways.

~~~
SampleRate
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.

~~~
Bahamut
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).

~~~
vijayr
Do you know what kind of projects he works on, that use d3?

------
moru0011
machine learning + go|java|scala

