What are the main differences between a Masters and a PhD in computer science?
Answer by Vijay Chidambaram:
The best answer I've seen to this question is by Prof.on his blog. Like many great answers, it uses pictures (taken from ):
Imagine a circle that contains all of human knowledge:
By the time you finish elementary school, you know a little:
By the time you finish high school, you know a bit more:
With a bachelor's degree, you gain a specialty:
A master's degree deepens that specialty:
Reading research papers takes you to the edge of human knowledge:
Once you're at the boundary, you focus:
You push at the boundary for a few years:
Until one day, the boundary gives way:
And, that dent you've made is called a Ph.D.:
Extending this boundary of human knowledge gives you a number of other skills apart from the knowledge gained (as explained in):
Ability to work independently. The degree is not conferred until the candidate has proved to experts that he or she has produced original work and advanced the state of the field in some way. Though some work may be done in collaboration, the ideas as such must originate with the degree holder.
Critical thought. Extending the state of the art cannot be done without knowing what is wrong with the current state. A PhD candidate learns to critically examine the thoughts of others and pick out the pros and cons.
Perseverance. Getting the degree is a long and arduous journey that tests the determination of the candidate.
Ability to work with poorly defined goals. One of the bigger hurdles of the PhD is that there is no clear cut goal. You know you have to do original research, but no one can exactly say these are the things you need to do every day to do it. Research as such involves going back and forth, exploring blind alleys and so forth.
Effective communication. The candidate must be able to communicate about his or her research effectively, at least on paper. The better candidates will be able to communicate through oral presentations as well.
Though a Master's degree equips one with specialized knowledge, most of the above skills are not learnt during a Masters degree. Do note that you don't need any degree to acquire the above skills on your own.
A masters degree equips you to do high level, complex design and potentially lead software engineering teams.
A PhD degree equips you to do original research and potentially lead R&D teams.