原文链接:Computer Science Courses that Don’t Exist, But Should
原文作者:James Hague
CSCI 2100:忘掉面向对象编程 思考如何创建、使用不属于任何对象的变量。学习“函数(functions)”,它跟方法(methods)很像但是更有用的多。前提是你已经学过一门使用了“抽象基类的课程”。 CSCI 3300:向经典软件学习 讨论并剖析具有划时代意义的软件产品,比如VisiCalc、AppleWorks、Robot Odyssey、Zork、和MacPaint等。学习的重点,在于用户界面,以及由硬件限制激发出的创造力。 CSCI 4020:用低效语言编写高效代码 对性能进行深度分析,用解释型的Python语言来写出能与传统的编译型C++匹敌的代码。而且代码还会更加健壮,写起来也很有意思。 CSCI 2170:用户体验之”命令行工具” 提高用户体验的原则也同样适用于命令行工具的设计,要专注于输出信息的相关性,可读性,最简化。UNIX的“ls”命令就是值得好好学习的一个例子。 PSYC 4410(心理学高年级课程):程序员内心强迫症 能辨别和理解那些无关紧要,但是程序员偏偏会去较真的事情:代码格式、如何分类、类型系统,非要将项目分解成很多个。还包括接触到不熟悉的系统时下意识的批评的细节。
HN精彩评论 - 我能再加一个吗?“网络不像你想的那么简单:分布式系统生存指南”。作为一个在职业生涯中花了很多精力建设高性能网络,也和这个领域里地人公事了
很长时间的一个程序员来说,我对现在从名校毕业的学生在这方面的知识之匮乏感到震惊。很多基本的东西,像是应用的无线传输,系统如何处理数据包,等待对应
用的影响等等,对于一些程序员来说简直一窍不通。现在看来,网络连接的实质问题,确实被严重忽略了。
- 程序员分为两种:一种被训练成能在熟悉的环境中称职地编码;另一种则像是《黑客帝国》中选择了红色药丸的人——他们知道事物的本质。
- 再加一些:
- 在白板上写翻转二叉树
- 用COBOL实现Monads
- 如何正确地纠正网络上的评论
- 上一条中的槽点可能有哪些
- 对Twitter的多项式机器人算法有多糟糕的介绍
- 用Haskell学习函数式编程
- 上一门课的实际用途
- 亲爱的机算计学院:请不要再拿“算法导论”课来愚弄你们的学生了,这门课应该改为“组合算法导论”,因为这才是你们教的东西。你们完全忽视了“数
字算法”,这是许多其他计算机学科分支的基础(计算机物理、计算机化学、计算机生物学等),同时这也是机器学习和数据科学毕业生薄弱之处。或者也可以保留
“算法导论”的名字,但是教50%的算法和数据结构,50%的数字计算方法和科学计算。
- “建立端对端软件解决方案”如何?让这门课贯穿所有软件开发流程(想法-设计-原型-公测-发布-迭代)。我最好的朋友马上毕业了,可他对软件开发一无所知,根本不了解现在的市场需求。
- “Debug”:严肃地讲,这是门完整、系统的课程,而且越早开设越好。这是其他学科/工程不可缺少的技能。
- 计算机科学和软件工程应该分成两门完全不同的学科。
编译:赖信涛,关注Python,喜欢编程和电子游戏。个人博客:http://www.kawabangga.com/ |