最近看了几集斯坦福大学的《编程方法学》公开课,感谢斯坦福,感谢网易,感谢人人字幕组。
个人感觉这个课程比较适合编程入门,但是我看了之后也觉得挺有收获。
在上一课的最后和这一节课之中,见到了 Karel 机器人,这个应该是斯坦福为了编程教学专门开发的一个 Java
教学程序,非常适合用来入门教学。
我没有找到 Karel 机器人单独下载的页面,但是在课程主页上,有包括 Karel 机器人在内的 Stanford Eclipse 下载,还有使用说明。
如果使用 Google 搜索的话可以发现更多的关于 Karel 机器人的内容,不过大部分是英文的,主要适用于 Java 的教学。如果早发现这个的话,也许我会喜欢上 Java。
我还发现了 .Net 平台下的 Karel Robot。
不知道还有多少人听说过 Visual J#,比较神奇的是在 Visual J#(Visual Studio 2005) 中有一个 Jblmp.exe 命令,可以将 Java 的 .jar 文件,编译成 .Net 平台下的 DLL 文件。后来可能因为授权的问题,没有再出后续的版本(Visual J# 则销声匿迹了)。
在课程中,Mehran Sahami(课程讲师)提了一个问题:
What is the downfall of the modern college student?
揣度良久,后来给出的答案是:SNOOZE!
如果一定要翻译成中文的话,我觉得应该是“拖延症”。早上起床的闹钟,交作业前夜的通宵,考期之前的刻苦……
“算法 Algorithm——其实就是菜谱 recipe”,已经不是一位老师这么说了。不过我做饭的时候,基本上不看菜谱啊,就好像写程序的时候不顾及算法一样。
The program is something that is valid syntactically according to the rules of the language.
其实我觉得语言之间本质上的差别不大,只要了解语法规则的差异,很快就能从一种语言转换到另一种语言。编程本身也没有什么太神奇的地方。
Write programs for people to read, not just for computers to read.
The important thing to realize in programming is programing is not just about writing a program that the computer understands. Programming is about writing programs that people understand.
程序是写给别人看的,这个我倒是明白,不过也是最近几年才明白过来的。