Is Studying a PhD in Computer Science a Crazy Idea? Pros and Cons

Scribbio

Are you considering a PhD (Doctor of Philosophy) in Computer Science but feel pretty unsure whether it's the right thing to do?

Gather round cos I've recently been weighing up this decision myself!

I don't mind getting stuck into books and studying, I also love the University experience.

So, it's got to be a rewarding experience! And should help further my career.

The answer turned out a bit more nuanced than that!

I know that as I've spent hours trawling the web for opinions, experiences and advice on sites like Quora and Reddit. This article is a summary of that work, listing every pro and con I could find.

1. What are the Pros of studying a PhD?

There are a few career paths facilitated by studying a PhD

  • Academic research
  • Commercial research (think having a role Google's DeepMind)
  • Teaching at the college/university level. [3]

I haven't listed software development as a PhD is definitely not required to become a coder.

A bachelor's degree in Computer Science or Software Engineering is the requirement for most companies. Either of those degrees will give you the foundation necessary to understand programming at a deeper level and prepare you for a career in industry.

A PhD is mainly about research and opens up a host of advance and research-oriented opportunities. [2] The primary requirement to earn a PhD is that you must create new knowledge about your subject. . [5] [4] Even as a Professor, research may still feature high in your tasks.

There are, however, an increasing number of PhD jobs required in computer science such as research scientist for many of the top tech companies, where you would cover many of the same duties as during your PhD but on their commercial behalf. [3]

data/admin/2021/2/google_ad.jpg

Even if you pursue a role as a coder, having a research focused background as a developer can help set you apart and bring new strengths and perspectives to a development team.

A PhD encourages you to take a more holistic approach to project solving. [3]

I like this quote I found from a developer:

"_Having said that and having been working in (effectively) an industry developer job for the past five years, what I've found is that my training has prepared me very well to ask questions at a higher level of abstraction, to recognize and plug gaps in our knowledge, and to think a bit beyond the highly focused build this now mentality that often drives development. _" [3]

During a PhD, you master teaching yourself how to learn, how to write well, and how to methodically solve problems. [3]

Additionally, many come into a Computer Science PhD from different fields and actually learn to code on the course. Switching to Computer Science at PhD level, where you solve problems with practical skills and technology, may ultimately benefit your career as compared to staying on your current trajectory.

1.3 It's Interesting

You've got free access to the latest/classified research, top class library services and access to leading professors in their field.

1.4 Prestige

Pulling off some high level and published research may bring you notoriety, eventually allowing to become recognized as a famous Professors/Researcher such as Canadian computer scientist Yoshua Bengio. [6]

1.5 Networking

You will undoubtedly meet some inspirational and well-connected people from all over the world.

Often those pursuing a PhD are among the most intelligent and educated of society. The crème de la crème of their perspective countries. Networking with them, and building friendships, will open a host of new career and travel opportunities.

1.6 It's Fun

Universities are a highly concentrated spaces of dynamic and energetic people.

You've got societies to pursue your hobbies and interests, parties and the good old university bar. Not to mention, subsidized gyms, food and often, accomodation.

Some of us, myself included, thrive in such as environment.

1.7 Self-fulfilment

A PhD will help feed an intellectual curiosity.

Do you like to inquire, invent, create, explore, read, discuss, ponder, teach and discover the unknown?

Compared with the rigid tasks of a normal job, a PhD let's you pioneer research, sketch out solutions to the unknown and share all of that with the world through academic publishing.

If you're the type of person who doesn't want to merely make things but understand why things work, a PhD might be for you.

2. What are the Cons that come with studying a PhD?

2.1 narrows your focus.

During a PhD you study a subset of Computer Science and although you become an expert in that area, you may lose touch with the broader understanding of the field.

For example, being super knowledgeable about, say, Convolutional Neural Networks (CNN) while knowing little to nothing about Recurrent Neural Networks (RNNs) or even more basic ML models (e.g. Logistic Regression) will reduce your overall employability to a very specific number of jobs. [1]

Unless you attain a scholarship, there is a hidden cost to PhDs that's notwithstanding the fees.

Those with a bachelor's or master's degree pursuing an industry role will be able to earn well, save and invest for the future.

PhDs are, therefore, incredibly expensive because your stipend is low compared to industry salaries and you are losing out of several years of salary reasonably early in your working life.

If you take into account compound interest, these few years will be worth the most when you retire. If you get average 8% return on investment, every $100k now earnt is $1M when you are 60. [7]

You can probably get a higher salary after getting a PhD, but chances are, if you continued working for 4-5 years, you would be getting similar salary as well.

You need to consider whether the non-monetary rewards of a PhD are worth that hidden cost.

The 5 or more years of your life exchanged for a PhD are, for most people, among your most productive, fruitful, healthy, and responsibility-free years of life.

Some people prefer to use that time climbing the career ladder, renovating a home, spending time with relatives or starting a business.

Attaining a PhD is a grind where constant and long-term deadlines are a stress that hangs over you.

2.4 Supervisor

During your PhD, you will generally be monitored by a supervisor.

Something I've seen come up a lot is that many students experience a bad relationship with their supervisor or feel that they're being steered in a direction contrary to their interests.

Studying a PhD doesn't equate to free reign. Be prepared to compromise and answer to a someone else, much in the same way in the real world.

2.5 Isn't Needed For Majority of Industry Roles

As rightly discussed in the pros, certain research career opportunities arise when studying a PhD.

However, for the majority of software roles, everything you can do with a PhD you can also do with a BSc or MSc. You might even be considered over-qualified for some jobs.

PhD students are also more likely perform worse on technical interviews than non-PhDs as they're often out of practice with coding (being so focused on research). Or, if they do code, it's in a more obscure language. [7]

With or without a PhD, you have to answer the same questions when interviewing in the industry: what can you do, what have you done, what skills and qualities make you the best candidate and the best fit?

Top tech companies judge you based on your interview performance, not your resume.

You may aspire to a faculty role, working as a professor, however, industry roles are often more numerous, more generously compensated, and provide a better work-life balance.

Research roles may also require you to move yourself and your family to wherever tenure beckons.

This point is contested but in some specialties of Computer Science, the research in industrial settings is arguably more relevant and more interesting, think of the research that Google and Facebook conduct in their own R&D departments.

2.6 A PhD is Antiquated

The concept of a PhD precedes the online education revolution of recent times, driven by technology and the limitless amount of information and tools available to us.

Nowadays, you can get PhD equivalent knowledge and skills in many fields just by learning on your own without costly time, energy, and career sacrifices using online courses (Code Academy, Coursera, edX, MIT OpenCourseWare , Udemy, etc.) [1]

Additionally, you are not limited in any way to keep up with trends, connect with leaders in the field, go to conferences, and immerse yourself in the field. Many industry practitioners indeed do.

2.7 It's hard

Doing a PhD will be completely different to your day job.

You probably find the technical side of your job pretty easy most of the time but your PhD should genuinely challenge you (if it doesn't, you've chosen too easy a project).

But there is also the psychological aspect of a 5+ year project that will sometimes feel like it's going nowhere. Although your supervisor will guide you, they won't give you the answers on a plate. It can be lonely. [1]

If you do not have the skills to learn on your own, nor motivation, curiosity, and discipline to manage your learning process, you're going to find it incredibly difficult and without a guarantee you'll actually graduate.

3. How to decide whether to pursue a PhD?

With all this taken into account, how do you come to a conclusion?

The most important question to start with is: "Can you do what you want to do without a PhD?"

Note, that you can't skip this question by saying, "Well, I don't know what I want to do." In that case, you need to figure it out before returning to the PhD question.

Also consider that for any given goal, getting a PhD will almost always be the "hardest way" to accomplish it. But for a select few number of goals, getting a PhD is also the only way to accomplish it, and therefore by definition also the easiest way.

For example, see yourself a 'professor and best-selling in a top academic institution' - then a PhD and the experience of one could be for you.

There are also two additional considerations _

Do you have a family to take care of, and can you do so just as well while working on a PhD? If you are currently raising a family, paying a mortgage on a home, and trying to send your kids to the best schools, then I would think long and hard before starting a PhD. A PhD is likely to substantially decrease both your time and money, two resources you need a lot of when you have a family.

If you don't currently have a family, mortgage, car, etc. doing a PhD may push certain life goals quite a bit further down the road.

Where are you planning to get your PhD from, and who will be your advisor? The institution you choose to do your PhD matters a lot more than where you did your undergrad. You really need to find a department that has the right reputation for your research interests.

My advice is, in order of priority:

  • Do what you enjoy and will make you happy
  • Do what will help you achieve your long-term goals
  • Recognize that "success" means different things to different people
  • Do not follow a path to satisfy someone else's aspirations
  • Ensure it's the right time and that you can afford it

Basically, it's this - Pursue a PhD because you really, really want to explore and push the boundaries and you think it that will directly benefit your long term aims.

But, walk into it with the realization that it is very hard to get a job in academia (there are many more PhD grads than there are openings) and you may wind up back in the industry - the same place you would have been before, but years earlier.

Remember! You do not NEED a PhD. So it's OK to apply, see who admits you, and then decide if you really want to go or not. You should not decide to do a PhD, apply and then simply go to the best place that accepts you without proper consideration of all the points in this article. That's a recipe for misery! [1]

[1] https://quora.com/Am-I-crazy-to-leave-a-six-figure-salary-to-get-a-PhD-in-computer-science

[2] https://web.cs.dartmouth.edu/undergraduate/graduate-school-advice

[3] https://www.quora.com/Why-would-anyone-get-a-PhD-in-computer-science

[4] https://www.quora.com/Why-did-you-do-your-PhD-in-Computer-Science

[5] https://www.quora.com/Is-it-worth-it-to-get-a-PhD-in-computer-science-I-dont-want-to-become-a-teacher-at-a-university-I-want-to-get-a-job

About the Author

JoeDiTrolio

Hello there, my name is Joe aka "JD" aka "Scribbio", and you've landed on my side hobby! I enjoy writing articles that help individuals launch new careers in tech.

When I am not blogging, I work as a Software Engineering Bootcamp Educator and consultant specialising in the .NET framework and web technologies.

I coded CreativelyCode from scratch and am working hard to make it the best resource possible for our users. You can learn more about this site on the About page .

If you'd like to submit your own article or have any questions at all, please contact me on LinkedIn.

Department of Computer Science

  • Graduate Degree Programs

Ph.D. in Computer Science

phd in computer science reddit

  Recommended for students planning to conduct research in Computer Science

Program Mission Statement

The doctoral program in Computer Science offers to students the opportunity to engage, along with the department’s faculty, in world-level research across a wide range of areas in computing and applications of computing in other fields. The overarching objective of our research is to generate intellectual contributions and outcomes that will translate into tangible products and services, ultimately enhancing the lives of millions of people.

Prospective Ph.D. Students

  • Why should you do a PhD in CS at NJIT?
  • Admission Requirements
  • Financial Aid
  • Research Areas

Current Ph.D. Students

Program Overview and Degree Requirements

For more info, email us: [email protected]

  • Research & Faculty
  • Offices & Services
  • Information for:
  • Faculty & Staff
  • News & Events
  • Contact & Visit
  • About the Department
  • Message from the Chair
  • Computer Science Major (BS/BA)
  • Computer Science Minor
  • Data Science and Engineering Minor
  • Combined BS (or BA)/MS Degree Program
  • Intro Courses
  • Special Programs & Opportunities
  • Student Groups & Organizations
  • Undergraduate Programs
  • Undergraduate Research
  • Senior Thesis
  • Peer Mentors
  • Curriculum & Requirements
  • MS in Computer Science
  • PhD in Computer Science
  • Admissions FAQ
  • Financial Aid
  • Graduate Programs
  • Courses Collapse Courses Submenu
  • Research Overview
  • Research Areas
  • Systems and Networking
  • Security and Privacy
  • Programming Languages
  • Artificial Intelligence
  • Human-Computer Interaction
  • Vision and Graphics
  • Groups & Labs
  • Affiliated Centers & Institutes
  • Industry Partnerships
  • Adobe Research Partnership
  • Center for Advancing Safety of Machine Intelligence
  • Submit a Tech Report
  • Tech Reports
  • Tenure-Track Faculty
  • Faculty of Instruction
  • Affiliated Faculty
  • Adjunct Faculty
  • Postdoctoral Fellows
  • PhD Students
  • Outgoing PhDs and Postdocs
  • Visiting Scholars
  • News Archive
  • Weekly Bulletin
  • Monthly Student Newsletter
  • All Public Events
  • Seminars, Workshops, & Talks
  • Distinguished Lecture Series
  • CS Colloquium Series
  • CS + X Events
  • Tech Talk Series
  • Honors & Awards
  • External Faculty Awards
  • University Awards
  • Department Awards
  • Student Resources
  • Undergraduate Student Resources
  • MS Student Resources
  • PhD Student Resources
  • Student Organization Resources
  • Faculty Resources
  • Postdoc Resources
  • Staff Resources
  • Purchasing, Procurement and Vendor Payment
  • Expense Reimbursements
  • Department Operations and Facilities
  • Initiatives
  • Student Groups
  • CS Faculty Diversity Committee
  • Broadening Participation in Computing (BPC) Plan
  • Northwestern Engineering

PhD candidates choose and complete a program of study that corresponds with their intended field of inquiry.

Academics   /   Graduate PhD in Computer Science

The doctor of philosophy in computer science program at Northwestern University primarily prepares students to become expert independent researchers. PhD students conduct original transformational research in extant and emerging computer science topics. Students work alongside top researchers to advance the core CS fields from Theory to AI and Systems and Networking . In addition, PhD students have the opportunity to collaborate with CS+X faculty who are jointly appointed between CS and disciplines including business, law, economics, journalism, and medicine.

Joining a Track

Doctor of philosophy in computer science students follow the course requirements, qualifying exam structure, and thesis process specific to one of five tracks :

  • Artificial Intelligence and Machine Learning
  • Computer Engineering

Within each track, students explore many areas of interest, including programming languages , security and privacy and human-computer interaction .

Learn more about computer science research areas

Curriculum and Requirements

The focus of the CS PhD program is learning how to do research by doing research, and students are expected to spend at least 50% of their time on research. Students complete ten graduate curriculum requirements (including COMP_SCI 496: Introduction to Graduate Studies in Computer Science ), and additional course selection is tailored based on individual experience, research track, and interests. Students must also successfully complete a qualifying exam to be admitted to candidacy.

CS PhD Manual Apply now

Request More Information

Download a PDF program guide about your program of interest and get in contact with our graduate admissions staff.

Request info about the PhD degree

Opportunities for PhD Students

Cognitive science certificate.

Computer science PhD students may earn a specialization in cognitive science by taking six cognitive science courses. In addition to broadening a student’s area of study and improving their resume, students attend cognitive science events and lectures, they can receive conference travel support, and they are exposed to cross-disciplinary exchanges.

The Crown Family Graduate Internship Program

PhD candidates may elect to participate in the Crown Family Graduate Internship Program. This opportunity allows the doctoral candidate to gain practical experience in industry or in national research laboratories in areas closely related to their research.

Management for Scientists and Engineers Certificate Program

The certificate program — jointly offered by The Graduate School and Kellogg School of Management — provides post-candidacy doctoral students with a basic understanding of strategy, finance, risk and uncertainty, marketing, accounting and leadership. Students are introduced to business concepts and specific frameworks for effective management relevant to both for-profit and nonprofit sectors.

Career Paths

Recent graduates of the computer science PhD program are pursuing careers in industry & research labs, academia, and startups.

  • Georgia Institute of Technology
  • Illinois Institute of Technology
  • Northeastern
  • University of Pittsburgh
  • University of Rochester
  • University of Washington
  • Naval Research Laboratory
  • Northwestern University

Industry & Research Labs

  • Adobe Research
  • Narrative Science
  • Oak Ridge National Laboratory

More in this section

  • Engineering Home
  • CS Department

Related Links

  • The Graduate School
  • Graduate Funding
  • International Office
  • Graduate Housing
  • Meet Our Faculty

Contact Info

Admissions Questions

Help for Current PhD Students

Director of Graduate Studies for PhD Program

Brian Suchy

What Students Are Saying

"One great benefit of Northwestern is the collaborative effort of the CS department that enabled me to work on projects involving multiple faculty, each with their own diverse set of expertise.

Northwestern maintains a great balance: you will work on leading research at a top-tier institution, and you won't get lost in the mix."

— Brian Suchy, PhD Candidate, Computer Systems

Yiding Feng

What Alumni Are Saying

"In the early stage of my PhD program, I took several courses from the Department of Economics and the Kellogg School of Management and, later, I started collaborating with researchers in those areas. The experience taught me how to have an open mind to embrace and work with people with different backgrounds."

— Yiding Feng (PhD '21), postdoctoral researcher, Microsoft Research Lab – New England

Read an alumni profile of Yiding Feng

Maxwell Crouse

"My work at IBM Research involves bringing together symbolic and deep learning techniques to solve problems in interpretable, effective ways, which means I must draw upon the research I did at Northwestern quite frequently."

— Maxwell Crouse (PhD '21), AI Research Scientist, IBM Research

Read an alumni profile of Maxwell Crouse

Vaidehi Srinivas

The theory group here is very warm and close-knit. Starting a PhD is daunting, and it is comforting to have a community I can lean on.

— Vaidehi Srinivas, PhD Candidate, CS Theory

CS PhD Course Guidelines

The following program guidelines (a.k.a model pogram) serve as a starting point for a discussion with the faculty about areas of interest.   This description of the Computer Science PhD course guidelines augments the school-wide  PhD course requirements .   Students should make themselves familiar with both.

Course Guidelines for Ph.D. Students in Computer Science

We expect students to obtain broad knowledge of computer science by taking graduate level courses in a variety of sub-areas in computer science, such as systems, networking, databases, algorithms, complexity, hardware, human-computer interaction, graphics, or programming languages.

Within our school, CS courses are roughly organized according to sub-area by their middle digit, so we expect students to take courses in a minimum of three distinct sub-areas, one of which should be theory (denoted by the middle digit of 2, or CS 231). Theory is specifically required as we expect all students to obtain some background in the mathematical foundations that underlie computer science. The intention is not only to give breadth to students, but to ensure cross-fertilization across different sub-disciplines in Computer Science.

Just as we expect all students obtaining a Ph.D. to have experience with the theoretical foundations of computer science, we expect all students to have some knowledge of how to build large software or hardware systems , on the order of thousands of lines of code, or the equivalent complexity in hardware. That experience may be evidenced by coursework or by a project submitted to the CHD for examination. In almost all cases a course numbered CS 26x or CS 24x will satisfy the requirement (exceptions will be noted in the course description on my.harvard). Students may also petition to use CS 161 for this requirement.   For projects in other courses, research projects, or projects done in internships the student is expected to write a note explaining the project, include a link to any relevant artifacts or outcomes, describe the student's individual contribution, and where appropriate obtain a note from their advisor, their class instructor, or their supervisors confirming their contributions.  The project must include learning about systems concepts, and not just writing many lines of code.   Students hoping to invoke the non-CS24x/26x/161 option must consult with  Prof. Mickens ,  Prof, Kung,  or  Prof. Idreos  well in advance of submitting their Program Plan to the CHD.  

Computer science is an applied science, with connections to many fields. Learning about and connecting computer science to other fields is a key part of an advanced education in computer science. These connections may introduce relevant background, or they may provide an outlet for developing new applications.

For example, mathematics courses may be appropriate for someone working in theory, linguistics courses may be appropriate for someone working in computational linguistics, economics courses may be appropriate for those working in algorithmic economics, electrical engineering courses may be appropriate for those working in circuit design, and design courses may be appropriate for someone working in user interfaces.

Requirements

The Graduate School of Arts & Sciences (GSAS) requires all Ph.D. students to complete 16 half-courses (“courses”, i.e., for 4 units of credit) to complete their degree. Of those 16 courses, a Ph.D. in Computer Science requires 10 letter-graded courses. (The remaining 6 courses are often 300-level research courses or other undergraduate or graduate coursework beyond the 10 required courses.)

The requirements for the 10 letter-graded courses are as follows:

  • Of the 7 technical courses, at least 3 must be 200-level Computer Science courses, with 3 different middle digits (from the set 2,3,4,5,6,7,8), and with one of these three courses either having a middle digit of 2 or being CS 231 (i.e., a “theory” course).   Note that CS courses with a middle digit of 0 are valid technical courses, but do not contribute to the breadth requirement.
  • At least 5 of the 8 disciplinary courses must be SEAS or SEAS-equivalent 200-level courses. A “SEAS equivalent” course is a course taught by a SEAS faculty member in another FAS department. 
  • For any MIT course taken, the student must provide justification why the MIT course is necessary (i.e. SEAS does not offer the topic, the SEAS course has not been offered in recent years, etc.). MIT courses do not count as part of the 5 200-level SEAS/SEAS-equivalent courses. 
  • 2 of the 10 courses must constitute an external minor (referred to as "breadth" courses in the SEAS “ Policies of the Committee on Higher Degrees [CHD] ”) in an area outside of computer science. These courses should be clearly related; generally, this will mean the two courses are in the same discipline, although this is not mandatory. These courses must be distinct from the 8 disciplinary courses referenced above.
  • Students must demonstrate practical competence by building a large software or hardware system during the course of their graduate studies. This requirement will generally be met through a class project, but it can also be met through work done in the course of a summer internship, or in the course of research.
  • In particular, for Computer Science graduate degrees, Applied Computation courses may be counted as 100-level courses, not 200-level courses.
  • Up to 2 of the 10 courses can be 299r courses, but only 1 of the up to 2 allowed 299r courses can count toward the 8 disciplinary courses. 299r courses do not count toward the 5 200-level SEAS/SEAS-equivalent courses. If two 299r’s are taken, they can be with the same faculty but the topics must be sufficiently different.
  • A maximum of 3 graduate-level transfer classes are allowed to count towards the 10 course requirement.
  • All CS Ph.D. program plans must adhere to the SEAS-wide Ph.D. requirements, which are stated in the SEAS Policies of the Committee on Higher Degrees (CHD) . These SEAS-wide requirements are included in the items listed above, though students are encouraged to read the CHD document if there are questions, as the CHD document provides further explanation/detail on several of the items above.
  • All program plans must be approved by the CHD. Exceptions to any of these requirements require a detailed written explanation of the reasoning for the exception from the student and the student’s research advisor. Exceptions can only be approved by the CHD, and generally exceptions will only be given for unusual circumstances specific to the student’s research program.

Requirement Notes

  • Courses below the 100-level are not suitable for graduate credit.
  • For students who were required to take it, CS 2091/2092 (formerly CS 290a/b or 290hfa/hfb may be included as one of the 10 courses but it does not count toward the 200-level CS or SEAS/SEAS-equivalent course requirements nor toward the SM en route to the PhD.

Your program plan  must always comply  with both our school's General Requirements, in addition to complying with the specific requirements for Computer Science. All program plans must be approved by the Committee on Higher Degrees [CHD]. Exceptions to the requirements can only be approved by the CHD, and generally will only be given for unusual circumstances specific to the student’s research program

In Computer Science

  • First-Year Exploration
  • Concentration Information
  • Secondary Field
  • Senior Thesis
  • AB/SM Information
  • Student Organizations
  • How to Apply
  • PhD Timeline
  • PhD Course Requirements
  • Qualifying Exam
  • Committee Meetings (Review Days)
  • Committee on Higher Degrees
  • Research Interest Comparison
  • Collaborations
  • Cross-Harvard Engagement
  • Lecture Series
  • Clubs & Organizations
  • Centers & Initiatives
  • Alumni Stories

Strong/Weak Reasons to do a PhD in Computer Science

Raymond Cheng

These are the things I wish I had known before deciding to go to grad school. Obviously take these with a grain of salt, as they just represent one man's opinion.

Strong reasons to do a PhD ​

I define a strong reason as sufficient reason on its own to do the PhD. You only need one of these:

1. 🔥 You want to work on something you can only do in academia ​

When I started my PhD, interesting job opportunities in crypto companies were much more limited than they are now. Today, there are countless companies working on end-to-end encryption, homomorphic encryption, secure hardware, and many other breakthrough technologies. My friend said something similar about the robotics industry before Willow Garage and Google X's autonomous vehicle program.

At that time, the best place to work on these emerging technologies was in academia, where the ground-work was still being laid out. For these specific fields, I'm not sure if that's the case anymore, but I am sure there are other fields for which this property still holds true. If you have a passion for such a field, I say go for it!

2. 🔥 You love the research process ​

The research process is a very particular game of writing papers, and your career will depend on your ability to publish to premier venues. Every publication venue has their own (sometimes opaque) criteria that they use to judge whether a paper is sufficiently novel to include in their journal or proceedings. If you haven't already, read lots and lots of papers from your favorite venue. There are conferences for every field of computer science . Do you find these papers absolutely enthralling and captivating? If not, you should probably stop here.

If yes, find a professor working in that space and volunteer your time. Don't limit yourself to just coding (that is only a tiny part of the research process). Find a way to get involved in the writing and editing process. Be there to wipe up the tears when the paper gets rejected. Stick around for the many paper iterations to resubmit to the next conference. Try writing a novel paper yourself. Does it fill you with joy when some experts half-way around the world consider your work good enough? If so — a PhD might be for you. If this process fills you with loathing, you might want to reconsider spending the next 5+ years of your life on it.

Note : I did not talk about novelty or freedom. There are countless ways to build novel software that doesn't exist yet (e.g. in industry or open source communities), or get more freedom to pursue new ideas (e.g in startups). The research process is a very particular process.

3. 🔥 You want a shot at eventually becoming a professor ​

This is an obvious one, in the sense that for most schools, a PhD is a hard requirement. If you love to teach and want to do it at the college level, this is the way to do it. However, faculty positions are an incredibly scarce resource. Just think about how many faculty exist in your department and how often that changes (compared to the students). It is significantly harder to land a faculty position. If you do manage to land one of these positions, be prepared to potentially relocated to a location you never expected, or at a lower tiered school than you hoped for.

Weak reasons to do a PhD ​

I don't mean that they're bad reasons per se. Rather, each individual reason on their own is generally not enough to keep you going through the difficult journey.

1. ❄️ You want to earn more money ​

There is a high opportunity cost to doing a PhD. For top-performers who plan to go into industry, you can often expect to make less after a PhD, than if you had gone straight into industry after undergrad. In other words, it will likely take you much less time with the same amount of work ethic to get the promotions you would need to be at the level you'd be interviewing for at the end of your PhD. For example if you decide to go to Google, you'd probably start at L3 after undergrad vs L5 after your PhD. Plus, the skills you learn during your PhD are often not the ones that will make you more valuable as an engineer in company. Of course, there might be some exceptions to this based on your expertise level and field of expertise.

2. ❄️ You need time to figure out what you want to do with your life ​

PhDs require a lot of time and you will be doing no less work than at an engineering job (often times more). Yes, you will be exposed to new fields through classes, but I'd recommend folks to take more classes in their undergrad or masters programs. When you become a PhD student, you'll likely be expected to start working on papers on day 1. There is a chance you may find out that you want to do a PhD during the PhD, but you can also figure this out elsewhere (like I did during my first job after undergrad).

3. ❄️ You want those 3 letters after your name ​

No one is going to care that you have a PhD. It is not going to be a determining factor in any job interview, except for professors (see above). Especially in computer science and engineering, your skills, ideas, and reputation will be your best assets. You can gain those in or out of a PhD.

4. ❄️ Someone (e.g. parents/teacher) told you to do it ​

Your parents aren't going to write your papers for you. Your professor or your peers aren't going to write your papers either. The open secret is that the first author of most multi-authored papers wrote 95% of the paper and a PhD takes a lot of effort and focus. The motivation needs to be intrinsic. Doing this for someone else will probably not motivate you enough to go through the grind when things get tough.

5. ❄️ You're a masochist ​

When someone tells you how hard something is and how most people fail, does that draw you to the challenge? My group used to joke that the best PhD students are the ones that after being told they shouldn't do one, continue to do it anyway. Marc Andreesen has said the same thing about startup founders. They say these things to elicit that feeling of, "do you think you're good enough for this?" Don't fall for that trap! It is in their best interest that more students/founders try and fail by casting a false dichotomy of success vs failure. For any individual person, not going to grad school may be way better for your career and falling for this narrative is a terrible reason to commit years of your life.

6. ❄️ You want to learn new technical topics ​

In your PhD, you will spend a lot of your time reading papers. You'll read some in group settings with other colleagues interested in the same subjects, but you'll also read a lot on your own. I love that PhDs give you the time to read and engage in deep discussions about a topic with other like-minded folks. The PhD did teach me how to pick a brand new subject, learn enough to become an expert at it, and discover new insights.

However, I list it as a weak reason in itself because I think of this as a life-long mindset that can and should be developed regardless of where you are. As a thought experiment, if I wanted to do a career change and start working in computational biology, would I do another PhD? Of course not! I would read papers, find good mentors and colleagues in the field, and start doing work in the space.

If you ask me if I regret going to grad school, I'll always answer no and share reasons why the experience was valuable to me. Without the ability to A/B test my life, I also won't be able to definitively tell you that my life could have been better or worse. However as a recovering masochist that went to graduate school because I thought it was about "academic freedom", I really underestimated just how difficult the journey would be, its impact on my mental health, and the wide prevalence of depression ( 1 , 2 , 3 , 4 ). I hope these tips might help you recognize what your motivations are so you can make better decisions for yourself.

If you agree or disagree with any of these, please leave your comments below! I'd love to hear how others would think about this decision. Join the conversation on:

  • Hacker News

Thanks to Ian Vo, Calvin Ardi, Dan Butler, Brandon Holt, Dimitrios Gklezakos, Rahul Banerjee for their feedback!

  • 1. 🔥 You want to work on something you can only do in academia
  • 2. 🔥 You love the research process
  • 3. 🔥 You want a shot at eventually becoming a professor
  • 1. ❄️ You want to earn more money
  • 2. ❄️ You need time to figure out what you want to do with your life
  • 3. ❄️ You want those 3 letters after your name
  • 4. ❄️ Someone (e.g. parents/teacher) told you to do it
  • 5. ❄️ You're a masochist
  • 6. ❄️ You want to learn new technical topics

IMAGES

  1. online phd computer science reddit

    phd in computer science reddit

  2. online phd computer science reddit

    phd in computer science reddit

  3. How To Phd In Computer Science

    phd in computer science reddit

  4. How to Get a PhD in Computer Science, and My Dissertation

    phd in computer science reddit

  5. online phd computer science reddit

    phd in computer science reddit

  6. Seven Reasons to Do a PhD in Computer Science

    phd in computer science reddit

VIDEO

  1. BPSC Computer Science Teacher

  2. BPSC Computer Science Teacher

  3. BPSC Computer Science Teacher

  4. Database Management Systems Practice Set

  5. BPSC Computer Science Teacher

  6. BPSC Computer Science Teacher

COMMENTS

  1. Is a PhD in computer science worth it? : r/cscareerquestions

    A PhD is also valuable if you want to lead R&D at a company or government lab. You'll end up with less integrated earnings over your career, but if research is your bag, you'll likely have more career satisfaction over your life with a PhD. Reply reply. LonelyAndroid11942.

  2. computer science

    15. In theory, yes, it is possible. In practice it depends on many things. Let me try to list a bunch of the variables that have affect the time required. The minimum requirements that you are likely to find for a doctorate are (a) pass a set of qualifying exams and (b) write a dissertation acceptable to the faculty.

  3. Is Studying a PhD in Computer Science a Crazy Idea? Pros and Cons

    2.5 Isn't Needed For Majority of Industry Roles. As rightly discussed in the pros, certain research career opportunities arise when studying a PhD. However, for the majority of software roles, everything you can do with a PhD you can also do with a BSc or MSc. You might even be considered over-qualified for some jobs.

  4. What is a Ph.D. good for in the software industry?

    6. Grad school is worth it when you plan to have a career in the academic field. For typical employment in software development, grad school is not a requirement at all. It would benefit you in the sense that you'd likely get more interviews thanks to a Ph.D. looking pretty impressive on your resume.

  5. FAQ: Is a PhD in Computer Science Worth It? (With Jobs)

    A Ph.D. in computer science is a doctoral degree that students can earn after completing advanced research on a complex computer science topic, such as artificial intelligence (AI) or network architecture. A doctorate is the highest academic degree students can earn in the computer science field. These programs typically teach students how to ...

  6. How to get into the Stanford Computer Science PhD program

    7. Like many others, after watching the Coursera Machine Learning course by Andrew Ng, I got the bright idea to pursue a PhD in CS at Stanford. Everyone, including their grandmas, have read Elon ...

  7. phd

    1. The distinction between a "programming task" or a "programming question" is meaningless in this context. Certainly, asking an interviewee to implement a typical string manipulation algorithm is within the realm of reasonable topics one can expect to encounter in an interview. The real question the OP should be asking is "how can I improve my ...

  8. PhD Programs in Computer Science

    Students wishing to pursue a Ph.D. in computer science generally take 4-5 years to complete the degree, which usually requires 72-90 credits. Learners can devote their studies to general computer science or choose a specialty area, such as one of the following: Computer science. Algorithms, combinatorics, and optimization.

  9. Computer Science PhD

    A computer science PhD offers the chance to become a leading researcher in a highly important field with potential for transformational research. Especially consider it if you want to enter computer science academia or do high-level research in industry and expect to be among the top 30% of PhD candidates.

  10. Top Computer Science Ph.D. Programs

    To earn a Ph.D. in computer science, each student needs a bachelor's degree and around 75 graduate credits in a computer science program, including about 20 dissertation credits. Most programs require prerequisites in computer science. A graduate with a computer science master's or graduate certificate can apply their graduate credits toward ...

  11. PDF Applying to Ph.D. Programs in Computer Science

    1 Introduction. This document is intended for people applying to Ph.D. programs in computer science or related areas. The document is informal in nature and is meant to express only the opinions of the author. The author is a professor of computer science at CMU, and has been involved in the Ph.D. admissions process at CMU, U.C. Berkeley, and MIT.

  12. Ph.D. in Computer Science

    The doctoral program in Computer Science offers to students the opportunity to engage, along with the department's faculty, in world-level research across a wide range of areas in computing and applications of computing in other fields. The overarching objective of our research is to generate intellectual contributions and outcomes that will ...

  13. PhD in Computer Science

    The doctor of philosophy in computer science program at Northwestern University primarily prepares students to become expert independent researchers. PhD students conduct original transformational research in extant and emerging computer science topics. Students work alongside top researchers to advance the core CS fields from Theory to AI and ...

  14. CS PhD Course Guidelines

    8 of the 10 courses must be disciplinary, and at least 7 of those must be technical courses drawn from the Harvard John A. Paulson School of Engineering and Applied Sciences, FAS or MIT. Of the 7 technical courses, at least 3 must be 200-level Computer Science courses, with 3 different middle digits (from the set 2,3,4,5,6,7,8), and with one of ...

  15. Where To Earn A Ph.D. In Computer Science Online In 2024

    The high cost of a graduate degree can make postsecondary education seem out of reach for many. Total tuition for the programs on this list costs $57,000 at Capital Tech and around $59,000 at NU ...

  16. Strong/Weak Reasons to do a PhD in Computer Science

    3. 🔥 You want a shot at eventually becoming a professor. This is an obvious one, in the sense that for most schools, a PhD is a hard requirement. If you love to teach and want to do it at the college level, this is the way to do it. However, faculty positions are an incredibly scarce resource. Just think about how many faculty exist in your ...