Okay, you wanna PhD? I assume you already decided you want to get a PhD in Computer Science related field and you are currently in a research University doing undergrad or master. This article will not help you decide whether PhD suits your need, you will have to figure out by yourself. I assume your target is top PhD programs in U.S.
Something to consider:
whether a field will no longer be hot after you finish your PhD
giving the current economic situration, whether it is easier to get PhD or find a job
why do you want PhD right now and not years after industry
do you want to be a professor
Hardness: say you are in a top 3 research University in U.S., getting into a top PhD program in top 3 research University is not easier than you getting into your undergad program. In another word, say your current University accept 3% of applicants from all over the world, then it's like 3% of applicants from your current school will get into its PhD program. Machine Learning related research is 1~2 levels harder than regular Computer Science PhD.
You will need following things to get PhD:
Connections
Papers and Projects
GPA
Connections: this means making firends with professors.
A "do well in class" letter doesn't count as a recommendation letter. "Do well in class" letters may even hurt you for top PhD programs.
If you got a nice professor on your side and the professor is in the admission committee for his department, you can get admitted without him/her looking at your resume (This is a real example of my friend, and since being in admission committee is rolling based, it's purely by chance)
Industry connections are good only if your company is a well-known company in the field or your job is a research and development (R&D) job.
Doing TA, in my opinion, wouldn't help that much. To me, it is a waste of time.
Papers and Projects: less important than connections
You shouldn't feel safe unless: you developed a project on Github that many people actually use, or you have 5 research papers and some of them are accepted to top conferences
1st author in a lower tier conference is more useful than a 2nd or 3rd conference in a higher tier conference. But this isn't absolute, depending whether the professor stated your contributions in the rec. letter.
GPA: act only as a filters
as long as your GPA is greater than 3.5, don't put too much effort into it.
don't take too many classes, only take classes that fits into your major requirement
if you truly want to learn knowledge, you should
if you can, take gap semester of be a half-time student while doing research or project
Getting into a lab in a research University is easy. You can do it as a freshman! The earlier the better. Normally people do it in summer. But if you can devote 20 hours a week during school semesters, that's fine too. However, having a good project in a lab is hard. Most people who I know started their 1st research in freshman year and only in their 3rd year settled down to a publishable project. You have to be extremely lucky and skilled to get a good project.
You should do the following:
don't apply though university website, you don't want to get into the pool where you can hardly be found
figure out which professor or lab you want to work with
look at professor's homepage, find out contacting information and procedural
send professor's email with your resume, keep it short. Ask if you can meet in person
in the meeting, professor will ask your:
Or, if professors don't reply your email
see which course the professor is teaching, go to his Office Hour or after class to talk about your interest
sit around his/her office and wait for the professor pass by
Or, if you are afraid
find a PhD who is working on some projects you are interested in under professor's webpage
PhD should be: either 2nd year or 3rd year
PhD should have less or equal to 1 existing undergrad: so that you can get attention
Unless you can successfully pitch a project to a PhD and he/she has the ability to advice you, you will be assigned to a project. Depending on the ability of PhD and how he/she likes you, you may get good project or shitty project. Reason:
if they have a good project that is low-risk and publishable (defined later), PhD will take the project and do it himself
so what's left for you are either
if you think your project's risk is too high or not publishable, run away immediately!
if PhDs don't think you have skill, they will not assign you with publishable project
if you haven't read 20 papers in the field, your idea is guarantted already implemented by someone or does not work in practice or has low impact.
Low Risk: the idea will likely give SOTA result.
Publishable: the idea is novel enough and you can give insights to other researcher (usually with math and equations), not just pure engineering or doing application.
Nobody in Theoretical Computer Science like to have undergrads since theory has long learning curve. Don't do theory and math. However, because of this, if you get a position in theory group, you will likely be directly advised by PI.
If you have 20 hours a week and/or wish to get a industry internship, choose a topic that is "hot" (Machine Learning), otherwise choose a cold project
it's easier to generate new ideas in hot area
you need to finish implement the idea fast, otherwise people will publish before you do (within a semester or two)
The professors will not meet you often, instead, your PhD advisor should arrange meetings with you once a week.
Advisor: you will get direct advised by PI if the group has only about 5~8 people. However, the most you can get from a PI is having 30min to talk to you every week. For a larger group, you will be advised by a PhD or Post-doc student. But do not rely on them. Your job as a research assistant (both paid / unpaid) is to trade your publication for their recommendation letter. That's it. The less you annoy other people, the better. However, do socializing, update your results, and help other people in the group to let PI remember you.
Steps:
While doing all these steps above, if you are in a hot area, subscribe to some Youtuber, newsletters about your research. You should be alerted if someone if doing similar things.
Research code base is very different from software code base:
your code will be messy since you can't predict what feature you will add
don't spend too much time organizing your code
don't strive for best performance
use comments to remind yourself what debugging parameters are set and remember to tweak things back
Once you ran a lot of experiment, you might be more capable of generating good ideas than your PhD advisor. At that time, take their word only as advice. Tweaking someting that you know will not work still have value and will build mental picture about your project, but you should stop implementing something you think will not work after you feel like you have a very good understanding of the field.
Product vs Publication: There is a distinct difference between product and publication. A project has to work and make people happy, but they might not look nice. A publication has to look nice but they might not work. Most (>90%) of accepted paper in top conferences do not work (meaning they are useless in product sense). They are accepted because: (1) 3~4 reader learned something they did't know after reading your paper (2) your picture in your paper look nice (3) your number in your paper look nice (3) your writing and presentation of your paper is strong. Note that many paper do not report confidence range in their numbers and authors might only select experiments that look good. Some would extremely overfit their ML model. This happens a lot in robotics. To make a project into product takes 10x effort than a publication. So don't waste time trying to make a product. Instead, before the project even begin, set the target to produce (1) visualization (2) numbers that you will eventually use in your paper. Don't spend time making your code look good. Nobody cares about your code and you only publish your code months after your paper got accepted. Note that writting fast but shitty code only when you're confident that you know how your code will function correctly.
Website:
csrankings: 但是不要盲目依赖. 很多incoming AP和在工业界有appointment的老师不在上面.
csopenraking: better cs ranking
Website:
Most info from: this article. Data is 2023.
MIT: 录取率 229/4014=5.7%, 入学率69.4%
Stanford: 120/1919=6.3%, 入学率56.7%
UCB: 128/2117=6.0%, 入学率53.1%
UW: ~5.4%
UIUC: 225/1537=17.0%, 入学率39.2% (注: UIUC MCCS fully funded 录取率 4.2%, PhD+MSCS 录取率 9.0%)
Gatech: 171/2034=8.4%, 入学率49.2%
Cornell: 取5年平均录取率为9.0%, 入学率35.3%
Princeton: 推测 7.4%
UT Austin: 推测 11.0%
UMich: 推测 10%
UCSD: 154/1619=9.5%, 入学率35.1%
Harvard: 推测 7.1%
Yale: 85/797=10.7%, 入学率42.4%
UPenn: 82/1031=8.0%, 入学率39.0%
Buff:
国际生(无公民绿卡)需要下调约50%的录取率.
AI方向需要下调57%的录取率.
女生可以翻倍录取率 (未证实, 但普遍存在).
Info:
Top4-level的CS PhD平均录取率为6.0%(国际生且AI方向可换算为<1.5%),平均入学率为59.7%
Top10-level的CS PhD平均录取率为9.7%(国际生且AI方向可换算为<2.4%),平均入学率为40.3% CS PhD的录取率约为工程类PhD平均录取率的60.4%
Future:
Top4-level的CS PhD近5年申请人数增长约16.8%,年均增长约3.4%,未见明显下降趋势,未来预计继续保持增长。
Top10-level的CS PhD近5年申请人数增长约33.8%,年均增长约6.8%,未见明显下降趋势,未来预计继续保持增长。
UW录取率24Fall已经比肩四大,没有四大水平的选手建议慎冲。
Cornell录取率有明显的大小年,近五年5%-13%的录取率都出现过,建议25Fall可以都买一手彩票冲一冲。
Georgia Tech (Gatech) 这几年已被卷成红海,24Fall申请人数已经2000+,录取率则降到了8.4%,25Fall建议慎冲。

Master program ranking: website
欧洲: 陶瓷是必要的, 欧洲的老师更偏爱 MS 的学生,以及会喜欢高 GPA 的学生.
Articles That Mentioned Interview but I haven't look at that portion
https://zhuanlan.zhihu.com/p/542182599?utm_psn=1979948159955392415
https://zhuanlan.zhihu.com/p/673556727?utm_psn=1980099540154602788
Students:
Ruicheng Wang | 王瑞诚 (2024 PKU)
Sinan Wang | 王斯楠 (2025 HKU)
Duowen(Justin) Chen (2021 Columbia, UWash)
Yuchen Sun (PKU)
Mengdi Wang |王梦迪 (PKU, graduating)
Fan Feng | 冯梵 (UNC, graduating)
My big direction: computational design by blending 3D + traditional algo (e.g. simulation, procedural gen) to create artists' tools
Student QA:
view your slide notes
what do prof love/hate
Potential Idea:
If you think fluid is essential:
If fluid is not essential:
Prof QA:
weak points of current group member (don't need to name them)?
budgets per project (research, travel, etc)
what do u want the lab 2b in 5 years
Why all MSCS students are co-advised with Greg Turk? (coincidence?)
Do you prefer independent or non-independent student
What's the life/work/research difference between Dartmouth and Gatech
how much freedom do I have / do you want me to come up with my own idea
TA hours commitments: only one-semester teaching apprenticeship?
I wish to hear your opinions about why the graphics community in general isn't getting much funding as robotics. Is the hype about graphics over? Where do you think the future is? What technology could potentially bring graphics a new life?
how do you give your student feedback
I find myself willing to work as "domain expert" inside institution/oraginization/groups that their main focus isn't my expertise. This environment is particularlly interested in me because I can learn a lot quickly and also learn their perspectives/needs/evaluation metrics on the same thing. How much do you wish me to explore vs want me to extend group is already doing. Or put it another way, how much out of 100 papers I read, what's the distribution?
General QA:
Describe the lab space
group meetings / activities
industry opportunity (how prof view internship)
how the project comes (percentage student's, percentage advisors, other percentage)
any student go without defense? what are they doing rn
[Apply]
Apply to more REACH school increase your change of getting into your top choices. But application fee can range from 50~200 which is expensive. Here is a guide to waive such fee: waiver
Other Online Sources:
https://docs.google.com/spreadsheets/d/1ovuuO66hdVbJ7GyG7gds2D-PFLqrCCSyuccBl6bhOI4/edit?gid=170229371#gid=170229371
https://www.reddit.com/r/ApplyingToCollege/comments/1mimih4/fee_waivers_mega_thread/
https://www.reddit.com/r/ApplyingToCollege/comments/1mey87t/fee_waivers_class_of_2026_list/
They care about your GPA, but not as much (>3.5)
They care about your GPA (>3.75)
Generally you need master to apply European schools. They care about your GPA (>3.75).
最认可欧洲周边熟悉的学校+美帝名校录取ETH PhD的中国人Master学校/研究所背景 瑞士: ETH | UZH | EPFL | Uni Bern | Uni Basel | PSI | EMPA 德国: TUM | RWTH | KIT| TU Berlin | LMU | Max Planck 法国: EP | ENS | 巴黎N大 | 部分 Écoles d'Ingénieur | 部分 École Centrale | CNRS 瑞典: KTH | Chalmers 意大利: Politecnico di Milano 新加坡: NUS | NTU 美国: CMU | GT | UIUC | Columbia | NorthWest | Harvard 英国: IC | Ox | Cam | Edinburgh 中国: THU | PKU | SJTU | FDU | TJU | SEU | SCUT | NJU | CSU (不完全list)
Table of Content