Hi all !!

I am planning to do a masters in computer science from a US university. I am not sure which field I should specialize in. I have my interests, but job prospects are also important to consider, which I have little idea of. I am listing the specializations I know of, and the corresponding kind of jobs. Please add/correct these :) :

  1. Software Engineering

Typical software company like IBM, SAP, Adobe, Microsoft, etc.

  1. Databases

Companies like Oracle?

  1. Networking/ Wireless networking

companies like CISCO...?

  1. Artificial Intelligence / Robotics

No idea about companies. The only thing that comes to my mind is Honda's ASIMO and Research.

  1. Neural Networks

No idea about companies. Only good if you want to do research?

  1. Software Testing

Typical software companies like IBM, SAP, Adobe, Microsoft, etc.

  1. Computer Architecture

Intel, AMD, Research ??

  1. Operating Systems

Microsoft, research ?

  1. Bioinformatics

Pharma companies?

  1. Game development/ graphics

EA, Blizzard, Ubisoft, Bioware, etc.

  1. Distributed systems / Parallel computing

No idea.

I have two more questions:

  1. How much does specialization matter? For example, say if I major in bioinformatics (and lets assume that later I change my mind and want to be in a typical software company like microsoft), then how much will that get in my way of getting a job at a regular company, like Microsoft?

  2. Upon preliminary readings on internet, I somewhat like bioinformatics, game development, Distributed systems / Parallel computing. Could you elaborate specifically on these on what kind of jobs there are, working conditions, payscale, job security, and if possible prospects of findind a job in US and back in India?

Thank you very much in advance !!!

Hmmm...
Tricky to answer with out a crystal ball! How long will your Masters course last? Who can predict what the big growth sectors will be? Remember the .Com bubble and burst?

I'd say go what interests you first - If you are interested in it you will become good at it and you will always find a job in it even though it may not necessarily be in high demand... As long as it is current that is.

If your course is only a year then one good way could be to look at what jobs are on offer now but any longer and the way things are going out there who knows if there will be the jobs in that sector? Or if there will be a mad rush to by students to skill up in it and then it ends up with more candidates than jobs...

So maybe try and look at what will still be around no matter what and what gives you an opportunity to cross train into other sectors no mattter what happens.

I'd say for the foreseeable future there will always be jobs in the following:

Software Engineering / Programming - not necessarily with purely IT / computer companies either i.e. I've worked for Engineering firms, Pharma firms and Financial Services Firms all programming customised software for them.

Database - most systems run off of databases be it stored locally, in remote servers via a WAN/LAN or in the cloud Databases are around to stay and again don't necesarily limit what kind of industry you end up in e.g. Financial Services and Pharma - the majority of their systems is all about tracking, storing, retrieving and collating large amounts of data accurately.

Networking - The days of a single unconnected computer are gone - there will always be a network to admin/set up/ interface with.

For point one, If you look at the areas I've mentioned above, it should be fairly easy to get a job in most industries where a computer is used - I personally started out in software testing with a localisation firm, moved into web development picked up Database knowledge as I went and have programmed in several languages in a variety of industries - I'm currently a senior consultant for a company specialising in Sage Account and CRM software - before that I worked in a Financial Services company as a developer and before that I managed a support / IT team for a CRM specialist

I don't live in or have ever lived in the US or India so I can't help you with point 2 other than to say look at job site for salary scales but remember you don't get the big cash until you've got experience so look at graduate level jobs first... Companies want to see that you are willing to learn that you've continued to gain experience since you graduated and that you work well with others especially smaller firms where you wont be able to sit in a corner and say "oh I'm just a DB specialist I can't help you with your P.C."

Anyway I'm sure others will add their knowledge and experience to this - (I didn't mean to write War and Peace)

With the current push to "The Cloud" and "Big Data", companies are looking for professionals who understand large-scale distributed systems. This field includes software engineering/programming, networking, machine learning (statistics and advanced maths), and databases. These are the areas that I have been involved with for years, and were the source that landed my current position as senior systems engineer for a tier-one mobile phone manufacturer.

The demand for good programmers is high, and is not likely to diminish anytime soon. The saying goes: "Good programmers don't starve." For example, I'm subscribed to some C++ developer groups on LinkedIn, and there are between 10-20 new job postings everyday, just for C++ programmers. Overall, salaries seem comparable to mid-range engineering jobs (around 50 k$ to 80 k$ per year).

Let me talk a bit about what I know.

Artificial Intelligence / Robotics
No idea about companies. The only thing that comes to my mind is Honda's ASIMO and Research.

The Asimo doesn't have much A.I. at all, most of its motions are scripted and/or remote controlled, and most of the intelligence in it (and there is a lot of it) is in the hardware design (mechanical and electronics) and in control software.

For the moment, there is much more job prospects in research (with AI, you could call it "intelligent robotics"). There are many companies that develop hardware and software for robotics directed towards university research. And then there is defense research (DARPA and the like in other countries). Currently, most private companies in this field are young start-ups, but there are a few bigger ones like Boston Dynamics (Big Dog, and Rumba), Quanser (mostly research-grade software tools), and Willow Garage (PR-2, X-8, and the ROS platform). But most of these companies look for people that have experience in AI and robotics, and that have an engineering background in addition to programming skills (because it takes more engineering knowledge than it takes programming skills for most of the tasks in robotics software development), and this pretty much excludes anyone without quite a bit of university research experience (i.e., a PhD).

Moving away from artificial intelligence and more into robotics, then there are tons of big companies. The industrial robotics sector with multi-nationals like ABB, Kuka, FANUC, Bosch, General Electric, General Motors, Adept Tech., and just about every car company too, which all need custom software tools for their industrial robots and often invest quite a bit in R&D projects involving new types of robots and stuff (car manufacturing is almost entirely robotic these days, about 70% to 90% robotics, the rest is human operated, and many car companies keep the human jobs only to be able to say that they employ people, because they could easily to up to 95-98% of their operations with robots only). Artificial intelligence in industrial robotics settings is growing, and will be pretty big pretty soon. But, by and large, these companies want engineers with strong skills in software development.

To a large extent, in robotics, the job market for software guys is in the software tools for engineers designing, building, testing, operating and programming robots. Doing this requires a large amount of specialized software, and most engineers in this field (like me), acquired most of their programming skills by writing custom software tools for their own projects. So, there are a lot of companies involved in trying to create software like that. Engineers used to only need crude CAD software (like AutoCAD) and do the rest in pen and paper. Now, to develop a robot from scratch (professionally, not in your garage) you will need several hundreds of thousands of dollars worth of specialized commercial software (e.g., FEA/FEM, CAD, CAM, Multi-body Dynamics Software, Control software, multi-field simulation software, circuit layout design tools, etc., etc.). There are big companies and big money behind these software tools.

Emerging fields are really all about putting more intelligence into robotic systems. For the most part, much of the mechanical and electronics designs are very mature now, but there are very few applications for intelligence in robotics. Most robots out there move just by following a pre-programmed script or by some form of tele-presence of a human operator. And just about every robotics project in universities is focusing on the artificial intelligence aspects (not so much in Japan, which do mostly hardware designs). This is an emerging market, where Boston Dynamics is pretty much the leading figure, but there are more to come for sure.

Neural Networks
No idea about companies. Only good if you want to do research?

Well, neural networks is way too narrow. It is like saying "I'm an expert in Newton-Raphson root-finding." You can't specialize in one algorithm with limited applications. ANNs are just one small, and rather insignificant, part of the area of machine learning. And that is a big area for computer science and software engineering. This field might lead to work in image processing with applications ranging from fault-detection by visual inspection (with high-speed cameras) for products in an assembly line, to robot autonomy applications like localisation and mapping in a world using cameras. Speech recognition, natural language comprehension and synthesis are the kinds of software with very wide applications. Then there are tons of fields in which machine learning techniques can be used as part of a bigger setting. Like predictive models for data-mining in databases. Very hard simulation problems like climatic models and economic models (and you can imagine the salaries there) require very advanced algorithms, including a lot of machine learning ones. Not to mention the classified applications, like cryptography and surveillance systems.

The problem in this area is not so much the number of applications or job prospects, but the level of competence needed to deal with these complex and highly mathematical methods.

Game development/ graphics
EA, Blizzard, Ubisoft, Bioware, etc.

Don't forget 3D animated movies and CGI, or the software tools used by these industries, which require very similar skills to game-dev and graphics.

Distributed systems / Parallel computing
No idea.

You'd be surprised how many things run on super-computers or computer clusters. Anything that requires any kind of aerodynamics or hydrodynamics simulations will require parallel computing, and many of the companies that need this have their own software tools, and need developers to work on them. Think Boeing, Airbus, Bombardier, Embraer, Lockheed Martin, just about every car company out there, and then all the high-end scientific applications, like CERN or climate modeling, etc.. And that's just the people who have been using parallel and distributed computing for decades now. I can't imagine all the needs for this that will emerge in the near future, because we have pretty much reached the maximum CPU power, the future is in parallel computing.

MS in US are great career choice in computer science.

Lot of students take the GMAT test for MBA but if you don’t want to take this test or you don’t have enough time then you can apply to b-schools in USA, Australia and New Zealand.If you are planning to apply to top universities in US for MS courses, this may provide you complete information about GRE guideline for test preparation.Please do visite the site to get GRE test preparation.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.