思维方式方面在思维方式方面,可能差异会比在技能方面更大,列两个我觉得最关键的吧。1. 试错与debug思维这可能CS和其他学科差异最大的一点:在CS里,尤其是软件方向,基本试错的成本为零:不像很多理科专业,推理过程的严谨性不容得马虎;也不像生物化学这类专业,试错可能会导致极其严重的后果。这最明显的感受就是,每当遇到一个有bug的程序,CS和非CS同学处理的方式。非CS的同学一般会从头思考整个的code,不知如何动手。然而CS的同学一般会采取的方式是:1. 猜测可能错误的位置 2. 打印关键变量or注释掉代码重新运行验证自己的猜想。如果不对,回到1。当然,脑中debug是非常重要的一项能力,也是对思维极好的训练。但是后者对于复杂的项目有着更高的效率,可以快速定位不符合预期的地方。2. 偷懒与洁癖优秀的程序员都是"偷懒"和"优美"的。偷懒体现在如果一个事情需要重复做三遍,那么我可能就会去考虑用一些
自动化的script去帮我做。优美体现在对于自己code的抽象性和简洁性的极致追求。这一点最直观的就反应在了代码质量上。很多非CS同学写的code是正确的,而且性能各方面也都不差,但是整个代码看起来一团糟:各种复制粘贴,各种hardcode常量,使得整个代码的可读性和复用性大大下降。当然这些方面也都不是绝对的,这些技能也好,思维方式也罢都是可以通过刻意的训练很快习得的。每一个行业的人多走出自己的舒适区,去学习别的行业中的优点,这样的大融合才会是趋势。发布于 2017-05-28 12:34赞同 44848 条评论分享收藏喜欢收起赛博铁犁人在非洲,刚下三轮。