个人看来,这都无法算作是「作业」,因为才第一次上课,老师还没有讲任何课程的内容,这份「作业」不过是为了考察学生的编程基础。作业要求非常简单,无非就是实现几个类,其中有一些继承、多态和重写。以我之前的Python和Ruby的知识,也不过是一两个小时就能写完(好吧,其实如果熟悉语法,我觉得半个小时就够了)。不过由于不熟悉Java的语法和程序架构,所以这几天一直迟迟没有动手,而是在学习Java的基本知识。今天下午终于把那本Building Java Programs匆匆翻完之后,花了几个小时,把作业完成了。不知道这个作业能拿什么分数。
第一份作业虽然效率不高,不过还好能够按时提交。有了Java基础后,11A和21A应该都会轻松不少。而那门Moblie Application Development其实应该也是要用到Java,所以这几天的时间还是花得很值得的。
在学习Java的过程中,语法体会到之前在Coursera上跟的UW的Programming Languages是多么的精彩和游泳。在学习了编程语言所具备的基本功能、性质后,再学习任何语言都不会有惧怕心理,都能够很好地将不同语言的相同特性对应起来——虽然学得很粗浅,但已经觉得非常受用了。如果有机会,以后要重新把这么课再学一次。
这几天碰到不少人问我选课的打算,他们听到我想选31A(Computer Structures and Organization)之后都表示最好不要挑战。这么跟我说的人从老白和他的朋友Emmanuel到其他的学长,可见这么课可能真的不是很适合作为PB第一年来学习。既然如此,那么31A这学期我可能就不会选了,而是选Mobile Application Development。MAD虽然也不会轻松,但至少比较实用,假如能作出个不错的项目出来,还能够在简历上写写,对找明年暑期的实习有帮助。
但我其实对29A还是感到非常可惜。Liuba说这么课会有intensive programming,我想如果能坚持下来,一定能够对自己的编程能力有极大的提升。而且如果这学期不上这么课,那么就要等到明年才能再上这门课。说实在话,基础课我希望自己能够早点上,这样再学习别的课程的时候能够有更好的理解。
不管怎样,先上11A, 21A, 29A这三门基础课外加153A。其实那三门基础课我觉得都不会有太大压力,所以我还是希望自己能把握机会,争取试试31A。