微信号:sagacity-mac

介绍:MacTalk 开通于2012年末,内容起于 Mac 而不止 Mac,内容覆盖了技术、创业、产品和人文思考.文风有趣,又有一点力量.相关图书《MacTalk·人生元编程》《MacTalk·跨越边界》

编程不练功,中年一场空

2019-04-22 17:12 池建强

 题图:拍摄于巴黎插画


计算机领域最大的特点就是变化快,技术更新换代一日千里,很多人跟不上变化,于是划分了中年分界线 35 岁。这种担心并非没有根据,61% 超过 45 岁的开发人员担心自己的年龄会成为职业发展的障碍,而 Stack Overflow 的一份开发者调查表明,在 2018 年,只有不到 7% 的开发者年龄超过 45 岁。

很多行业的从业者都是越来越吃香,为啥到了计算机就会例外呢?其实没有例外,还是因为基本功不行。早期编程人员鱼龙混杂,门槛并不高,导致很多程序员学了点「技」就可以写很多年程序,对基本的算法、数据结构、操作系统、编译原理、网络协议并没有深入了解。当变化和新技术来临时,就会上倍感吃力,很难一通百通。

为此我们做了很多极客时间的 IT 基础课,帮助大家跨越鸿沟,练功并层层而上,比如超过五万人订阅的数据结构与算法,网络协议课,操作系统,软件工程等的产品,用户反馈都非常好。今天我们上线了一门更为基础的课程「计算机组成原理」,这也是用户呼声极高的一门知识产品,推荐给大家。

计算机组成原理讲的是什么呢?单拎出硬件是一堆废铁,软件更无法独立运行。他们之间需要一座桥梁,而「计算机组成原理」就扮演了这样一个角色,它既隔离了软件和硬件,也提供了让软件「不知硬件」就能直接操作硬件的接口。

也就是说,你只需要对硬件有原理性的理解,就可以信赖硬件的可靠性,安安心心用高级语言来写程序。无论是写操作系统和编译器这样的硬核代码,还是写 Web 应用和手机 App 这样的应用层代码,都可以做到心里有数。

除此之外,组成原理是计算机其他核心课程的一个「导引」。学习组成原理之后,向下,你可以学习数字电路相关的课程,向上,你可以学习编译原理、操作系统这些核心课程。如果想要深入理解,甚至你可以设计一台自己的计算机。

怎么学?理论和实践相结合

第一,作者会把组成原理里面的知识点,和他在应用开发和架构设计中遇到的实际案例,放到一起进行印证,通过代码和案例,让你消化理解。

第二,会尽可能地多举一些我们日常生活里面的例子,让你理解计算机的各个组件是怎么运作的在真实的开发中,我们会遇到什么问题,这些问题产生的根源是什么。让你从知识到应用,最终又回到知识,让学习和实践之间形成一道闭环。

比如说,在硬件上,我们是通过最基本的与、或、非、异或门这些最基础的门电路组合形成了强大的 CPU。而在面向对象和设计模式里,我们也常常是通过定义基本的 Command,然后组合来完成更复杂的功能;再比如说,CPU 里面的冒险和分支预测的策略,就好像在接力赛跑里面后面几棒的选手早点起跑,如果交接棒没有问题,自然占了便宜,但是如果没能交接上,就会吃个大亏。

第三,在知识点和应用之外,作者会多讲一些计算机硬件发展史上的成功和失败,让你明白很多设计的历史渊源,让你更容易记住「为什么」,更容易记住这些知识点比如说,奔腾4的失败,就是受限于超长流水线带来的散热和功耗问题,而移动时代 ARM 的崛起,则是因为 Intel 的芯片的功耗太大,不足以在小小的手机里放下足够支撑一天的电池。

最后,在这三种帮助你理解「为什么」的方法之上,作者会把整个的计算机组成原理通过指令、计算、CPU、存储系统和 IO 串起来。通过一个程序的执行过程进行逐层分解,让你能对整个系统有一个全貌的了解。

希望这个专栏,不仅能够让你学好计算机组成原理的知识,更能够成为引领你进入更多底层知识的大门,让你有动力、有方法、更深入地去进一步学习体系结构、操作系统、编译原理这样的课程,成为真正的「内家高手」。

专栏作者徐文浩,7 岁开始编程,2005 年上海交通大学计算机系毕业后,在 Trilogy Software 写过各种大型企业软件;曾任 MediaV 技术总监,从零开始搭建支撑每天百亿流量的广告算法系统,提升了十倍以上的广告收入和 ROI;2015年加入了拼多多,参与重写拼多多的交易系统。目前创业中,bothub 创始人。

专栏目录如下,非常精彩:

人生如逆旅,我亦是行人。学习不会是一件太轻松的事情,希望在这个专栏里,我们能一起交流,坚持练完这门内功。

上新优惠 68 元,扫码订阅:

点击原文了解详情。

 
MacTalk 更多文章 许式伟:如何避免成为软件搬砖师 有技术背景的人为什么恁厉害? 李海鹏谈 996 揭秘 Google 的大数据黑科技 | 极客时间 赚钱就是赚认知
猜您喜欢 纯银V:为什么对360抱有敬意 修改域名惹的祸 感悟|编程境界提升 请把我留在,在那小“黑”屋里 JSON 的正确用法:Pyhong、MongoDB、Js与Ajax