每个阶段中那本计算机书籍对你影响最深?

在每个阶段,不同的计算机书籍对我的影响是不一样的。

刚入门阶段时:Data Structure and Algorithms in Python;

在我没有读《Data Structure and Algorithms in Python》这本书之前,我对编程几乎是一无所知。

当我读到这本书时,突然对面向对象有些领悟,明白了问题怎么办和为什么,虽然这本书是主要讲解算法的实现过程。把数据结构中的数列、链表、字典、栈、队列、树、图又加深了一次印象,对查找、排序、递归等算法再次有了新的理解。

成长阶段:Structure and Intepretation of Computer Programs、SICP;The C Programming Language;Domain Modelling Made Functional;

在程序员这个道路上刚起步时,想学一些东西,但是又不知道如何下手。当我读到《Structure and Intepretation of Computer Programs》这本书时,告诉了我怎么使用抽象数据结构、怎么使用抽象函数调用、怎么使用抽象状态和模块、怎么使用抽象元数据等。这本书主要是讲解决问题框架,即如何系统化解决设计问题。

除此之外,这本书还讲解了Lisp Scheme;程序员不接触Lisp,会是成为一种遗憾。

还有《Domain Modelling Made Functional》这本书,让我对函数式编程有了进一步的理解,知道在工程中如何使用函数式编程。

深入阶段:Computer Systems: A Programmer's Perspective、CSAPP;Clean Architecture和重读 SICP和CSAPP。

当做程序员有一段时间后,非常渴望了解系统底层知识和编译运行知识,不在满足于只会调用API或使用别人做好的工具,想去探索这些未知的问题。

当我读到《Computer Systems: A Programmer's Perspective》这本书时,对硬盘、CPU、内存、缓存有了更深入的认识,明白了在硬件上程序是如何工作的,对如何提高程序性能的问题有点眉目了。

《Clean Architecture》这本书最好在有工程项目经验之后在去读,你才能领悟到书中讲解的内容意义,书中讲的内容会与你在工程项目中的感受原则一致,可以对实践进行指导。

我看的这些书都是从硬件到软件,在从软件到算法和架构,它们之间是有一定的关联,就像递归执行过程一样,不同的层次总有相似的原则出现。

比如,算法中讲解的ADT(Abstract Data Type)是一种接口;而在SICP中,接口是另一种数据抽象方式,在硬件和编译器之间,指令集是接口。又比如,算法中数据可能是以不同的方式在内存中存储,如数列和链表,这也是软件和硬件相结合。

总之,读计算机书籍与做数学题类似,读+抄写代码+刷题。

在另外提一嘴,程序员本身是一个挣钱的美好职业,但是很多程序员不知道自己在市场上到底值多少钱。或许,你该了解钱了,了解自己在市场上到底是个什么价值,自己每个月拿的工资到底有多少成本等,这比书中的知识和代码更有趣,也更基础。

钱,是收入;时间,是支出和投资;钱和时间的比例就是RIO(投入产出比),程序员除了用技能和经验进行衡量外,用钱/时间比来衡量会更直观。

比如你学习Go语言,学起来容易,使用也容易,你投入的时间少,收益也高,RIO自然也高;毕竟Go语言偏向后端和工具,工作机会多,钱也多。

但是,你学Rust就不一样了,Rust学习周期长,上手难,投入时间较长,虽然钱多,但RIO不如Go语言高,工作机会也少。

TypeScript/Java/JavaScript则是投入时间少,收益中等;毕竟这几种语言学起来容易,上手也容易,要想拿到高收入,得看个人机遇。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值