
Ask HN: What technology should a fresh CS grad learn in 2017 - ya3ad
Suppose a fresh CS grad who is comfortable with Java only. Which technology will you suggest him to learn in 2017? [Consider he will be master of this technology. I mean he continue his work with it]
======
dsacco
Everyone is saying you should learn AI. Don't learn technologies or skills
that are in vogue. Learn what is very difficult for other people to learn. The
more generalizable the better.

Find something that interests you in very advanced computer science or
mathematics and learn it extremely well, while building out a breadth of
shallower expertise in foundational and peripheral CS/math.

You do this for two reasons: 1) if you learn (and can apply) what is very
difficult for others to learn, you'll have very good job security and better
overall work opportunities; 2) everything else that becomes vogue will be
comparatively straightforward for you to learn, because it's merely an
application of what you already know. This gives you a head start on what's
vogue in the future.

Let's look at an example: say you understand linear algebra and statistics
extremely well, and can productively write performant code that leverages this
understanding. You are now good at machine learning (or have the capacity to
become good)! You're also good at understanding cryptography, which means you
can ride the cryptocurrency job boom if you want.

I can guarantee you that there will be, or is now, an emerging renaissance in
some field which will be happy to pay people with very rare, useful and
generalizable skills compensation that would make you double take. Don't
kneecap yourself by learning "just" AI.

~~~
dabockster
> Don't learn technologies or skills that are in vogue.

This should be the big highlight of your comment. A lot of people out there
don't seem to realize that the mass adoption of AI that is being claimed to
happen still can go up in smoke if

1) the tech is proven to be unscalable,

2) the tech has a huge expense (money, personal info, etc),

or

3) the tech is seen as tacky and gains the associated brand image

Right now, AI requires a lot of FPGA power to do, so 2 might be the most
likely scenario in the short term. Long term, unless non-technical users can
be convinced to let go of their privacy enough for highly public contextual
computing to be performed, then 3 will occur.

As for the OP, I'd recommend Full Stack since you get exposure to almost
everything that you'd encounter in 90% of dev environments out there.

~~~
ya3ad
Thank you so much for your valuable inputs. A lot's of you suggesting full
stack.However, I would like to know what is the opportunity for Mobile Dev?
How do you see a mobile developer in upcoming years? Although, the app markets
are full of apps and revenue is going downwards for both iOS and Android
platforms.

------
wallflower
In the long term, robots will kill most blue collar jobs and AI/ML will kill
most white collar jobs.

If you want to be positioned for the long term, build your own business by
mastering marketing and building a network and selling and producing and
project management.

In the medium term, learn mathematics so you can benefit from the shift to
AI/ML. I am not personally doing this because math is not fun for me.

------
kevindeasis
This is the suggestions given to me by people way smarter than me:

Find something that you are passionate about or at least a domain that you
find fun or interesting. The horizontal landscape of CS is incredibly vast.
The last thing you want to do is to learn something you are not interested in.
Let's say you will make lots of money from quadcopters in the future, but
would you still do it if you ended up hating yourself?

One thing that is important is the fundamentals and basics of CS. You usually
want to have a good base so that learning other things built with the
fundamentals becomes easy. IE: You dont want to learn calculus without
learning basic arithmetic first.

Figure out what domain you want to be in, for example real estate. Once you
find that out, look for the programming languages, math, and technology they
are using. This is one way to get a job right away after graduation.

Go talk to other students in other faculties from STEM to Humanities. You'd be
surprised how they use technology, which you might have not realized before.

------
abeTom
ai, ml, a bit of robotics (micro controllers, sensors, actuators, how to
interface and program it, control theory). functional programming such as
elixir, genetic algorithms etc... and just as interesting would be to pursue
nanotech. or you can always go the web dev path and be totally unoriginal.

~~~
sotojuan
FWIW most Elixir jobs I've seen _are_ web dev :-)

------
sotojuan
To get a job now? If you are in the US and want to work in tech hubs ASAP then
JavaScript: Node and React.

------
moondev
Golang, js + react with a sprinkle of docker + kubernetes

~~~
ya3ad
May I know the reason behind suggesting Golang!!

~~~
partisan
Because everybody has a language that tickles their fancy. You could replace
golang here with any or every other language and you would have someone say "I
use this stack in production and it's great!".

