自学计算机,首先就得考虑如何入门。计算机想要入门,需要学一些啥?我的答案是,至少会一门编程语言,同时掌握一些基础的计算机理论。
基础理论篇
计算机导论
计算机导论这门课是大学计算机科学与技术专业的学生刚入学的时候必学的一门课,如果你想要看自己究竟对计算机相关的有没有兴趣,那么就可以看看这本书。《计算机科学导论》清华大学出版社,这本书虽然说文字居多,但是本身是一本导论性质的书籍,所以图文并茂性还是比较高。拿来入门还是可以的。
计算机网络
计算机网络是整个计算机技术的基础,这是毫无疑问的。这也导致了真个计算机网络的知识体量是非常巨大的,光讲解TCP/IP协议簇的书就有三本很厚的,全是文字和代码的那种。
不过在完整研究计算机网络之前,也有一些拿来入门的不错的书籍,即图解系列丛书。下面简单举几个例子。
例如,如果你想从事前后端的工作,那么首当其冲的就需要掌握HTTP(s)协议,那么《图解HTTP》这本书就很值得一看。
如果你想了解我们的路由器是怎么工作的,互联网的上的两台计算机是怎么交流的,那么你就可以先简单了解TCP/IP协议,那么《图解TCP/IP》这本书就比较易懂。
这两个协议是比较基础的协议,入门计算机,还是应该看看。
当然,计算机网络的原理中,除了各种协议,还有计算机网络自己的基础理论,推荐谢老师的计算机网络,虽然不是图解系列,也全是文字,但是确实是必备的入门书籍。
操作系统
操作系统是所有计算机系统的基础软件,而操作系统这本书就讲解了这个基础软件干了些啥。里面的一些概念,例如死锁,进程线程等等都是后续编程知识的基础,也就是说,后面学编程的时候也会用到这些知识点。
操作系统的书,我就不推荐了,最好是学一下网络上的视频课程,机械工业出版社那本操作系统里面有大量的语句不通顺,不建议看。
数据结构与算法
编程界有句话叫思想是代码的灵魂,而数据结构与算法,就是培养编程思想的加速器。虽然数据结构的实现是基于某种语言,但是数据结构的原理本质上是数学,比如常见的图论,数论,博弈论和概率论等等都能衍生出相应的算法,我比较推荐《我的第一本算法书》这一本书。
当然,数据结构方向其实有一本圣经一般存在的书籍《算法导论》,不过不建议买,这本书很细,但是很厚,不适合入门。
好了,计算机基础理论,学到这儿也差不多了。还有一些基础理论,等入门之后根据个人方向和喜好进行选择。
编程语言篇
java
从应用场景来说,JAVA适用于分布式系统,国内有大量的公司的技术栈都是spring框架那一套,所以如果你想做后端,就需要学JAVA,学spring。遗憾的是,不管是学习JAVA还是spring,都没有图解系列图书,我比较推荐《java编程思想》这本书,虽然年代久远,但是确实讲的都是JAVA的核心。
C
c语言是属于底层开发语言,如果你对算法感兴趣,可以考虑首先学一学C语言,利用C语言将数据结构的相关知识融会贯通,将给你未来的编程工作带来巨大的好处。推荐机械工业出版社的黑书。
然后如果你想学习手动实现各种数据结构的话,可以考虑买一本数据结构c语言版,《数据结构(附光盘C语言版清华大学计算机系列教材)》
python
如果你想走安全、大数据等方向,就可以考虑使用python作为主要语言,python主要强大在于第三方库比较多,所以在语言级入门书籍方面,个人觉得没有特别经典的书籍(版本迭代太快了),所以可以去学习网站找一些视频学一下即可。
除了上面的语言,还有GO、C++、C#、.net core、PHP等等语言,每个语言都有自己的应用场景,大家需要根据自己的兴趣去学习。