立即注册
蓝人 MVP
这个人很懒,什么也没有留下!

计算机相关专业学习的书单,适应于在校学生阅读

基础知识2016-4-22 13:58 阅读 7333 评论 3 热度 8

计算机相关专业书单

 

最近看论坛来了很多在校学生,想想自己离开大学11年了,本人05年大学毕业,但是我自己是99年开始学习计算机,整整学了6年,现在和一些在校同学交流的时候发现一个大问题,就是现在的老师,还是和我们当年一样,老师是念书的(老师照着教课书在上面念),学生是听书的(学生就傻傻的听老师把课本上的文字读一遍)。

但是本人的6年计算机专业学习(三年职业高中计算机专业学习,三年大专),有一些心得,今年可以静下心来好好的写一下这书单的事情。分享一下当年的学习经历,因为不能写成经验,是因为不一定是经验,但是经历还是真实一点儿

 

那些年,我自己学习了很多计算机语言(高中阶段:C语言、QBASIC、foxpro这个语言,即是语言也是数据库,我们高考还是专业毕业考课,汇编,不过汇编对于我们高中生来说,学起来非常难的,那个时候也只能听个似懂非懂的样子,我自己还有学了一点点VC++不过这个在高中阶段,是完全没有看懂的),当然了,我们也已经在高中阶段,学了计算机原理,操作系统相关的理论课,那个时候非常吃力,不过现在看来,也就这么过来了,最有意思的时候,还有经历了学习MS-DOS,100多条命令,刚刚有windows3.0的时候,好像是12还是16张磁盘发行的,当时我们每个同学都有10来张磁盘,非常有意思的,大家把自己手上的磁盘集中起来,然后试着装起来,好像还是装成功了,到了有用到win95的时候,那一个开心

不过当时学校的电脑都是无盘的,装一次,用完,下课后,又得重来了

 

想想现在的孩子,好幸福呀,我们那个时候为了能摸到计算机,满世界的跑,能看上几眼都不得了,呵可,现在想想,应该是苦还是甜呢?

 

因为有了高中的基础,到了大学,再来学习,大学的书籍更多,可以接触到更多东西,再经过三年的大学学习,最终自己基本形成了一些知识结构和知识体系,今天有幸能来分享,希望可以帮到各位学子,那就是最大的慰藉

好了,废话少说了,书单开始

 

 计算机科学导论

 这个是对于普高进入计算机专业学习的学生来说,有必要好好看一下

 具体的书单,我认为,就不写细的,这个可以多看一下,书名差不多的书,因为国内的书,写的得,编的比较多,一般会是一些学者或教授,用一些时间,去整理出来的,说成作者好像不太合适,编者更加准确,为什么要写成编者,因为是书的内容,原创的比较少了,本人这个帖子,每个字,都是自己码的,文笔有限,大家还是可以称我为这帖子的作者

 说说为什么要看很多同名书的事情,当时我自己在学习的时候,看书经历告诉我,很多书的编者在编写时,内容也是大致相同,但是都会稍有不同,主要是因为内容来源的关系吧,一般一书的内容,可以分为几个种方式整理出来,一个是同行同名书,一个是同名外文书,加上整理和翻译,再加上编者的一些个人理解,所以有时候同个术语的解释会有一些不同,有一些会抽像一些,有一些会通俗一些,不过我觉得真正理解了的学者,应该要用更加通俗的语言来表达会更加好,特别是导论类的书籍,读者基本上是一些刚入门的学生。

这个就讲到这里面。

 

关于一些基础课程,就不表了,因为每个学校基本上都会的,那些作为以后考研或者做研究的同学来说,也要花时间好好学一下,要只是以后出来工作,做一个专业的工程师,我不知道能得上多少,呵可

离散数学

这个课,我们因为是专科,课本非常薄,当时学的时候,也觉得没有什么后,因为是一年级就有开课了,不过后来我们在学数据库原理的时候,就发现了一个问题,很多关于理论方面的课程,其实就是学离散数学的时候,就有讲过了,所以大家在一年级时候,开的一些基础理论课不要不重视,基础没有,就对于后面真正的专业课更难了

 

计算机编程基础

程序设计基础

教材:

1.《Little Scheme》2.《How to Design Program》

程序设计原理

教材:1.《计算机程序设计的构造和解释》英文名称《The Structure and Interpretation of Computer Programming》简称“sicp”江湖上人称“魔法书”

2.《Concepts, Techniques, and Models of Computer Programming》

ps:如果你读sicp不做里面的习题简直就是暴殄天物,浪费了。

推荐MIT的公开课“计算机科学及编程导论”尽管他们用python取代了scheme。

C语言程序设计基础

教材:1.《C语言的科学和艺术》

2.《C程序设计的抽象思维》

3.《C语言程序设计》K&R

.C语言 谭浩强教授的书,书名 不记得了,一般的学校都会有的

 

以上书目,有点难的,大家可以看一下,是不是要看!!

 

 

进阶教材:

1.《C专家编程》

2.《C语言接口与实现:创建可重用软件的技术》

0.009 汇编语言程序设计

教材:1.《汇编语言》作者:王爽

这可能是本书单中唯一一本中国人写的教材

 

面向对象程序设计

C++程序设计

教材:

1.《Thining in C++》

2.《C++ Primer》

3.《Effective C++》

4.《深入探索C++对象模型》

ps:C++的经典教材太多了说不定我可以列出20本来,但是初学者还是先打好基础吧。

JAVA程序设计

市面上有很多培训机构的java视频,有些视频讲的真心不错,可以找些看看。

教材:

1.《Thinking in Java》

2.《Effective Java》

3.《Practical Java》

4.《深入理解Java虚拟机》

5.《Java并发编程实践》

计算机核心专业课

 

数据结构与算法:

教材:

1.算法:C语言实现(第1~4部分) 基础知识、数据结构、排序及搜索

2.算法:C语言实现(第5部分)图算法

或者3.《算法》第四版(java描述)(本书红黑树讲的奇好比CLRS好百倍)

4.《算法引论:一种创造性的方法》(一本被大家忽略的好书,正如序言说的,如果你没时间请直接看第五章)

5.《编程珠玑》

6.《算法概论》 一本不厚的算法书,作者惜墨如金,字字珠玑。对动态规划的讲解非常的棒!

7.《编程之美》一本很好的习题册

 

算法分析与设计

教材:

1.《算法引论:一种创造性的方法》

2.《算法导论》

程序设计与计算机系统

教材:1.深入理解计算机系统

计算机网络

教材:

1.《Head First Network》

2.《Tcp/IP详解卷一:协议》 这方面的书,非常推荐

3.《计算机网络:自顶向下方法》

操作系统(可以拆分成两门独立的课程)

教材:

1.《现代操作系统》

2.《操作系统:精髓与设计原理》

3.《莱昂氏UNIX源代码分析》

4.《现代体系结构上的UNIX系统--内核程序员的SMP和Caching技术》

5.《计算机系统设计原理》

6.《UNIX编程艺术》

7.《鸟哥的Linux私房菜》make your hands dirty,学一学怎么用操作系统吧,各种名目,shell^_^

听国外读书的朋友讲,学完的之后国外的学生就可以写出一个微型的操作系统内核。

 

Linux/Unix编程实践:

1.《UNIX环境高级编程》

2.《UNIX编程环境》

3.《Linux/Unix编程实践教材》(这本更适合初学者)

 

以上书单,只要你以后想从事与编程相关的工作,都要学习的,学的深度与广度,自己适当去把握。

 

想要从软件工程师,偏纯软件,系统开发(如:mis系统、互联网相关技术研发),下面的书单,注意了

数据库

教材:

1.数据库系统导论

2.数据库系统概念

计算机体系结构

教材:

1.《计算机体系结构:量化研究方法》

软件工程:

1.《人月神话》 本人有读,不过在大学期间,读这本书,有一些不太明白,这个建议就来后,可以再出来翻翻,一定会有新的认识。

2.《代码大全》 这本没有书,可以建议现在还在从事代码和技术开发的朋友看看

3.《UNIX编程艺术》这本没有书,可以建议现在还在从事代码和技术开发的朋友看看

4.《梦断代码》这本没有书,可以建议现在还在从事代码和技术开发的朋友看看

5.《程序员修炼之道:从小工到专家》 这本没有书,可以建议现在还在从事代码和技术开发的朋友看看

 

数据挖掘与机器学习

数学基础要好,特别是统计学,线性代数可能还需要更高级的随机过程知识

教材:

1.《Machine Learning in Action》

2.《集体智慧编程》

3.推荐斯坦福“机器学习公开课”

4.《统计思维:程序员数学之概率统计》

网络编程:

1.《TCP/IP详解:卷一》 好书

2.《UNIX网络编程(卷1):套接字联网API》好书 要是可以的,可以深入学习,这个对做深入的通信相的技术研发,有很大帮助

3.《UNIX网络编程.卷2:进程间通信(第2版)》

4.《Java并发编程实践》 java的书,建议先把软件工程相关的知识自己完全能理解了,再去学习,会觉得很容易

5.《HTTP权威指南》

编译原理 本科一定会学的,但是专科好像一般学校都不开,本人也没有认真学过,只学了一些皮毛,不过你要是想成为一大系统架构师,这方面的知识一定要很深,这个想学好,也需要时间和功底的,希望还在学校的同学,抽时间翻翻

教材:

1.《编译原理》:江湖上人称“龙书”

2.《编译原理》:江湖上人称“虎书”

3.还有一本江湖上人称“鲸书”的

4.《编程语言实现模式》一本更“practical”的书籍

5.《程序员的自我修养:编译、链接、与库》近年来中国人写的又一好书。

一门优秀的编译原理课程,在学完之后学生就可以做出来一个简单的编译器。在科大的时候我们正好五次实验最终实现了一个简单的编译器。

 

设计模式:

《设计模式》 这个在我自己上学的时候,没有学过,不过后来出来工作的时候,大量的项目,都需要,就简单的翻了,没有太深入

教材:

1.《大话设计模式》中国人写的不错的书籍,C#描述

2.《深入浅出设计模式》Head first 系列

3.《敏捷软件开发原则:模式与实践》c++/java 描述4.《重构:改善既有代码的设计》

5.《重构与模式》

6.《重构与手册》

7.好了最后看GOF的《设计模式》吧。

最后大家读一读《数学之美》吧,非常棒的一本书。

 

看完以上书单,做了个工程师,大问题是肯定没有了

 

其他话题

 

1.编程语言之争:

很多在校大学生冥茫到底该学习哪门语言,哪门语言更好。其实语言无好坏,“尺有所短寸有所长”。这就好比我问“到底是锤子厉害还是水果刀厉害”,如果是用来削苹果当然是水果刀厉害。如果是用来砸石头当然是锤子厉害。每门编程语言都有自己的应用场景,我的建议如下:

1.学好C语言

2.学一门传统的面向对象语言C++、C#、java都可以,按照自己的喜好来

3.学一门函数式语言,比如schme,F#,common lisp,ML等等。这里我推荐学习scheme,因为“sicp”,“hodp”两本及其优秀的书籍都是用scheme来讲编程思想的

4.学一门动态语言比如pyton,ruby等等。我个人比好喜欢python

 

现在很多人都会说“编程语言不重要,重要的是思想”,其实我是不完全同意的。深入一门语言编程,但不拘泥于一门语言。

一个好的学院应该会有相关的课程包含这些不同编程范式的语言,比如读研的时候,我在数据挖掘课上学的python,在编译工程课上学的ML,在形式化方法课程学的F#,我们还有一门课时讲授动态语言ruby的。当然了,还有专门的实践课javaee平台,c#.net平台,等等。计算机专业是实践性非常强的学科,没有累计一定的代码量是不行的。10W行,没错,希望大家在本科四年能够累积10W行的代码量。没必要读研了。如果你读了本书单中的大部分书的话。

2.看英文书还是翻译的

大家看我推荐的书单就知道了,我都是写的中文名字。这并不代表我不推荐大家看英文原著。我的观点是,当你进入一个新领域第一本往往得看中文版翻译版的,因为看英文版的有很多术语你看不明白,这样进度会比较慢,打击自信心。反正我是这样的,我学任何陌生领域的第一本书看的都是中文翻译的,以后的书籍基本上就是如果翻译的好就看中文版的,典型的如《unix编程艺术》翻译的就非常好。翻译不好的就看英文版的,比如编译原理课程里面提到的“虎书”的java描述版就翻译的奇差,只能看英文版的。

 

3.有这些书单就够了吗?

No,学好一门课程需要非常多的动手实践,计算机专业尤其如此。一门优秀的课程往往得配上非常好的实验课程。比如《深入理解计算机系统》这门课的实验就非常的棒,令我印象最深刻的要数“二进制炸弹”了。当时我们大家都在拆弹,拆的不亦乐乎。可见cmu的老师非常用心的设计了这些实验,但是中国的教育呢?

很少有拿的出手的原创课程吧?大学老师们,你们用点心教学生吧!同学们你们用点心学吧。

如果您是工作一族那么读一读用红色标记的部分吧。

last but not the least

书单中尚有漏网之鱼,日后补上。手头还有很多事要忙,就此搁笔。

关于其他专业的书单,其他人也可以补充,或者我再找一些牛人来分享

以上书单,适应于计算机相关专业或与计算机有关的专业,来学习。

如果大家有疑问或者建议可以联系我,也可以加QQ群

Android开发交流群 85642418

物联网技术交流群  499804627

嵌入式技术交流群  511424454

 


路过
1

鸡蛋
4

鲜花
1

握手

雷人

刚表态过的朋友 (6 人)

评论3个评论

Mr刘2016-11-15 15:42
专业开发硬件,软件,手机APP,云服务,研发工程师有300多名。希望有合作的机会,联系电话:181-3829-8019  QQ:2992127947  刘经理          
回复
bogu19922018-6-16 22:46
为了积分
回复
a123bc2018-10-25 09:27
我来啦
回复
您需要登录后才可以发表言论 登录立即注册
facelist
  • 1257帖子
  • 18关注
  • 18粉丝

粉丝18

关注18

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
搜索
扫一扫添加微信客服
QQ客服返回顶部
返回顶部