计算机专业的入门书籍(第一篇博客)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wjheha/article/details/69396602

计算机专业的入门书籍

  今天是2017/4/6,终于开始动手写自己的博客了,写点什么好呢?
  记得是去年4月份接触java,开始转向软件的,一晃时间过去满一年了。
  恰好最近几个月拜访了大牛博客、知乎、豆瓣、掘金等诸多论坛、网站,参阅了很多计算机专业教育者和身边从业者的过来人经验,经过思索、整理,决定写一篇计算机专业入门书籍的博客,全文主要以推荐书籍为主,部分书籍内容会有重复的地方,挑一本仔细翻看即可。

基础入门

主要是一些基础课程,适合计算机专业本科学生和对计算机感兴趣学习者。

数学基础

硬件基础

  • 电路理论
  • 模拟电子技术
  • 数字电子技术
  • 微机原理

软件基础

计算机基础和组成原理

看完上面这些书籍,可以再把下面这两本神书作为过渡,这两本书和上面推荐的书中会出现不少计算机组成原理方面的知识,这部分内容涉及的知识点较多,在这个阶段看,内容有一定的难度,建议是反复看,按阶段看,在学习了后面的知识后,再回过头来看。

  • 一本足矣,号称比等质量黄金还要珍贵的书籍——《深入理解计算机系统》简称:CSAPP,它把操作系统,计算机组成原理,数字电路,编译原理,网络,计算机体系结构等程序员需要了解的核心知识汇集在一起, 让你迅速的打下扎实的基础。 这本书有700多页,是CMU的本科教材,吃下来需要花费不少精力,推荐大牛博客,可以带你学习。小土刀——不周山之读薄/读厚 CSAPP。加油!
  • 《计算机系统要素》 | 书摘 | 不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之;学至于行而止矣。

基础进阶

这个阶段的学习,我主要从一个程序猿的角度来写,这个阶段的学习效果,对后续计算机学习和从业都有着至关重要的影响。

数据结构和算法

  学习数据结构,一定要注意多实践,学会从实际问题中抽象出数据,所以下列书籍的习题应尝试着独立完成。
- 《算法:第四版》这本书是采用Java语言实现的,里面用到了一些作者自己的库,作者提供有自己的开发平台,可以参照知乎这个问题的回答:算法第四版所用到需要下载的库?
- 《数据结构和算法分析:Java语言描述》这本书和算法参照着一起看。
- 《算法导论》简称:CLRS 不多说,大家都懂。书坚持读起来有一定难度,若读来有一定困难,可以先放一放,后续有需要再回头看。

操作系统

  • 《现代操作系统》本书是操作系统领域的经典之作,书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。
  • 《操作系统概念》和上一本书对照着看。
  • 《30天自制操作系统》亲自动手体会一下操作系统的制作, 把书本知识都用起来。 另外Linux 0.0.1的源码也是必读的, 尤其是计算机加电以后,怎么把操作系统给Boot起来的。

记住,操作系统一定要结合实际的操作系统来学习。看操作系统的概念,设计,更应当看操作系统的使用,实现。Linux就不多说了,基本是个操作系统教科书都是拿*nix举的例子。Windows可以参考MSDN,微软的MSDN简直是一个超级宝库,经常去挖一挖,你绝不会失望的。

编译原理

记住,操作系统一定要结合实际的操作系统来学习。看操作系统的概念,设计,更应当看操作系统的使用,实现。Linux就不多说了,基本是个操作系统教科书都是拿*nix举的例子。Windows可以参考MSDN,微软的MSDN简直是一个超级宝库,经常去挖一挖,你绝不会失望的。

计算机网络

数据库

  • 《数据库系统概念》厚、大、全。
  • 阅读SQLite的源码, 一个开源的嵌入式关系数据库, 只有那么几万行c 语言代码, 吃透以后功力绝对大涨。

计算机组织和架构

这部分内容,相当于对计算机组成原理的进一步深入,难度还是比较大的,慢慢研究最好。
- 《计算机组成与设计 硬件/软件接口》 | 书摘 | 从软硬件接口来看计算机 。
- 《计算机体系结构 量化研究方法》 | 书摘 | 从定性分析的定量分析的巨大进步。
- 《计算机组成与体系结构 性能设计》 | 书摘 | 从性能角度出发也是很好的认识计算机的方式。
- 《计算机组成 结构化方法》 | 书摘 | 计算机系统由三个部分组成:处理器、存储器和输入输出设备。
这几本书在小土刀书书影音都有推荐,这里直接引用,毕竟大牛!

编程语言

  本科的时候最先学习的是C语言,后来学习了汇编语言。目前比较火的重量级语言也就那么几种。C语言诞生于上世纪70年代,C++语言诞生于上世纪80年代,Java语言诞生于上世纪90年代,而C#刚好是2000年推出的,所以作为面向对象开发的三大语言C++、Java、C#基本是相互渗透,相互吸收,相似的地方很多,选择其中一个学习即可,推荐Java,在国内用户量庞大,更重要的是入门相对于C++来说简单一些,而C#主要是微软在用。
  另一方面,由于近些年来人工智能大热,Python语言开始强势崛起,“人生苦短,我用Python”。新手也可以选择Python入门,现在一些国外高校,教授的第一门语言已经从C语言转向Python了。
  由于本渣渣还在Java坑里面。。。。,就推荐一些Java入门的资料,附带Python资料。

Java学习资料

  • 《Head First Java》《疯狂Java讲义》 这两本书是青菜萝卜各有所爱。
  • 传智播客基础班视频(毕向东)
  • 知乎问答哪本书适合推荐给 Java 初学者?没有办法比他们回答的更好了。

Python学习资料

如何系统地自学 Python? http://www.zhihu.com/question/29138020?utm_source=qq&utm_medium=social (分享自知乎网)

Python 有哪些好的学习资料或者博客? http://www.zhihu.com/question/34907211?utm_source=qq&utm_medium=social (分享自知乎网)

其他资料

学习编程专栏 https://zhuanlan.zhihu.com/passer
贺利坚的课程教学 http://blog.csdn.net/sxhelijian/article/details/8001601
网易云课堂大学计算机专业课 http://study.163.com/curricula/cs.htm
好了,一不小心推荐了这么多书,其中大部分书我也没有仔细阅读,毕竟不是科班出身。学完上述基础课,应该可以算是计算机入门了吧,或者说有了较为扎实的计算机基础,对以后从事相关领域研究应该障碍不大。

路漫漫其修远兮,学习的路上必然是枯燥的。没有含着金钥匙出生,就需要一步一步的积累自己,在做自己感兴趣的事情同时,给社会带来价值,自然就会有收获!

展开阅读全文

没有更多推荐了,返回首页