Làm thế nào để tôi bắt đầu trong CS lý thuyết?


35

Tôi là sinh viên năm nhất học ngành khoa học máy tính và tôi đã biết rằng tôi muốn vào học viện với trọng tâm là khoa học lý thuyết. Tôi đã đọc một số bài viết được tham khảo trong câu hỏi nàycâu hỏi này đã thuyết phục tôi hơn nữa.

Tôi nên làm gì bây giờ , với tư cách là một sinh viên chưa tốt nghiệp, để tham gia vào lĩnh vực này? Tôi có thể làm gì để chuẩn bị cho nghiên cứu trong lĩnh vực này?


7
Điều này thực sự không đủ ý nghĩa để đăng dưới dạng câu trả lời, nhưng hãy xem xét chọn một bản sao "Giới thiệu về Lý thuyết tính toán" của Michael Sips. Ngay cả khi bạn không có thời gian để tự học với cuốn sách đó, thì đó là một tài liệu tham khảo tuyệt vời nếu có bất cứ điều gì bạn cần tìm kiếm mà không được giải thích rõ ràng trên Wikipedia.
Philip White

2
Tôi không biết làm thế nào các thủ tục hoạt động, nhưng tôi muốn xem đây là wiki cộng đồng.
chazisop

3
gắn cờ câu hỏi cho sự chú ý của người điều hành và chúng tôi sẽ giải quyết nó.
Suresh Venkat

2
@ Người tốt: OP không thể đặt câu hỏi CW, chỉ người điều hành mới có thể.
Kaveh

2
@ Người tốt: như Kaveh đề cập, người đăng ban đầu không thể tạo bài đăng CW nữa (và không ai có thể chỉnh sửa đặc quyền). Chỉ có mod có thể làm điều này. không có ý định xúc phạm
Suresh Venkat

Câu trả lời:


29

Hãy để tôi cung cấp một câu trả lời từ phía bên kia. Tôi đã có một vài nhà nghiên cứu sinh viên đại học làm việc với tôi. Kinh nghiệm đã bị xáo trộn: với một số người, tôi đã xuất bản các bài báo và đang tiến hành công việc, và với những người khác, chúng tôi không bao giờ thực sự bắt đầu với bất kỳ loại khởi đầu nào.

Thật tuyệt khi bạn biết bạn muốn làm gì. Là một sinh viên, đây là những gì bạn nên tập trung vào:

  • Xây dựng các "cơ bắp" toán học sẽ giúp bạn khi bạn bắt đầu làm việc với các vấn đề một cách nghiêm túc
  • Khám phá các khía cạnh khác nhau của CS lý thuyết để hiểu về khu vực và tìm ra loại vấn đề / lĩnh vực nào bạn thấy thú vị
  • (tùy thuộc vào khu vực) thực hiện một số câu đố, có thể giải một số bài tập và tìm ra câu hỏi nghiên cứu.

Tìm một giáo sư để hướng dẫn bạn, và ĐƯA VÀO THỜI GIAN! Điều khó khăn nhất bạn sẽ phải đối mặt là tạo ra thời gian mở để suy nghĩ về các vấn đề giữa các bài tập, bài tập và bài kiểm tra. Nhưng bạn cần dành thời gian cho việc học tập và nghiên cứu độc lập nếu không sẽ rất khó để thực hiện bất kỳ loại tiến bộ nào. Cách bạn làm điều này tùy thuộc vào bạn: có thể bạn có thể tìm một giáo sư để gặp bạn mỗi tuần một lần và đặt mục tiêu trung gian cho bạn, hoặc có thể bạn có thể đặt mục tiêu dài hạn (làm việc thông qua các bài tập X từ văn bản) và làm việc đều đặn cái đó.


4
Câu trả lời tốt đẹp! "Bạn cần dự trữ khối thời gian cho nghiên cứu độc lập của mình": điều này khiến tôi nhớ về trải nghiệm của chính mình. Tôi từng là một sinh viên toán lười biếng, sau đó, trong thạc sĩ tôi đã phát hiện ra một vấn đề TCS hay (tập trung vào chức năng hải ly bận rộn). Tôi bắt đầu làm việc vào thời gian rảnh của mình trên đó với sự hướng dẫn của một trong những giáo sư của tôi. Tôi chưa bao giờ tìm thấy điều gì thú vị về vấn đề này, nhưng 12 năm sau, tôi đã viết hơn 15 bài báo với anh ấy (nhưng anh ấy không bao giờ là cố vấn phd / master của tôi, chỉ là một cố vấn "bên ngoài").
Sylvain Peyronnet

1
Câu trả lời của Suresh thật tuyệt! Đối với OP: Xây dựng "cơ bắp" toán học có nghĩa là làm quen với ngôn ngữ và công cụ toán học (tổ hợp, lý thuyết đồ thị, phân tích, v.v.) và cũng được sử dụng để chứng minh các định lý! (Và đây là phần thực sự thú vị! :-)
Jay

19

Tôi hiện đang là nghiên cứu sinh và không phải là giáo sư, vì vậy đề xuất của tôi xuất phát từ kinh nghiệm cá nhân (có giới hạn) của tôi khi còn là nghiên cứu sinh.

Khi tôi còn là sinh viên đại học, tôi luôn làm trợ lý nghiên cứu vào mùa hè với các giáo sư khác nhau trong khoa. Cá nhân tôi tin rằng cách duy nhất để biết liệu TCS có thực sự phù hợp với bạn hay không là làm việc trên các vấn đề cụ thể và xem những gì bạn có thể tận hưởng nhất. Tôi đã mất khá nhiều thời gian để tìm một prof và một chủ đề mà tôi thích. Ngoài ra còn có khía cạnh "xã hội" trong nghiên cứu và các giáo sư khác nhau có thói quen làm việc và giám sát khác nhau, và do đó những công việc nghiên cứu mùa hè này sẽ cho bạn ý tưởng tốt hơn về chất lượng mà bạn muốn nhất từ ​​người giám sát trong tương lai.

Có nhiều lĩnh vực thú vị trong Khoa học máy tính và TCS chỉ là một trong số đó. Vì vậy, tốt nhất là luôn giữ cho các tùy chọn của bạn mở và nói chuyện với các giáo sư khác nhau. Điều rất quan trọng là chuyên môn hóa khi bạn làm Tiến sĩ, nhưng với tư cách là một sinh viên chưa tốt nghiệp, tôi nghĩ lời khuyên của Mark Braverman là vô cùng phù hợp:

"Hãy cố gắng học càng nhiều càng tốt. [...] Sau này khó khăn hơn!"

[Mark đã cố gắng ghi danh vào nhiều khóa học (vượt quá giới hạn) và khám phá các lĩnh vực khác nhau của Toán học và Khoa học Máy tính khi anh ấy chưa tốt nghiệp.] Cố gắng tham dự các bài giảng và hội thảo về các chủ đề khác nhau trong khoa của bạn. Khi bạn ở độ tuổi cao hơn, bạn cũng nên xin phép kiểm toán các khóa học sau đại học liên quan đến sở thích của bạn.

Ngoài ra, tùy thuộc vào việc bạn học chuyên ngành Toán hay CS, bạn cũng phải lập kế hoạch cho các khóa học bạn nên tham gia để chuẩn bị cho bạn một nền tảng cơ bản vững chắc. Nếu bạn là một sinh viên toán học, thì bạn nên tham gia nhiều khóa học CS hơn về thuật toán và độ phức tạp, điều này mang đến cho bạn một tư duy "thuật toán" hơn. Nếu bạn là sinh viên CS hoặc Kỹ sư, thì bạn nên học một số môn Toán cơ bản trong:

  • Kết hợp
  • Xác suất và Thống kê
  • Đại số tuyến tính nâng cao
  • Đại số trừu tượng
  • Phân tích

Đúng là bạn không bao giờ có thể học đủ Toán, và bạn nên học cách tiếp thu Toán / phương pháp / kỹ thuật mới nhanh bất cứ khi nào cần. Nhưng một nền tảng vững chắc chắc chắn sẽ giúp bạn bắt đầu dễ dàng hơn với TCS.

Tôi chúc bạn may mắn và thành công!


6
+1: câu trả lời hay. Tôi sẽ nói thêm rằng việc tham gia / kiểm toán các khóa học phi lý thuyết hoặc phi CS cũng là một điều tốt, nó mở ra tâm trí cho các vấn đề có thể xảy ra, bạn không bao giờ biết câu hỏi lý thuyết hay xuất hiện ở đâu, vì vậy hãy chú ý mở . :)
Kaveh

Bạn có muốn giới thiệu "Đại số tuyến tính nâng cao" của Steve Roman để tự học sau đại học không?
Jacob

2
@Jacob: Cuốn sách của Roman chắc chắn được nhiều người khuyên dùng. Nó thực sự tiên tiến và bao gồm các chủ đề hay như mô-đun, lồi, hình học affine, sản phẩm tenor, v.v ... Nhưng điểm mấu chốt là bạn nên luôn luôn chọn một cái gì đó phù hợp với sở thích và nền tảng của bạn! Vì vậy, quét qua một loạt sách trong thư viện trước khi quyết định luôn là một ý tưởng tốt (ít nhất là đối với tôi).
Đại Lê

11

Là sinh viên năm nhất, đặt cược tốt nhất của bạn là bày tỏ sự quan tâm này đến các giáo sư của bạn trong bộ phận CS, người có thể giúp bạn (cung cấp điều này giúp một phần lớn công việc của họ!). Hầu hết trong số họ, tôi mong đợi, sẽ rất vui mừng được giúp đỡ một sinh viên quan tâm đến những điều tương tự như họ. Ít nhất, họ có thể cho bạn lời khuyên tốt về những lớp học tại trường của bạn và lời khuyên được tùy chỉnh cho tình huống của bạn.


10

Rất nhiều người khác dường như đang đưa ra nhiều lời khuyên tốt. Để thêm vào sự khôn ngoan, hãy để tôi nói điều này: Không có gì gọi là biết quá nhiều toán học (trừ khi bạn quyết định bạn muốn làm toán học thuần túy thay thế). Nghiêm túc, biết phân tích của bạn, tổ hợp, đại số, có thể một số lý thuyết đại diện, đầu alg, vv. Nó làm cho việc đọc rộng rãi trên các lĩnh vực của lý thuyết CS dễ dàng hơn nhiều :)


2
lời khuyên tuyệt vời. Tôi nói điều này với tất cả những sinh viên chưa tốt nghiệp đến nói chuyện với tôi.
Suresh Venkat

7

Bạn đã thực hiện một bước đầu tiên tuyệt vời! Tôi sẽ nói chuyện thứ hai về việc nói chuyện với một giáo sư trong khoa của bạn. Nếu bạn quan tâm đến lý thuyết, hãy tìm bất cứ ai đang giảng dạy các khóa học lý thuyết và nói chuyện với họ. Họ có thể có một số vấn đề không yêu cầu quá nhiều nền tảng để bắt đầu. Theo kinh nghiệm cá nhân của tôi, có nhiều vấn đề hơn trong lý thuyết đồ thị và tổ hợp có thể tiếp cận nhiều hơn lý thuyết, nhưng vẫn xây dựng các kỹ năng nghiên cứu tương tự. Đừng sợ bộ phận toán học của bạn!

Nó cũng có thể giúp bắt đầu tham gia vào cộng đồng, đặc biệt là bằng cách hỏi và trả lời các câu hỏi ở đây. Nó sẽ giúp để tên người dùng của bạn là tên riêng của bạn để chúng tôi biết bạn là ai.


6

Tôi là một sinh viên gần như tốt nghiệp. Vì vậy, câu trả lời cho câu hỏi của bạn cũng thú vị đối với tôi, nhưng có lẽ kinh nghiệm cá nhân nhỏ bé của tôi có thể giúp ích.

Dưới đây là danh sách của tôi (theo thứ tự ngẫu nhiên) các đề xuất bạn có thể làm:

  • Trước hết hãy đọc càng nhiều giấy tờ / sách / ghi chú bài giảng mà bạn có thể tìm thấy. Nhưng nó cũng quan trọng để áp dụng kiến ​​thức của bạn vào các bài tập và sau đó để mở các vấn đề! Một số gia sư của tôi luôn nói: Không chỉ cơ bắp của bạn cần được đào tạo liên tục :)
  • Đọc / hỏi / trả lời các câu hỏi trên trang web này (hoặc một số trang SE liên quan khác) là một cách tốt để tìm hiểu cách làm việc với các chủ đề nghiên cứu trong TCS hoặc toán học.
  • Tôi cố gắng đọc rất nhiều blog TCS từ nhà nghiên cứu nổi tiếng. Các chủ đề bao gồm cả kết quả hiện tại và lịch sử.

Bạn có bất kỳ liên kết đến các blog?
SH7890

2

Tôi nghĩ điều quan trọng nhất là khám phá càng nhiều càng tốt để tìm hiểu những khía cạnh nào của TCS thực sự làm bạn phấn khích. Trong quá trình khám phá này, bạn có thể thấy rằng các vấn đề khiến bạn tò mò nhất là các giao điểm của TCS với các lĩnh vực khác (ví dụ: kinh tế học) hoặc các ứng dụng của TCS (ví dụ: mạng máy tính) hoặc các chủ đề TCS cũng là một phần của các lĩnh vực khác trong CS như lý thuyết học tập tính toán hoặc thống kê. Heck, thậm chí có khả năng bạn có thể thay đổi chuyên ngành của mình sang toán học hoặc vật lý hoặc một cái gì đó liên quan nếu sở thích của bạn đưa bạn đi theo hướng đó.

Quan điểm của tôi là khi là sinh viên năm nhất, bạn thực sự có cơ hội khám phá rộng rãi với ít áp lực hơn so với khi còn là sinh viên hay giáo sư tốt nghiệp. Và để không hoảng hốt nếu bạn không kết thúc trong các chủ đề TCS "nghi ngờ thông thường".

Tất nhiên sẽ rất lý tưởng nếu bạn "đi sâu" vào một số lĩnh vực, học các kỹ thuật vững chắc và công bố kết quả tuyệt vời.

Và nếu bạn cuối cùng trở thành một chuyên gia trong một lĩnh vực mới nóng bỏng trước khi nó trở thành xu hướng chính có lẽ sẽ rất tốt cho sự nghiệp của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.