前天我和学校的一位老师进行了我的第一次 office hour,受益良多。因为我自学 CS 已经一年多了。长期以来,没有人指导和交流,偶然发现了这位老师,就在当天约了时间交流。
我问了很多我有些困惑的问题,老师也很耐心的回答了。我问了一些个人的困惑和学习层面的问题,其中一个大概意思是说,“在自学过程中,我经常会遇到一个困惑:有些库或语言特性,我已经知道怎么使用,但并不理解其背后的实现原理。在时间有限的情况下,您通常如何判断一个知识点应该学习到什么深度?有没有什么标准?比如 std::move(),我知道它与移动语义和智能指针相关,也会在项目中使用,但对右值引用等底层机制仍然理解得不够透彻。CS 的知识体系非常庞大,不可能事事追求完全理解。但如果停留在『会用但不懂』,又总觉得基础不够扎实。对于这种情况,您一般会如何取舍?”
那老师就和我交流了她的看法,大概意思就是「你只需要学到『支撑你完成当前的最高层抽象』就好了。就比如说一个项目,你不知道为什么在高并发的场景下会崩溃,那么在你理解好 OS 的线程上下文和锁的机制就可以解决这个问题。然后对于这个项目来说就可以了,当然你可以学更多,随着技术水平的上升,最高层抽象也会越来越硬核,但是对于这个项目而言足够了。」
这个回答让我很受启发。其实在此之前,我隐约也是这样认为的,但是没有相对权威的话来告诉我,我始终会有不安。确实这个判断方式很实用。当然,我与老师并不只谈论了这些,也交流了很多我在学习上的疑惑和感受,总而言之,这是一次令人难忘的 office hour。
My first office hour
2026/6/14 561 words 3 min read
记录我的第一次 office hour.