So I'm in the final year of my degree and I'm looking into jobs in robotics. It seems like the vast majority of them need knowledge of c++ which I don't currently have. Furthermore, so far all the jobs involving c++ I have seen so far require experience with it.

This seems like an impossible situation to me - can't get experience without experience. Is the only option really just taking a gap year or something after graduation to spend time learning the language?

  • 1
  • 2
    You've got at least half a year. You could assign yourself homework and start practicing... Or consider going into another field for a while that will give you more time to develop C++ skills (and who knows, you might decide that you like that field as much as robotics). Finally, remember that jobs which say they want experience in a particular may settle for someone who has proven skill in other languages which are structurally similar. (If you've worked in C and in Java, you can sorta average the two and have the general concept of C++, though there's a lot of detail to learn.) – keshlam Nov 12 '14 at 0:41
  • 5
    And remember that anyone hiring right out of college KNOWS you don't have much job experience yet. – keshlam Nov 12 '14 at 0:42
  • what is your degree? why hasn't it exposed you to C++ if it is a suitable subject for getting into robotics? what languages has it exposed you to? – HorusKol Nov 12 '14 at 1:44
  • Take a course. Maybe online. Maybe free. – user8036 Nov 12 '14 at 13:39

Learn it in your free time, each around a week:

  • Data types and functions
  • Classes and Objects
  • Algorithms, iterate and sort lists

This should get you covered for interviews and understanding code.

Then look into robotics, what are common tasks there, what algorithms are used, is there a cheap robot to test stuff on, then try to solve a task like fetch your newspaper with it. You'll probably fail, but learn a lot.

Imagine taking 3-4 courses (basics to robotics) at university, but condensing them in a shorter timeframe and teaching yourself from books or blogs. That's what work life later will be anyway.

Usually when switching languages or technology, you have around 1-3 months in a company until you are expected to deliver working code. Not in depth, but good enough to know where to find answers.


Learn the skills

If you don't have any skills with C/C++, then most likely you're not ready for such jobs, and for most companies you shouldn't expect to learn the basics on the job - there would be enough product-specific things to learn, so they generally require general basic skills as a prerequisite.

Languages are easy

That being said, gaining some proficiency in a language doesn't require that much time. It's often assumed that students in 3-4 year comp-sci programs will graduate already knowing multiple programming languages along with everything else they're doing, so 1 new language per year is possible as a side-effect of general learning. Getting up to speed in a new language is something that a qualified programmer should be able to do on their own within a couple months - the first project working in an unknown language would take more time, and that's it.

If it's your final year, you should be able to learn some C++ and build some trial projects before graduation, as a side-project along your other classes. Alternatively, it's something that should be doable in half a year while working in an unrelated programming job. If you feel that you would need to spend a whole gap year purely on that, then that's not a good sign about your capabilities (or self-esteem).

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