Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a relatively new computer science student, I am trying to find my niche within this broader field. My main goal is not academia but, well, a job. As such, I want to choose a specialization or two that will provide two benefits: 1. Interests me. I will find the work to be engaging and enjoyable. 2. I can actually get a job doing it.

My more rational brain is encouraging me to do something like database work or web development, seeing as there will likely be an ongoing need for that type of work. On the other hand, I am finding myself attracted to things like artificial intelligence and machine learning, as they both seem really fascinating. I could see myself doing some really exciting things in that area. However, I often get the impression that it's more of an academic thing than something with actual industry demand. (Though that's just my immediate perception.)

Do you think an AI specialization is likely to open up sufficient job prospects. Although it seems interesting, I'm the kinda person who is fine with doing work that isn't necessarily that interesting, and I'm more concerned with job availability and security, at this point in time.

Your thoughts are appreciated...thank you!

share|improve this question
This question will probably get killed. Try rewording it to something along the lines of "which commercial domains and products are currently using some flavor or subset of AI", and mention within how it relates to your career choices. As to your actual question, "I try to never skate to where the puck is, but to where it is going to be" - Wayne Gretzky. – kylben Oct 23 '11 at 4:48

3 Answers

There are tons of real-world AI applications, just a few examples:

  • Autonomous vehicles (Robotics)
  • Industrial quality inspection (Computer vision)
  • Face recognition (Computer vision)
  • Medical computer vision
  • Search engines (Natural language processing, computer vision)
  • Computer games (Planning, Path searching etc.)
  • Computer algebra systems (Symbolic computation)
  • Algorithmic trading
  • "Smart" weapons
  • Customer service chatterbots

Of course, there are far fewer positions for experts in those fields, than e.g. for database administrators, but there are also far fewer experts in those fields. I'm convinced the people inventing all these things can make higher salaries than Average-Joe Database Programmer.

share|improve this answer

I hate to be the bearer of bad news, but as a recent computer science graduate specializing in A.I. and machine learning (ML) I figure I'm in a decent position to weigh in.

So, as the other answers mentioned, there are indeed a great deal of industry applications for AI/ML and focusing your coursework around these subjects won't impair your ability to land a great corporate job as any computer science degree is good enough.

However, if your planning on just getting a B.S., then don't expect to actually do anything remotely related to AI/ML in industry. While its true nearly all large tech firms (Google, Microsoft, facebook, etc.) do a great deal of work on AI/ML applications, that work is nearly universally done by people with PhD's. Even if your on a team specializing in AI/ML (e.g. Google's search engine performance team), your day-to-day workload will be very similar to that of another, non AI/ML, team.

The reasoning behind this is quite sound; AI and ML are extremely bleeding edge disciplines involving an overwhelming amount of different technologies and mathematics. Unlike programming a database, designing a new machine learning algorithm isn't a skill one can pick up on the job, and an undergraduate specialization simply isn't enough preparation for robust algorithm design.

So, I present to you three alternatives:

  1. Take all of the AI/ML course you want in college, with the assurance that it won't hurt your job options, but then prepare to transition to AI/ML as a hobby once you enter the workforce.
  2. Specialize in AI/ML and go on to get your PhD in it (or at least a Masters) before heading out into the corporate workforce.
  3. Find an 'alternative' job that allows you to utilize your AI/ML skillz. Big companies don't like giving AI/ML work to those with just a BS, but tech startups don't care.

I sincerely hope this helps and doesn't dissuade you from pursuing AI/ML to its utmost. Their fascinating subjects, and I wish someone had informed me about the difficulties in working within them not so I could choose different subjects, but so I could better prepare myself for the long journey ahead.

share|improve this answer
1  
A fourth alternative: Many companies offer educational programs, which includes paying for some (if not all) of further education. Depending on your financial situation, it might be best to enter the workforce (preferably in a job you actually enjoy), then go after a Masters and/or PhD program with assistance from your employer. Especially good if your employer needs/wants people with graduate-level education in your area of interest. – Thomas Owens Nov 9 '11 at 20:45

Netflix, Amazon, Google and a number of other companies depend on clustering and classification algorithms, Markov and Bayesian models, and other machine learning techniques for search, recommendations, and mining their customer base. A large number of companies will eventually benefit from applications of these technologies, if they aren't already directly or indirectly using them.

Even if you were to pick an area with even more remote job prospects, it never hurts to study what you're most passionate about. Figuring out how databases work or how to do web development isn't hard (up to a certain level of expertise) and isn't really something you need to focus on in an undergraduate program; no matter what you do in a 4 year degree, you're only going to have what amounts to a basic survey of the field when you're done, and you'll be more valuable for your ability to dig into problems and solve them than for the specifics of your knowledge.

I'm one of the quiet majority of software developers that never even flirted the computer science program during my undergraduate degree. Chances are that what you end up studying will have only a little bit to do with what you do for work, anyway, unless you are the sort of person that can't advance beyond what you've been "trained" to do. If you're after "training", an undergraduate degree isn't what you need anyway, and if you're expecting to be successful in the software industry, you'll need to be able to think and solve a lot of different kinds of problems. Focus on developing your problem-solving skills with something you're excited about now, and you'll be fine.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.