Columbia MSCS
Đây là bài viết để minh oan cho danh tiếng của Columbia MSCS. Trước đây, nhiều người đọc những bài chê bai Columbia CS đã cũ trên các diễn đàn rồi bắt đầu nghĩ chương trình này không ra gì (trong khi người viết bài gốc chỉ hai tháng sau đã vào Google).
Bài viết gồm: 1. Đánh giá tìm việc 2. Các track 3. Đánh giá môn học 4. Thông tin xét tuyển 5. Chi phí — nhằm mô tả chương trình Columbia MSCS một cách tương đối khách quan.
Đánh giá tìm việc
Những ai nghiêm túc tìm việc và nộp đơn mỗi ngày thì gần như đều có việc. Phần lớn offer đến từ các công ty lớn (vì chỉ công ty lớn mới bảo lãnh visa cho sinh viên quốc tế).
Những người quanh tôi nhận được offer thực tập từ Adobe, TikTok, Meta, Amazon, NVIDIA và Databricks. Columbia có vẻ giúp khá tốt trong việc qua vòng lọc hồ sơ. Các bạn tôi quen đã được mời virtual onsite ở Citadel, Jane Street, D.E. Shaw, Bloomberg, Meta, Stripe, TikTok, WeRide, Five Rings... Nếu thời đại học bạn từng thực tập ở công ty tương đối lớn (TikTok/Alibaba/Google/Microsoft), có lẽ bạn sẽ có phỏng vấn ở ít nhất khoảng 1/3 số công ty quant + big tech tôi vừa kể. Tất cả những người tôi biết ở Columbia MSCS được mời Amazon virtual onsite đều đã qua phỏng vấn. Ngoài ra, Columbia được hệ thống nội bộ của Bloomberg xếp vào nhóm trường có ROI cao, nên họ đến tận nơi tuyển người (năm 2022 họ tuyển cả một đợt lớn). Bộ phận HR của Meta phụ trách Columbia MSCS cũng rất tận tâm (recruiter Meta phụ trách Columbia MSCS cũng phụ trách các trường hạng S). Họ trả lời email rất nhanh; ngay ngày đầu mở tuyển 24 Fall, họ đã liên hệ một loạt sinh viên Columbia MSCS để phỏng vấn new grad và thực tập — thật sự rất ấn tượng.
Tuy nhiên, không khí tìm việc ở Columbia CS đúng là không mạnh lắm. Hội chợ việc làm chỉ có Bloomberg, hội chợ việc làm dành cho bậc đại học thì không cho học viên sau đại học tham gia, và nhìn chung thiếu sự hỗ trợ.
Các track
Columbia CS có hơn mười track. Phổ biến nhất là Software Systems và Machine Learning; tôi chọn track đầu. Track Machine Learning có ít môn bắt buộc hơn và linh hoạt hơn. Track Software Systems bị ràng buộc nhiều hơn, nhưng nội dung môn học gần như đều liên quan đến SDE. Nếu bạn phải cùng lúc rải hồ sơ + cày LeetCode + chuẩn bị phỏng vấn + học trên lớp, khối lượng công việc thật sự không nhỏ.
Có track thesis — chọn track thesis thì chương trình thành hai năm. Bạn cần tự tìm giáo sư sẵn lòng hướng dẫn nghiên cứu. Bạn có thể kéo dài thành hai năm, và nếu suôn sẻ thì có thể chuyển sang PhD.
Đánh giá môn học
Nhiều bài trên diễn đàn nói khối lượng học ở Columbia rất nặng. Cá nhân tôi thấy nói vậy hơi phiến diện — ở Columbia bạn hoàn toàn có thể xếp một thời khóa biểu toàn môn nhẹ. Khối lượng có thể nặng mà cũng có thể nhẹ. Dưới đây là một số môn tôi và bạn bè đã học (ngoài ra, tôi chưa từng gặp chuyện khó đăng ký môn hay waitlist quá dài như những bài viết đó nói. Môn nào tôi muốn học, dù nhẹ hay nặng, tôi đều đăng ký được).
- Operating Systems: môn bắt buộc của track SS. Khối lượng rất nặng. Chỉ nên học khi đã có việc — học một môn mà lượng kiến thức bằng ba môn. Tuy vậy, nắm chắc môn này rất có ích cho phỏng vấn quant dev. Đừng học lớp của Kostis — thầy cứ nói "like like like" suốt buổi, một câu nhét tới sáu chữ "like". Dù có bằng PhD Stanford, bài giảng của thầy rất khó theo — đến sinh viên Mỹ cũng không hiểu thầy nói gì. Bạn có thể học lớp của Jae — nghe nói thầy dạy rất hay. (Một lời bênh vực giáo sư Kostis: thầy Kostis mắc hội chứng Tourette, nên khi nói có tật và đôi khi phải dừng một lúc mới nói ra được. Môn này tập trung vào slide và bài tập, nên bài giảng chỉ mang tính bổ trợ. Thầy Kostis là người rất tốt bụng — thầy tự trả lời nhiều câu hỏi trên Ed và thật lòng quan tâm đến băn khoăn cũng như trải nghiệm học của sinh viên. Theo tôi biết, đề thi của thầy Kostis không khó bằng của thầy Jae. Dù sao thì toàn bộ tài liệu môn học vốn đều xuất phát từ thầy Jae. Thầy Jae có thể coi là "người gác cổng" của track SS.)
- Programming Language Translators: môn bắt buộc của SS. Khối lượng trung bình. Project là viết một trình biên dịch. Đề thi dễ hơn phần lớn các môn trình biên dịch ở Trung Quốc. Có thể học ngay học kỳ đầu.
- Cloud Computing: môn nhẹ. Tốt nhất nên học ở học kỳ đầu. Gần như không có khối lượng gì.
- Introduction to Database: môn nhẹ. Cũng nên học ở học kỳ đầu. Nội dung tương tự môn cơ sở dữ liệu ở các trường đại học Trung Quốc — viết SQL + dạng chuẩn 1/2/3/4. Nếu học kỳ này bạn muốn học thật nhàn để tập trung tìm việc, hãy chọn lớp của Donald. Giữa học kỳ thầy hay bực bội trên Ed, than rằng chẳng ai đến lớp: "Tôi kiểm tra hệ thống thì 300 sinh viên chỉ có 40 người đi học, thời gian online trung bình 30 phút, và chỉ 3 người xem bản ghi hình." Nhưng khối lượng môn này vẫn rất nhẹ. Nếu là giảng viên khác, như giáo sư Wu, bài tập nhiều hơn và khó hơn — tốt hơn nên học khi đã có việc.
- Distributed Systems: giống hệt môn của MIT. Chấm điểm rất rộng rãi. Các project được "mượn" lại (theo nghĩa tốt) + một project do Columbia tự thiết kế. Rất hữu ích cho việc tìm việc SDE. Môn hay.
- Competitive Programming: luyện chuyên sâu LeetCode/Codeforces. Khối lượng rất nặng. Thiên về phỏng vấn hơn cả môn thuật toán.
- Advanced Software Engineering: môn bắt buộc của SS. Khối lượng trung bình. Làm một project full-stack bằng Java và triển khai lên Google Cloud.
- UI Design: môn nhẹ. Học React và làm một project full-stack. Gần đây còn có một ý tưởng rất thú vị — làm một công cụ interview coder.
- Advanced Algorithm: hoàn toàn không liên quan đến cấu trúc dữ liệu và giải thuật ở bậc đại học. Môn này có thể tóm gọn trong một câu: thiết kế một thuật toán ngẫu nhiên đúng khi P > P_r. Có thể đổi tên thành "Ứng dụng của xác suất thống kê trong thuật toán toán học". Đừng học cùng lúc với OS.
- Artificial Intelligence: chủ yếu là nhập môn AI và ML. Không khó nếu đã có nền tảng. Có 5 bài tập lý thuyết và 5 bài tập lập trình, cùng thi giữa kỳ và cuối kỳ. Hơi mất công, nhưng chấm điểm khá ổn. Nên chọn làm môn bắt buộc của track ML.
- Applied Machine Learning: môn nhẹ, khối lượng ít. Có 5 bài tập lập trình, một bài thi giữa kỳ và một project nhóm. Chấm điểm tốt. Nên học.
- Software as a Service: giống Advanced Software Engineering, đây là môn bắt buộc của track SS, nhưng bạn chỉ cần chọn một trong hai. Do giáo sư Junfeng Yang dạy — thầy rất dễ mến. Nội dung môn học là Ruby và Rails. Nửa đầu học kỳ, bài tập tập trung luyện Ruby và Rails; nửa sau xoay quanh báo cáo tiến độ và thuyết trình project nhóm.
Nếu biết chọn, các môn ở Columbia MSCS có thể không hề dễ. Ở mọi môn tôi đã học (gồm UI, SE, NLP, AI...), các giáo sư đều thật sự giảng dạy nội dung — không có ai chỉ đọc slide. Tài liệu môn học cũng rất chi tiết. Không cần lo về chất lượng giảng dạy.
Thông tin xét tuyển
40% là người Trung Quốc, 40% là người Ấn Độ, còn lại là người Mỹ.
Xét tuyển chủ yếu dựa vào điểm GPA. Yêu cầu GPA với sinh viên tốt nghiệp đại học ở Trung Quốc đại lục khá cao, còn ngưỡng cho sinh viên tốt nghiệp đại học ở Mỹ thì thấp hơn. Sinh viên Ấn Độ phần lớn đến từ các cơ sở IIT hoặc VIT, GPA khoảng 9.1-9.2/10. Họ thường có hai năm kinh nghiệm làm việc.
Chi phí
Thông tin chi phí trên diễn đàn cũng không chính xác — không đắt đến vậy. Số tiền phải đóng cho trường khoảng $80K (học phí + các loại phí + bảo hiểm...). Tiền thuê nhà ở Manhattan khoảng $2,000/tháng. Chương trình kéo dài 16 tháng, nên tổng là $80K + $2,000 x 16 + $1,000 x 16 = $128K, xấp xỉ CMU.
Cập nhật 2025.2: gần đây bạn bè tôi cũng có phỏng vấn ở Jump Trading, HRT, NVIDIA, Databricks, Amazon và Datadog. D.E. Shaw cũng sớm kéo vài người từ Columbia vào phỏng vấn full-time. Tóm lại, trường sẽ không kéo chân bạn. Nếu hồ sơ của bạn có kinh nghiệm thực tập ở công ty lớn, bạn có thể có phỏng vấn ở khoảng một nửa số công ty tôi đã kể.
Ngoài ra, sau nửa năm sống ở đây, tôi ngày càng yêu New York City. Thành phố cực kỳ sôi động, khu downtown đầy nhà hàng và chỗ vui chơi. Các vở diễn Broadway gần như ngày nào cũng cháy vé. Ở đây bạn được trải nghiệm một cuộc sống đa dạng hơn. Tôi rất khuyên bạn nghiêm túc cân nhắc đến đây. Suy cho cùng, New York chính là trường đại học tốt nhất.
Cơ hội TA/RA
Lương TA khoảng $24/giờ, giới hạn 10 giờ mỗi tuần, tức khoảng $950/tháng. Yêu cầu để làm TA không quá cao, nhưng các điều kiện sau giúp ích đáng kể: thứ nhất, đạt điểm xuất sắc ở môn đó (A hoặc A+); thứ hai, có kinh nghiệm học tập hoặc làm việc liên quan. Nhiều sinh viên đáp ứng được các điều kiện này, nhưng ai được chọn cuối cùng là do giáo sư quyết định (nên phần nào phụ thuộc vào may mắn). TA môn CS không bắt buộc phải học ngành CS — chủ yếu tùy môn đó hướng tới đối tượng sinh viên rộng đến đâu. Nếu sinh viên ngành khác đạt điểm A ở môn đó, họ vẫn có thể làm TA cho môn ấy.
Về RA, vị trí RA không lương khá dễ tìm, nhưng vị trí có lương thì rất hiếm (gần như không có, dù không loại trừ khả năng gặp một PI đặc biệt dư dả kinh phí). Tôi chưa thấy ai quanh mình nhận được offer RA có lương. Ở Columbia CS, chuyển sang PhD chỉ cần giáo sư đồng ý, nên chỉ cần làm việc ăn ý với giáo sư hướng dẫn thì chuyển sang PhD không thành vấn đề. Tôi thật lòng nghĩ nếu muốn học PhD, bạn nên nghiêm túc cân nhắc Columbia. Nhìn xuất thân của nghiên cứu sinh PhD ở Columbia CS, gần như đều đến từ các trường hàng đầu như Tsinghua/Peking + IIT — đặc biệt sinh viên IIT rất đông.
Kết quả tìm việc và Data Points
25 Summer: ít nhất 12 sinh viên Columbia MSCS nhận offer từ Amazon.
- CS trường 211, hạng 1, huy chương bạc ICPC, vào Databricks
- Chuyển ngành từ kế toán sang CS, vào Adobe
- Cử nhân CS University of Sydney (Úc), thực tập ByteDance, vào AWS New York
- Nữ sinh viên đại học CMU, thực tập Meta 2022, từ thực tập vào Meta
- Cử nhân CS CUHK-Shenzhen, 0 lần thực tập, vào Amazon
- Cử nhân CS trường C9, huy chương vàng ICPC, vào Amazon
- Tốt nghiệp đại học ở Ý, vào Amazon
- FinTech CUHK-Shenzhen, chuyển ngành sang CS, 0 lần thực tập, vào Amazon
- Cử nhân Thống kê National Chengchi University, thực tập Amazon SDE năm 2022, làm full-time ở một công ty nhỏ năm 2023, sau đó vào Amazon SDE full-time.