在第一个假期我一直在给教授打工,所以到了第二个学期,我感觉自己的能力已经足够应付课程的学习,所以在选课的时候我选择了18613 computer system、17514 Principles of Software Construction - Objects, Design, and Concurrency和18741 computer network这几门内容非常硬核的课程。事实证明这次我对自己实力的判断再次出现了误差,第二学期一开始的时候我选了4门课同时还在帮老师做RA,而这样的工作量已经超出了我的能力范围,最终我不得不drop掉了一门课,尽管这样最后我也只是勉强完成了那个学期的学习。 在这里我推荐同学们选择17514这门课,这门课的内容会用最基础的Java语法讲到后续的build tool、unit test、integration tese、design pattern等知识,在这个基础上还会有高阶git、java GUI等高阶的内容,其内容涵盖很广泛,同时都是很实用的,所以很适合那些转码的同学选择。像我当时在这门课中学到的内容在实习中都运用到了,其对于我们的发展是很有帮助的,同时这门课的工作量并不是很大,学起来比较轻松,大家一定要趁早选这门课。 正是因为我选择了17514这门课,所以我在Amazon实习的时候给mentor留下了很好的印象,并拿到了return offer,于是我心情轻松地开始了最后一个学期的选课。在我选课的时候项目的选课要求也发生了变化,ECE选课的时候CS院、machine learning院和robotics元的600+课程都算作是核心课程了。于是我临时改变了自己的选课策略,在第一次作业已经过了due的情况下,还是选择了10601 Introduction to Machine Learning这门课,后续还选择了17645 Software Engineering for AI-Enabled Systems和14848 Cloud Infrastructure这些课,还有18755 Network in the Real World这门水课。
在这些课中,17645这门课给我的印象很深,因为这门课上来就搞kafka,要求同学们一周的时间就写出一个电影推荐系统,这也让我相当的震惊,这让我觉得教授是不是有些高估了项目中同学的实力。