原文来自yeeyan
每周我们都会收到大量简历,相当一部分来自计算机科学系的毕业生。
我检查了他们的学习内容,尽管听起来迫有趣,却似乎和就业市场无关: 神经网络, 计算机视觉,人工智能,机器人技术,编译工程,机器学习,量子计算,贝叶斯网络,嵌入式系统 … 这些毕业生中有多少会经常使用这类知识? 这些课程可不是骗人的,而是来自英国前5位的计算机科学系(根据一家有名的国内报纸的排名)。
这种不协调(教育和技能)部分是被一个观点误导了: “计算机科学”毕业生不必去搞软件, 所以应该多教点科学而非职业上的方法。可是,我所认识的计算机科学毕业生都没去搞科学,而是去搞软件编程了。有意思的是,我随机抽取了大约10-15所大学的课程,只有2所教软件工程。
还有相当奇怪的是,只有一个课程涉及XML, 还是可选部分。而在当代软件中还有不用XML的吗? 那为什么计算机科学毕业生不能说出何时用SAX何时用DOM呢 ?
那么,哪些内容应当包含在当代计算机科学/软件开发专业的课程中呢? 我粗略地写在了下面( 顺序没有考虑,只是按照意思流来的…):
-
编程基础(变量,数据类型,引用,指针,作用域,错误处理,迭代,核心算法-搜索,排序等)虽然本人不是计算机科班出身,不过自学的时候在这些东东上还是花了不少心思,就是对指针一直以来没机会多多实践,处理编程实例的效率比较低
-
基础数学,基础统计学 本科学的是工程管理,对这两门课的要求与“基础”也挺匹配
-
模式和反模式(真实世界的例子,不只是理论)当前看到模式和反模式的时候,奉为解决实际问题的至宝,可面对真实案例,只有少数模式才会被用到,底层的SDK封装的实在太好了,FLEX,.NET……
-
现实世界中的数据库(正规化和反向规格化, SQL,索引)第一个学的数据库是VF x,与SQL语言初次相识,下来便是ACCESS,因为想用DW做一个简单的网站,之后很长的时间内与MS SQL打交道,期间又认识了ORACLE DB2 SQLITE MYSQL等等,这么多数据库,头有点大~
-
良好的代码架构基础:松耦合等 最好的学习方法就是参考别人的架构,GREAT!
-
面向对象的设计,接口等 多多实践才是王道
-
规划的重要性和工具: Spec’ing,UML等 了解不多,虽然尝试用VISIO画过UML图,但是最终认识到小项目用UML纯粹是自讨没趣
-
架构:C/S,SOA,P2P等 作为WEB程序员,接触最多的自然是B/S,对C/S,SOA,P2P还算有了解吧,毕竟WINFORM,WEB SERVICE,PEER TO PEER还是知道的
-
一两个’大’语言(Java, C#,C/C++)感觉VB比较丑,所以专精了C#,之后又把心思放在了ACTIONSCRIPT 3上,感觉JAVA是C# 和 AS3结合的产物-_! ,C/C++还是会的,不熟练而已
-
一两个’脚本语言或’敏捷’的语言( PHP,Perl, Python,Ruby)PHP,JAVASCRIPT,VBSCRIPT,对JS熟悉,其他两位同志就得花不少时间重新认识一下了
-
XML (DOM/SAX, XSLT/XPath, 等)做WEB的很少没用过XML,不用DOM的;至于SAX,XSLT/XPATH,有所接触
-
经济学,商学,成本项目,商业压力 宏观和微观都没怎么认真学,有时间再看看,其他的也找时间看看吧
-
版权,隐私,数据保护 了解不多
-
项目管理/时间管理 本科学的就是这
-
国际化,本地化,编码, Unicode 没感觉有什么难的,毕竟FLEX
SDK已经给出了现成的解决方案,就是每次都RESOURCE感觉有点麻烦。
-
语法,标点符号,简洁和明确的书写 高中文科学的不错,代码也一直追求完美,无论从格式还是效率(前者实现起来相对简单些)
-
界面设计,易用性,可获取性,人机交互 读过《交互式设计精髓》,大概有个了解,不过一直都忙于码代码,是时候考虑一下这些问题了
-
安全 加密,加密,加密,解密,解密,解密
-
代码阅读
最害怕的是读汇编,其他的只要注释及命名规范就OK
-
常见协议( TCP/IP,HTTP,SMTP,FTP )通常都使用现成的类库来搞定它们
-
测试,调试,性能,重构 这是基本功,程序员必须掌握
-
问题分析 没搞过数学建模,脑子时刻保持清醒,把握问题核心就没什么问题了
-
代码控制,变更管理 工具加一个简便的规范便OK了,不过CHECK IN,CHECK OUT有时比较噩梦,尤其是两个或两个以上的人做同一个模块的时候,WBS是伟大的
-
典型的软件生命周期 基本功,在工作过程中慢慢就理解为什么那么多牛人没事儿非得整个这是为什么了
-
元数据,信息架构等 了解不多 SCHEMA?
-
地理信息系统基础 晓得,但没接触过,最多玩玩GOOGLE MAP
-
触摸输入
对硬件了解不多,仅限于PC的几个主要部件。这个看起来很酷的样子
-
健康和安全(营养?) 老外的书比较变态,谁没事儿拿个秤看自己今天摄入了多少多少维生素!不过对中医养生还是比较看重。还有,有点懒,好久没打太极了,检讨一下!
( Dan Zambonini 作为技术总监服务于Box:一家英国Internet开发和咨询公司. 作为语义web和XML技术的倡导者,他的工作领域包括XML, XSL, RDF, SVG, P3P, OWL, XHTML, CSS, XForms和其它一大堆缩写的技术 )
PS:神经网络, 计算机视觉,人工智能,机器人技术,编译工程,机器学习,量子计算,贝叶斯网络,嵌入式系统,这可是我都想学习的啊,还要加上光学工程

另:这篇文章也值得读一读 Joel Spolsky在耶鲁大学的演讲