A few things you need to think through.|
1. Why you want to earn a CS degree?
2. What is your career goal with CS?
3. What are your advantages to pursue a CS degree? What are the disadvantages?
4. What are you willing to do to achieve your goal?
I want to be able to raise my family. Computer science is a field that jobs are relatively easy to find (it is certainly true comparing to biology that I have been working in for more than ten years). Of course, I happen to have some interested in it, so why not working in this field.
Before the decision was made, it took a long time to convince myself this is the right choice. I took a Java course (an old course from Standford, CS106A) online to get familiar with some concepts in computer science and to make sure I will not be bored to do this. I also talked to a lot of friends, who are in this field, to get a sense of what should I be expecting working as a software engineer or data scientist. Finally I said to myself, OK, I can do it. Many CSers who think that too many people jump into CS, which makes it harder and harder to find a job. Thus you may hear people talking about whether it is a wise choice to abandon all your past and jump into a new field. According to them, there might be many obstacles for people without CS background. They want you to backup, stay far way from their terrain. What they said was true Indeed. You need to think it through thoroughly before you take seriously move. Do some research, and make sure this is the right choice for you.
Decision making was actually the hardest part for me. The affecting factors, besides whether I am capable to do it, also include how can I fund myself for the study and how can I solve the problem of VISA for study and work. These are minor details, and, with support from my family, they are not problems anymore. Once the I made my mind of doing this, the rest were quite straightforward. A lot of effort was and is being made to get admission from my dream school, but I believe anyone could do it if they want to.
First, get acceptable GRE and TOEFL scores. My scores were not good-looking, with GRE 151+170+3.5, TOEFL 102 (speaking 22, writing 21). You don't need high scores for Master's degree, but get a Quantitative Reasoning score as high as possible and try to get a TOEFL score better than 100. There are many online materials and courses available, among which I would recommend Magoosh.com. Prepare to spend half a year for this. Of course, if you are very good at English, one or two month should be enough.
Second, think of question 3 in the beginning. For me, my advantages are my research experience and my Ph.D. degree. Certainly these are not helpful in computer science, but these experiences can certainly prove my research ability. I also have good GPA in courses relating to math and computer science, which I highlighted in my PS.
My disadvantage was computer science background. I only took two computer science courses during college, Programming Language (C++), Data Structure and Database. To be honest, I don't remember anything from these two courses except blur images of the teachers. I need to find a way to show the admission committee that I have some kind of background in computer science, besides these two courses that I know nothing of. After speaking to a friend with Ph.D. in CS, I decided that I should do the following, learn a language, get familiar with database and do a mini-project. You may say you miss operating systems and algorithms, hmm... bite me.
I don't have much time to learn, as I have a full-time job and a baby to take care of. Time is very precious for me. So Python should be the language, because it is easy to learn and I know it a little bit before. I took an online course on edx in Python, which I would recommend to everyone. For the database, I took the stanford database course and I concentrated on MySQL. As a personal interest, I also took a machine learning course on edx. Three online courses look pretty good in my CV (I didn't include the certificates).
The hardest part is the project. For someone never work with computer science, coming up with the idea of a good project was not easy. It took me about two months to get an idea that uses my knowledge in biology and the tool of computer science to find a new way of transmembrane prediction. I know it sounds silly, and it was done decades ago by bunch of people. But I could do it in a different way, using machine learning tools. The final model turned out to be very accurate, which was very exciting. So, for a project in your CV or PS, you don't need something big, you just need something to show your interest and your ability.
Three years, that's the time you need to become a CSer. One year to prepare for your application, and two years for study in school.
It will be tough, but you and I will survive.