Hello Everyone !! Sorry I was MIA :), as you all probably know if you read my previous posts I’ve just started grad school. While everything I learn here is extremely interesting it’s kind of a grind so I haven’t had time to write anything new. Now coming back to my post a lot of my friends and students from Sri Lanka have been asking about my experience about switching fields from Computational Physics to Computer Science. To those who don’t know I have a bachelors degree in Computational Physics and I switched to Computer Science for my PHD.

This post is for you if you’re a student following a bachelors degree or someone who just finished a degree and planing to apply for grad school, but don’t really like your current field and wants to switch(I emphasize on CS). Now first of all switching fields is not an easy thing, and it requires a lot of planing and preparation. But thats not the hardest part, the hardest part is deciding that you want to switch. Because most everyone you will meet or ask advice from would tell you it’s risky and hard. Yes it is risky and hard but not impossible. I decided for my own personal reasons to switch fields back in 2015 and it was one of the best decisions I’ve taken so far :).

Disclaimer: like any form of advice, what I’ll be telling today is 30% actual advice and 70% from my own experience. So some things may or may not apply to you, so do take everything with a grain of salt.

Now back to my post. If you googled a bit on steps for applying for a PHD you would get a considerable number of results containing a lot of useful advice. However, its my opinion that the same approach doesn’t work for everyone simply because we are at different stages of life(by life I mean different years at university) when we do decide to apply for a PHD. So depending on what stage of your bachelors degree the approach to prepare for the application process would change. Now obviously I’ll be making some assumptions about you, since even my advice shouldn’t be applied to all cases.

Assumptions about you

  1. You really really want to do a PHD. This ones a given, because if you didn’t you wouldn’t be reading this.
  2. You are thinking of switching fields, but unsure if thats possible. Now, what I’ll be telling will relate mostly to a switch to Computer Science, but some of it might be applicable to other fields as well.
  3. You are a student following a bachelors degree(maybe masters, but it’s geared towards bachelors more) OR just completed one.
  4. Since I’m from Sri Lanka It’ll mostly apply to students from Sri Lanka, or a country with a similar university system. From where I’m from the university year starts from January and ends in December. However in the west usually the academic calender starts in August(Fall).
  5. Since I will be specifically covering a switch to Computer Science, I’m assuming you have a double major with CS in it or you’ve taken some courses in CS and really like it.

Case 1 : You’re a Freshman (1st year) or a Sophomore (2nd year)

If you are a Sophomore or a Freshman my biggest advice is to focus on grades. There is a debate about the influence GPA has on your application. Because most PHD candidates would agree that grades alone wouldn’t be enough. Now heres the catch, GPA has a disproportional impact on your application. Say you have an amazing GPA(4.0/4.0), thats great!!! while it wouldn’t ensure you’re success at getting in it certainly is positive. However lets say your GPA is 2.0/4.0 then it definitely would have a negative impact on your application.

GPA isn’t really a measure of your intelligence(well to a certain extent it is), but its more an indication of your dedication and capacity to plan and work. PHDs aren’t achieved in a couple of months, it usually takes years. So they definitely check for an applicants ability to persevere. Your cumulative GPA is a summation of 4 years, and the fact that you have been able to maintain it shows you have focus and thats essential for a PHD.

In a nutshell if you are a freshman or Sophomore focus on your grades. You don’t need to worry about what area you want to apply for or the universities you’d want to attend for grad school. Because a lot of things change, I remember back when I was in 1st year I wanted to specialize in chemistry and look where I am now. :)

Case 2: You’re a Junior(3rd year) or a Senior(4th year)

Alright, now if you are a junior(3rd year) or Senior(4th year) then you are either following some major or have an area you like. The workload you probably have now far exceeds what you were used to during the first two years in university. So prioritizing tasks would be an intelligent way to go about it. This all depends on these factors,

  1. Your GPA. Ask yourself the question “is my GPA good?”, what do I mean by good. Imagine a worse case scenario, where you perform extremely poorly during some examination, then what is the capacity of your GPA to buffer the new results such that your class(I am assuming you have some class, if not you should really focus on your grades) is still maintained.
  2. You have some idea of what you like, but you definitely know what you don't like. This is the building block of deciding whether a switch to some other field is necessary or not. Most of the time its really hard to find what we like, but more often than not a simple process of elimination can get us very close. In my case I remember my sub-fields I didn’t like in physics(like astronomy) kept on increasing and where as I remember being drawn to all the Computer Science courses I took.
  3. When will you apply for grad school?. This all depends on you, either you can apply during 4th year or wait until you have a complete transcript.

Depending on the above factors there could be a couple of scenarios,

“My GPA isn’t good

Alright, now if this is the case then I strongly recommend to focus on grades. Because It’s just my opinion it will be too big of a risk to prioritize on the application process provided that your grades could sink anytime. Besides you might even not want to apply for grad school later on, in such a case having a class in your bachelors degree would definitely help(in someway) in landing a job.

Also just think about it, Imagine you’re a professor going through applications for potential students. You see two applications(application A & B) with partially complete degrees(so both these students have applied without a full transcript), meaning that maybe the final semester results aren’t in it. student A has a GPA above 3.5 and student B has one above 3.0, whose application would be more convincing(on grades alone)? you(as a professor :O) would need to sort of have an idea about how well these applicants might perform in their last semester simply based on their current transcripts. So of course student A makes a stronger case, since his current performance is good it’s plausible that he will perform well in his final semester.(whether it actually happens is a different story ;))

Obviously it can be counter argued that other factors like actual research experience, GRE scores and recommendation far out-weight grades. Which is true to a certain extent, but all I’m saying is know when to take calculated risks. If you already have publications with high GRE scores and 100% positive of getting amazing recommendation letters then grades might not factor in. However, at the end of the day the decision to prioritize is on you.

“I want to switch to Computer Science”

Do note, that some of what I say here might even apply for applicants who don’t intend to switch, But it’ll be up to you to filter it out :)

So you want to switch to CS, great !!! now that you have already decided lets start prepping for it. As you might have probably heard Computer Science is an extremely competitive field so acceptance rates are pretty low, and since you will be from some other field native CS students would definitely have an edge. But, with a bit of planning its manageable. The table below summarizes the key factors in building a strong application and on specifically bridging the gap.

1. GPA
As I’ve mentioned multiple times make sure your GPA is good . In my case I applied from pending results, and the fact I had a decently good GPA really helped alot.
2. Research Experience
It will be great if you can build some research experience, but more specifically try to get published. Now the idea here is not to do ground breaking work, but rather to build some experience in research. So the publications themselves don’t need to be of really high standard(not that I’m saying to do inferior work). The point is, your application looks better when you can show prior experience in research, and with a publication(or publications) it would certainly look better. When it comes to undergraduate research projects, simply due to the time constraint it’s simply impossible to get started fast. What I used to do was to have a fixed schedule to meet with my supervisor every week, and have specific time-slots allocated to do research work irrespective of course work. So, every week I worked on the project and had something to show my supervisor, and I found out that it’s ok to tell that nothing worked out, because most of the time things don’t work out in research. However, the fact I was working on it incrementally paid off in the long run. By the time I graduated, I actually had around two publications which greatly helped in my application.
3. Take additional Computer Science Courses
Now this is something I didn’t do, but should have done. Back then I didn’t think it was important, but later found out that it was one big flaw in my application. One of the first things that gets reviewed in an application is whether that student has taken sufficient course in that subject. Even though I had a taken a substantial amount of Computer Science courses it didn’t meet the same standard compared with a native CS applicant. For example, if 90 lecture hours were needed for Algorithms , I might have take only 60 of it. So if you are seriously considering a switch to CS, do keep in mind to take additional CS courses so that you cover the basic requirements. It might be the case that you can’t follow those courses officially, in such a case talk to that professor in charge of that course, and arrange for you to just read it without taking the exams. This shows you are proactive, and something you can build on in your Statement of Purpose(SOP).
4.Have a killer SOP & recommendation letters
This is something you can easily find advice on google so I won’t go into detail here. Try the website gradcafe, it should have a large number of useful insight on this. Specifically, for a case when you will be switching fields, do tell that to the people who will be writing recommendation letters for you. In my case the professors who wrote me recommendation letters were very helpful and gave really valuable advice.
5.Build your programming skills
Make sure you know a couple of programming languages really well. In my case I had prior experience in Java, C++ & Python but wasn’t really good at them. So I took some free on-line courses to build my programming skills. I followed free courses on Java, Python and on how to use github from udacity. Provided, you are already good at programming and want to polish your skills then try codingBat, which has coding puzzles for both Python and Java or codingGame which is a vast collection of game like puzzles for a variety of languages. And these are somethings I’m glad I did, because right now the only reason I’m able to follow through with the work is because I started preparing from back then. So if you are serious about CS, and you are not natively from CS then I do suggest building a sufficient programming experience and learn how to use git if you don’t know already. If not the workload will simply overwhelm you once you do get into grad school. Because lets face it, once you do get in, It wouldn’t matter if you majored in CS or Geography.
5.GRE & the English exam
Again, advice on acing the standardize tests are abundantly on-line. So, google is your best friend. Do check on gradcafe because it has recent applicant information for grad schools for various fields for the previous years in addition to information on their acceptance and their standardize exam scores. So if there are some universities you like, searching for them in gradcafe would give a decent idea about the expected GRE scores for a specific university or program.

With all this said, I think I’ll end my pretty long post here. If you have any specific questions on getting ready to apply for grad school, please do email me or send a message through my facebook page. I’d be happy to help any way I can.

So until next time,

Next: Proving correctness of Algorithms
Prev: Simulation of Hard Disks : Part 2