计算机书目推荐

以下是个人观点和经验分享,仅供参考。


计算机编程学习主要是计算机原理学习和技术学习,两者相辅相成,缺一不可。


计算机原理学习应当是技术学习的奠基石,技术学习是计算机原理理解和实践的好帮手。

推荐先打好计算机原理基础,新技术层出不穷,通过良好的计算机原理基础的积累,新的技术上手和理解会很快。

# 举个例子:
# 新手学习Go语言的人,对Go语言的管道通信肯定要犯迷糊;但是有过操作系统原理的基础的人肯定不会。

为什么?因为这个本身就是经典的进程通信三大方式之一。这些语言的新特性都是提供给那些有经验的程序员来用的,你对计算机原理都不理解的话,怎么能理解好新技术呢?


我一直以练武来阐述这之间的关系。日异月新的技术,如Android开发、J2EE开发、Python开发、前端开发、手游开发等等都是武器;而操作系统、网络这些都是内功。
高手内功都很深厚,武器也都至少玩过一遍。绝世好剑固然重要,但是你的内力是否能够驾驭,那才是关键。这也是培训机构出来的,编程比较渣的原因。
只会耍刀弄棒,没有扎实的基本功。


推荐书,其实打好基础是一方面,另外的一方面,我希望按照我的推荐顺序和要求,能够让大家清楚地认识到,读技术书是一门学问。
如果你没有自己读技术书的方法论,基本上也就远离了编程了。



下面是我个人的读书推荐,当然我也不是什么书都读过,我只推荐基础的书,上层书每个人喜欢的内容不一样:
1.《C Primer Plus》
这本书我认为是大家入门必读的一本书,当然也是学习C语言读的书。我只想说说为什么这本书适合第一本。


(1)这本书是C语言的入门教材,非常全面,C语言能够为学习后面的计算机原理打下好的基础。学Python之类的,其实没有什么意义,在菜鸟手上不过是当玩具语言来用,你连进程线程都不知道的情况下,能用的好Python么。


(2)这边书非常厚,好处有两个:培养耐心和培养阅读方法。这两点不展开,但是,很多菜鸟和大牛的差距就在此。
 (3)这本书只介绍语言,不扯淡。不像渣渣书,都会具体平台、项目实战什么的乱七八糟的,讲C就非常好的跟你讲C。




2.《算法导论》
 (1)这本书难是难,但是只是数学推导难,具体的算法并未到特别难的地步,都是非常基础实用的算法。买几本烂的算法书,不如买一本好的可以常年翻的算法书。
 (2)书也很厚,这本书和上一本一样,对新手的最大好处,是培养阅读的习惯和锻炼动手能力。如果你不动脑子一个字一个字读,不实践动手只用眼睛看,肯定学不好。
 (3)书不用全部看完,自己要掌握度,编程这种东西不是死脑筋就能搞好的。一切尽在不言中,懂的人自然知道怎么看。
 (4)推荐读书的时候,上一些OJ刷算法题。算法不过关,你编程怎么玩?



3.《鸟哥的Linux私房菜基础版》
 (1)这本书其实意义不大,我都没有读完。放在第三本的意义在于,学习Linux是踏入编程行业的第一步。
不知道开源软件的历史浪潮,不理解开源精神,虽然不阻碍你成为好的程序员,但是,你难道不想知道为什么GitHub上面的代码是开放的么?
 
(2)这本书结合ubuntu来入门最好了,从技术层面来理解Linux的一些原理部分的东西。学完这本书,如果你还是命令行玩不熟,那就是你自己的问题了
 (3)还是那个道理,培养自学能力和阅读习惯。技术书怎么读,你自己思考思考。如果你把Linux所有命令都记在笔记本上,照着敲,不会用的时候查文档,那是没有任何意义的。



4.《Java核心技术卷1上下》
 (1)其实我自己看的并不是这本书,我自己看的是《疯狂Java编程》和马士兵的课程。年轻不懂事,买的,现在觉得那本书讲的蛮细,但是有些概念问题谈的不对。
马士兵的课程,我倒是非常推荐的,因为对一些Java的面向对象的概念和流的概念以及习惯的养成非常有帮助。我不推荐去培训机构学习,也不推荐光看视频学习,但是我不全盘否认看视频学习的好处。


 (2)其实还有一本《Java编程思想》这本书也是非常好的,但是我觉得这本留给大家自己要钻研Java的去看。我推荐Java学习一下,是希望大家能够通过这门纯面向对象的语言,去理解面向对象的概念,理解继承、封装、多态、接口、文件流、网络包的一些基础知识。



5.《TCP/IP详解卷一》
 (1)通过Java了解了基本的TCP、IP、UDP、HTTP等一些概念的时候,是不是需要继续深入地研究一下到底网络的世界什么样?


6. 《操作系统概念第七版》
 (1)这本书是我去图书馆借着看的,因为学校的课本比较水。
这本非常好,我大概花了整整两个星期,没日没夜的看才读懂看完。非常好的一本书,看过的自然懂。


7. 《Unix环境高级编程》和《Unix网络通信》
 (1)这两本是非常好的书,但是我觉得不是所有的人都需要全部搞懂,会用的。
但是这里面的概念非常重要,我觉得大家可以扫一遍,重点去理解一些关键性的技术。倒是里面的关乎于Unix编程的语法函数什么的,未必那么重要,其他高级语言,现在都有所实现。我个人的理解。


8. 《线性代数》《概率论》《统计学》《数学之美》
 
 (1)为什么推荐数学,没有理由。不会数学,玩毛线编程。


9. 《集体智慧编程》
 (1)这本书主要是讲到了Python在人工智能方面的应用,非常入门人工智能的好的一本书。基本上不存在看不懂我觉得。
如果你对机器学习、数据挖掘什么的概念非常有兴趣,但是苦于那些学术型文献看不懂,就先把这本书看完。
 
(2)我没有列出来Python学习的书籍,因为我觉得到了这里,Python的基本语法完全可以自学。高级的特性你也应该都能掌握。


9. 《深入理解计算机系统》
 (1)这本怎么说呢,如果是计算机专业的,而且平时真的把课程的内容都吃透了。我觉得内容其实没多少新的,如果平时只是为了应付考试去看的课本,你可以拾起来重新好好读。



10.《Don't make me think》
 (1)这本书程序员读了主要是能够更好地去设计APP和网页,毕竟你也会有自己主导设计的时候,非常好的书。





基本上,我第一反应可以想到的就是这些了。
但是,这些不过是入门书籍,远远不够。而且更多的知识和内容,比如git、HTTP协议、各种编程语言、各种类库、GitHub使用、服务器、网站架构、乱七八糟的技术开发、C++的学习、deep learning、游戏开发等等浩如烟海。
Matrix67的blog看过么,收集了多少大牛的博客,捣鼓过多少软件,配置过多少编辑器和系统,这个时代不缺乏培训机构,缺乏静下心来,不浮躁,好好读书的人。
我两年读了几十本书,看过很多资料是有的。曾经为了一个显卡驱动,我在家连续72个小时不停重装操作系统和显卡驱动,只有这种执着的精神,我觉得才能学习好编程。




















哦,当然智商最重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值