Haohai study abroad suggestion: Among the top 20 universities in CS, different schools have different emphases. For example, CS of Stanford is very strong in theory, database, programming, hardware, AI and other fields. But if you want to learn systems, it is not necessarily a wise choice for you to go to their school. The University of California at Berkeley should be your best choice. UIUC is the traditional giant cow of EECS. Although the school has experienced a trough, it is now under the control of the more dynamic Mesozoic era and has a bright future. Their computer hardware is particularly strong, and the research and development of computer systems is highly respected, but if you want to learn AI, UMAmherst will be more suitable for you. Massachusetts institute of technology, also known as the giant cow of CS, has made great achievements in data stream computers and AI; The CS of CMU Carnegie Mellon University is not a department, but a college, and its scale is far beyond the reach of ordinary universities. CMU has a strong faculty, and many departments have made their own contributions in this field and won many Turing Awards. Although they recruit few graduate students in many directions, for example, the enrollment situation of their information network college is still relatively optimistic.
When you choose a school to apply for, the first consideration is not the ranking of the school, but more to know whether their major is consistent with your field of interest, because there is no way to bring you what you want without a matching school, so your return on investment (capital or time cost) is much smaller.
Most of Haohai's instructors in CS direction graduated from the above-mentioned schools and worked in first-tier companies such as Oracle Bone Inscriptions, Google, Amazon and Apple. I believe their guidance can give you great help. Welcome to continue communication ~