Edited Version
What are the main characteristics and qualities that you would consider if you were going to choose a PhD program in theoretical computer science (or related areas) today (based on your experience) and why would you consider them important?
What are the credible sources that I can get information about those characteristics of PhD programs?
Especially I would like to hear your opinion about the following two issues:
If you had to choose between a program with a global and better brand name and another one with a strong research focus, which one would you choose? why?
Which of the following two is more important in your opinion: availability of specialization one wants vs general teaching/research quality of faculty?
Thanks.