I have an undergrad degree in linguistics, and a masters degree in natural language processing from a department of linguistics. I would like to continue research work in natural language processing, but change fields to computer science. How can I make this happen? Many say its not possible, but I'm willing to put in the work and do what it takes! Although continuing my research as a linguistics PhD would be easier, I am not interested in taking this route.

More about my background:

  • I am 25 year old female.
  • I currently have 2 publications: one is a publication on software that I developed, the other is a somewhat random bioinformatics publication.
    • Many more publications to come in the next year! I have worked at 1 research institute (where I developed and published my software), worked in a CS lab, and now I work in government R&D and am affiliated with an R1 university.
    • I have been involved in A LOT of digital literacy efforts, volunteered to help at women's hackathons, etc. and have given a lot of Data Science presentations to the public.

My plans:

  • GRE & GRE Math subject test.
  • CS self-studying. I'm comfortable about data types and learning more about algorithms.


  • Do I have to get another masters? I can't afford it :(
  • Would community college classes actually help me get in? I'm afraid they won't be taken seriously...
  • Other ways to obtain/prove I have the necessary prerequisites for a CS degree?

I know some universities will simply not accept someone without a CS background, but some explicitly state in their CS admissions that they will (e.g. UWashington, UToronto)

2 Answers 2


I have a bachelors and masters in a non-STEM field and am currently in a CS PhD program. I had a similar constraint that I could not afford a CS masters degree and wanted to go directly into a research PhD. You seem like you're in a good enough position to just apply now, but given my non-STEM background, here's what I did:

  • I took online courses such as Algorithms, Automata, Databases, and Machine Learning. I did all the assignments and took detailed notes. I'd suggest you look into Deep Learning since neural machine translation is a hot area.
  • I put everything I coded on GitHub. I made sure my code was clean, organized, and well-commented. This was primarily for employers—I'm not sure if grad schools care—, but I had to pay the bills while teaching myself on nights and weekends.
  • I held a couple of programming-related jobs, starting as a software developer at a startup and ending as a research software developer in a bioinformatics lab. The first kind of job is good for getting your foot in the door and the second is good for publications—you might already be set on the latter.
  • Because of the above job, I curated my application for ML + computational biology tracks in CS departments. Cross-disciplinary labs are nice because no one knows everything and everyone brings something to the table. For reference, one professor at another school told me that he wanted to accept me but was worried about my background. This lab was extremely focused, and the school expected me to start research in that area on day one. I interviewed twice but didn't get in. I think where you apply is probably the most important variable, provided you have a solid application.
  • I applied to 8 schools and was only accepted by 1. Just FYI.

Good luck.

  • Thanks so much for your reply! Its VERY encouraging to know! Per machine learning, I'm already comfortable using Keras and PyTorch :) Deep learning is a big part of natural language processing! For your online classes, did you pay for the Coursera courses certificates?
    – SnarkShark
    Apr 3, 2018 at 17:06
  • If you already know PyTorch/Keras and am comfortable with ML/DL, you're way ahead of where I was. I didn't pay for certificates.
    – jds
    Apr 3, 2018 at 17:20

Grammatically you are very well-equipped. The community may take exception at your lack of coursework in graph, computation, and automata theories. In my opinion as a scholar, a lack of coursework is less of an indicator of long-term success in studies than the individual's piqued curiosity regarding a field of study. If you have already said, "I will spend 5-7 years developing a new item of knowledge in computer science," that itself is an intellectual achievement within computer science. Few undergraduates find this sort of dedication to any practice.

Undergraduate programs teach a variety of curricula, ranging from, "This is how to program a Linux computer with network access," to, "This is the mathematical concept of the computer, this is how we make conjectures about it, this is how these conjectures are abstracted into physical computer programs." Typically that third step is linguistic, but the previous two will be the focus of PhD research.

As with any intellectual pursuit which requires collaboration with academia, all you can do is write letters, show your personality in them, submit applications, and apply yourself to independent study.

Source: I have a M.Sc. in computer science & have been a student in the institutions my entire life.

  • 1
    Thank you for your thoughtful reply! This is so great to hear!
    – SnarkShark
    Apr 3, 2018 at 17:07

Not the answer you're looking for? Browse other questions tagged .