首页 > 文章资讯 > 游戏问答
计算机科班出身的优势是什么?
更新时间:2022-04-30 08:45:04 作者:云寺手游
2开元2022棋牌
开元2022棋牌
益智棋牌 | 47.56MB | v3.3.7
神殿娱乐
神殿娱乐
休闲益智 | 47.56MB | v3.3.7
我才是棋牌
我才是棋牌
休闲益智 | 47.56MB | v3.3.7
所谓棋牌
所谓棋牌
休闲益智 | 47.56MB | v3.3.7

早就mark了这个问题,趁着端午有空来答一发。这么多年在学校和公司中,也接触过形形色色,各种背景的同学和老师。我本身当然是一直科班CS,但是本科的启蒙导师算是一个非常"不CS"风格的老师,研究的方向更偏向统计,在这过程中也有幸接触到了很多优秀的数学/统计背景的同学。下面主要从技能和思维方式两方面来讲下CS科班(泛指CS EE相关)和非CS科班(理科专业以及跨度较大的工科专业)同学的差异吧。
技能方面
其实在一些前沿的应用技能方面,CS出身的学生并不会比非CS的学生有太多优势。这些可以快速习得使用的技能,在我看来只是外功,技术革新飞快,在学校里面学到的一门编程语言,一个框架可能到实际工作中就已经过时了。然而在这背后,想要深入进去之后,总是有一些不会变的东西支撑着:例如,CS的课程设计里会有一条从数字逻辑-计算机组成-体系结构-操作系统-汇编-编译器清晰的脉络。虽然我也不可能清晰地记得其中每一个细节,但是其中一些反复被提及的概念以及设计原则可以帮助理解很多最新的技术,例如memory hierarchy,RISC vs. CISC。最近的例子就是火爆的TPU,为何可以比CPU和GPU获得更高的效率?可能会遇到的扩展性问题有哪些?如果只是一个半路出家用用caffe跑跑model的"deep learning researcher"可能就很难理解了。
思维方式方面
在思维方式方面,可能差异会比在技能方面更大,列两个我觉得最关键的吧。
1. 试错与debug思维
这可能CS和其他学科差异最大的一点:在CS里,尤其是软件方向,基本试错的成本为零:不像很多理科专业,推理过程的严谨性不容得马虎;也不像生物化学这类专业,试错可能会导致极其严重的后果。这最明显的感受就是,每当遇到一个有bug的程序,CS和非CS同学处理的方式。非CS的同学一般会从头思考整个的code,不知如何动手。然而CS的同学一般会采取的方式是:1. 猜测可能错误的位置 2. 打印关键变量or注释掉代码重新运行验证自己的猜想。如果不对,回到1。当然,脑中debug是非常重要的一项能力,也是对思维极好的训练。但是后者对于复杂的项目有着更高的效率,可以快速定位不符合预期的地方。
2. 偷懒与洁癖
优秀的程序员都是"偷懒"和"优美"的。偷懒体现在如果一个事情需要重复做三遍,那么我可能就会去考虑用一些自动化的script去帮我做。优美体现在对于自己code的抽象性和简洁性的极致追求。这一点最直观的就反应在了代码质量上。很多非CS同学写的code是正确的,而且性能各方面也都不差,但是整个代码看起来一团糟:各种复制粘贴,各种hardcode常量,使得整个代码的可读性和复用性大大下降。
当然这些方面也都不是绝对的,这些技能也好,思维方式也罢都是可以通过刻意的训练很快习得的。每一个行业的人多走出自己的舒适区,去学习别的行业中的优点,这样的大融合才会是趋势。

猜你喜欢
最新资讯