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]
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.
> 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.
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.
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.
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.
[+] [-] dsacco|8 years ago|reply
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|8 years ago|reply
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.
[+] [-] wallflower|8 years ago|reply
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|8 years ago|reply
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|8 years ago|reply
[+] [-] sotojuan|8 years ago|reply
[+] [-] sotojuan|8 years ago|reply
[+] [-] moondev|8 years ago|reply
[+] [-] ya3ad|8 years ago|reply