How to transition into software without a CS degree
July 21, 2013 5:03 PM   Subscribe

Career advice filter: I'm currently an experienced research assistant at a major research university (three years out of undergrad) who developed serious programming skills working on NLP projects doing parsing and information retrieval. My undergraduate degree is in Linguistics. I'm attempting a career transition into a more purely technical, software-oriented, possibly NLP-flavored position. Do you have any practical advice for ways that I can showcase my programming abilities and/or convince prospective employers that I am solid candidate (despite the lack of CS degree)?

Or is this endeavor overly idealistic in general and I should consider going back to school for a degree in CS? Also considering applying to graduate programs in Computational Linguistics in the fall. I welcome any suggestions of relevant programs.
posted by anonymous to Work & Money (9 answers total) 10 users marked this as a favorite
 
I manage a team of mostly entry-level software engineers. Very few applicants actually have CS degrees. Most are transitions from IT support (the route I took), economics, etc.

The way you show off what you can do is by having a github page with some projects on it, or contribute to an open source project, that kind of thing.

One of my recent hires is making a move from technical recruiting, and attended Hackbright Academy as a way to build up her skills and have some projects to show off.

A good employer will ask you to write code in the interview, and that's the primary tool for judging how good of a programmer you are.

So I guess the short version is:
* Contribute to open source projects
* Have a github pages with your work on it
* Be ready to do standard interview coding like reversing a string in place, a Fibonacci series, etc

Good luck
posted by colin_l at 5:12 PM on July 21, 2013 [2 favorites]


I know plenty of professional programmers without degrees, and very few professional programmers with advanced degrees whose degrees are in computing.

Seconding colin_i's github recommendation: publish, publish, publish. Make sure that your code available to people who'd be interested in seeing it. Put it out there and say "here's what I do". And then claim that competence on a resume and point people to your repos.
posted by straw at 5:22 PM on July 21, 2013


Did you take any mathematics classes? That may be what NLP-oriented jobs want to see, more so than a CS degree. Linguistics as your degree seems like it has to help, too.
posted by thelonius at 5:22 PM on July 21, 2013


If your end goal is to work in the field, you can do that now, or maybe in six months, without any more schooling. To find work you need two thinks: skills, and connections to people who might hire you.

You already have skills which should make a good resume, but having public projects to show off is really key -- it's like a designer's portfolio. A great way to do this is to do learning projects to teach yourself new technologies. A few months of spare time hacking can produce some great portfolio projects. Having experience working with github and working on large software projects with a team (e.g., contributing to open source projects) would be a big bonus, since one of your major risk factors as an employee right now is probably the transition from research to a commercial dev environment.

Connections come from your professional network, which may or may not currently overlap with potential employers. A good place to start is to join tech-oriented meetups in your city and try to meet some working developers, make connections on LinkedIn and make it known that you have NLP skills and are looking for work.

I have a feeling this career transition may be easier than you think. If you have actual proven experience doing NLP-oriented development, then you are already very employable.
posted by PercussivePaul at 5:24 PM on July 21, 2013 [1 favorite]


Okay, so a Github and such isn't a bad idea, but I would be looking at using your academic work more directly. Can you publish the code you authored? Are you credited for it in a research paper?

Can you tie your research and publication history to your programming? Can you talk to people in your department or departments they work with and see if they know somebody looking for a person in your field?

I would be looking strongly at leveraging your existing network. I would definitely suggest a portfolio, but I would try to see what work you have previously done you can put up.

Finally, depending on where you are, meetups or other get-togethers by programmers may be a good way to network for you.

You can also try finding people who's work interests you, companies working in NLP, and expressing interest.

I know several people who went from Linguistics to programming, and there are long standing ties between the two fields, going back at least to Larry Wall, who created the Perl Language.

Good luck to you. I'm in a similar boat myself.
posted by gryftir at 5:57 PM on July 21, 2013


Linguistics as a degree for NLP is very relevant. You don't need to go back to school if you can already program.

Specifically with your background, programming in academia is often considered to be a bit different to real world programming. Some common ideas, that may or may not be misconceptions: lack of readable/clear code, lack of good version control, use of older/outdated languages/versions, writing buggy code, etc. - since the end goal of research is generally publications, not the code itself.

So, make sure your github public projects that you're showing off are not any of the above - and they're also projects that can actually do something practical and useful in the real world.

If you have code you've written that produced some amazing practical result, but the code itself is a hacked mess, fix it before you make it public.
posted by Ashlyth at 6:03 PM on July 21, 2013


Have you considered applying for linguist jobs at software companies? Like this one, for example. From there it is typically possible to transition from a linguist to a software eng role, and you may have an easier time of it since you're a known quantity.
posted by town of cats at 9:47 PM on July 21, 2013


Excellent free alternative to a paid CS degree: Open Courseware from MIT.
posted by rada at 10:47 AM on July 22, 2013


You would be an extremely attractive candidate to software companies doing NLP work right now, without a GitHub or anything else. I'd start by spiffing up your LinkedIn with lots of NLP related keywords, then reaching out to companies looking for computational linguists, even if you don't meet all of their stated qualifications. Software companies (especially smaller ones) are often on the prowl for well qualified candidates at all levels even if they are not actively advertising for specific positions.
posted by kelseyq at 11:25 AM on July 22, 2013


« Older stop between Union station and Navy Pier   |   Can I Eat This? Corn on the cob edition Newer »
This thread is closed to new comments.