.NET程序员走向高端必读书单汇总(转载一下,不全信,可做借鉴)

(偶然看到这几句话,觉得写出了心里的一点点感觉,于是转载过来和下面的文章组成一块)对于编程学习喜欢的方式,我个人是这个看法,我做开发也有一年多了,WPF开发也有九个月了。从小白到现在入门略有深入。不再局限于实现效果,而是更喜欢实现功能的原汁原味的代码。很多效果也许我不能写出完整的代码,也没有那么多的时间,但是深入看了别人的设计代码,总是受益良多。

工作这么长时间,总算明白为什么Java那么受欢迎了。因为作为技术人员到了一定境界,更喜欢了解具体的实现过程,而对于直接使用SDK的兴趣淡了不少。打个比方微软提供了很多优秀的SDK,但是就像家庭一样,越是包办一切的好父母,往往不太招孩子们的喜欢,不是孩子们不懂得感恩,而是社会自然规律,你无法成长,你便很容易感觉到自己无能,无能的人哪有快乐而言。


.NET程序员走向高端必读书单汇总

如今程序开发工作越来越简单(丰富的API、智能的IDE、越来越多的开发框架),普通人通过简单的训练,通过组合和复制就能完成众多程序的功能。因此程序员这种过去高技术职业的代名词,现在却如此低贱,被称之为码农。借用微观经济学原理,当供应量增加而需求不变时,价格平衡点将下移,因此普通程序员工资越来越低。而且大街上众多的培训机构还不停的产出,可以预料到不久将来价格平衡点还将下移(不考虑通货膨胀等因素)。那么作为有远见的程序员更应该加强自己内功,成为不可替代品。看书是对自己最有效的投资方式,我整理了已经看了和准备看的书籍,并按知识点分门别类供大家参考和讨论。

一、知识树

计算机科学与技术是一门庞大而复杂的学科,不可能了解完所有内容,但可以通过知识树梳理了解整个领域的核心知识,为后续应用做好准备。

如果将计算机科学与技术看成是武学的话,左边部分是内功,右边部分则为招式。武学高手可以用简单的招式发挥出巨大的威力,是因为内功的强大。因此要了解整个计算机科学与技术的全貌需要从内功开始。

1. 基本能力

1.1 数学

很多做应用系统的程序员会觉得数学基本上没有用,因为在系统中基本没有用过。但实际上数学是整个计算机的基石,因此对数学的了解不可或缺。如果是从事机器学习、数据挖掘、计算机图形学的更需要较强的数学功底。

1.2 英语

英语是程序员最重要的语言,大部分的技术书籍、协议、会议等均是英文,因此需要了解第一手的资料需要很强的英文读写能力,英语学习是一个循序渐进的过程,可利用碎片时间学习。

1.3 语言表达

语言表达主要是书面和口头,需要培养逻辑严密、语言流畅的语言表达能力。这个主要靠多写多练比如在博客园上写文章(像我现在一样),多和同事朋友美女交流。

2. 计算机组织与体系结构

计算机系统的组织结构,以 冯·诺依曼模型作为基础,是计算机的硬件基础。

核心知识点

  • 数据的机器表示
  • 汇编级机器组织
  • 接口和通信
  • 存储系统
  • 多处理器

参考书籍

3. 算法与数据结构

很多人觉得现在应用系统根本就不需要数据结构,高级语言早已经封装好了,不需要学习。这个问题类比于如果只干搬砖砌墙的活,熟练掌握工具那也就够了。但是要想设计建筑的话,物理是必须学的。

核心知识点

  • 算法策略:穷举算法贪心算法分治算法回溯法数值逼近
  • 基本算法:查找算法排序算法哈希表图算法最小生成树
  • 基本数据结构:列表

参考书籍

分类 书籍 难度 重要度
数据结构与算法分析 《数据结构与算法分析》https://book.douban.com/subject/1139426/ 一般 精读
算法描述语言入门 《c和指针》 https://book.douban.com/subject/3012360/ 一般 精读

解释下为什么要把《c和指针》放到这里,因为个人觉得所有算法与数据结构描述语言中c是最爽的一种(没有之一),并且在《c和指针》中不仅讲解了c语言,更对简单的数据结构和算法做了讲解,非常漂亮。建议一定在正式学习《数据结构与算法分析》前先看这本。

4. 操作系统

操作系统中的很多概念需要了解,比如进程、线程、资源互斥,在实际开发中很多地方都需要用到。

核心点:

  • 内存管理
  • 设备管理
  • 调度算法
  • 并发性

参考书籍

分类 书籍 难度 重要度
操作系统原理 《现代操作系统》 https://book.douban.com/subject/3667744/ 较难 泛读

5. 计算机网络

计算机和远程通信网络尤其是基于TCP/IP网络的发展,使得联网技术变得十分重要。

核心知识点

  • 网络分层(Tcp/ip 4层结构)
  • 网络传输安全
  • HTTP协议

参考书籍

分类 书籍 难度 重要度
计算机网络 《计算机网络》 https://book.douban.com/subject/1179807/ 较难 泛读
HTTP协议 《图解http协议》 https://book.douban.com/subject/25863515/ 简单 精读

6. 信息管理

信息管理技术在计算机的各个领域都是至关重要的 , 它包括了信息获取、信息数字化、信息的表示、信息的组织、信息变换和信息的表现 ; 有效存取算法和存储信息的更新、数据模型化和数据抽象以及物理文件存储技术.

核心知识点

  • 数据建模
  • 数据库系统
  • 关系型数据库系统(Mysql最佳)

参考书籍

分类 书籍 难度 重要度
数据库基础 《数据库系统概念》 https://book.douban.com/subject/1929984/ 较难 泛读
mysql数据库 《高性能Mysql》 https://book.douban.com/subject/4241826/ 一般 精读

7. 开发语言及框架(以.net平台为例)

这个主要到程序领域了,本文以.net平台为例。

核心知识点

  • CLR
  • 面向对象程序设计
  • Web编程

参考书籍

分类 书籍 难度 重要度
虚拟机技术 《CLR via c#》 https://book.douban.com/subject/4924165/ 较难 精读
面向对象程序设计 《敏捷软件开发 c#版本》https://book.douban.com/subject/1140457/ 一般 精读
C#语言 《深入解析c#》 https://book.douban.com/subject/4822302/ 一般 精读
  《c#与.net4高级程序设计》https://book.douban.com/subject/6062550/ 一般 精读
ASP.NET 《asp.net高级程序设计》https://book.douban.com/subject/6428937/ 一般 精读
JavaScript 《JavaScript权威指南》https://book.douban.com/subject/10549733/ 一般 精读
  《JavaScript模式》https://book.douban.com/subject/11506062/ 一般 精读
  《javaScript语言精粹》https://book.douban.com/subject/3590768/ 一般 精读
HTML&CSS w3c网站 简单 精读

8. 软件工程

软件工程学科涉及到为高效率地构建满足客户需求的软件系统所需的理论、知识和实践的应用。 软件工程适用于各类软件系统的开发 , 它包含需求分析和规约、设计、构建、测试、 运行和维护等软件系统生存周期的所有阶段。软件工程使用工程化方法、技术和度量 , 它使用管理软件开发的工具、软件制品的分析和建模工具、质量评估与控制工具、确保有条不紊且有控制地实施软件演化和复用的工具。 软件可由个人开发者或者开发小组进行 开发 , 他们 要选择 最适合 开发 环境 的工具、方法和途径。质量、进度、成本等软件工程的要素对软件系统的生产都是十分重要的.
核心知识点

  • 软件设计
  • 软件过程
  • 软件项目管理

参考书籍

分类 书籍 难度 重要度
软件设计 《head first 设计模式》 https://book.douban.com/subject/2243615/ 一般 精读
  《企业架构模式》 https://book.douban.com/subject/4826290/ 一般 精读
软件工程 《软件工程》 https://book.douban.com/subject/6047742/ 一般 精读
项目管理 《如何管理软件企业》 https://book.douban.com/subject/4178846/ 一般 泛读
项目管理 《软件项目管理与敏捷方法》 https://book.douban.com/subject/4837350/ 一般 精读

二、学习方法

要想学完以上知识光靠死记硬背是不行的,要有科学的方法,下面书籍包括了科学的学习方法。

分类 书籍 难度 重要度
学习方法 《整体学习》 https://book.douban.com/subject/25783654/ 一般 精读
阅读方法 《如何阅读一本书》 https://book.douban.com/subject/1013208/ 一般 精读
时间管理 《另外8小时》 https://book.douban.com/subject/10535830/ 一般 精读
  《把时间当作朋友》 https://book.douban.com/subject/5171244/ 一般 精读
禅修 《正念禅修》 https://book.douban.com/subject/23037911/ 一般 精读

三、后记

以上书籍是计算机科学上需要学习的书籍的整理,部分看过,也有很多还没看过或没看完,而且由于知识有限还有很多书籍或知识点没有例出。希望可以有更多朋友一起来完善这个书单,让我们每个人都可以享受到知识所带来的乐趣

我相信,只要合理利用时间,坚持学习,在加上科学的方法,定可获得越来越多的知识,同样的财富也会随之而来。


作者:帅虫哥 出处: http://www.cnblogs.com/vipyoumay/p/5681982.html

以上内容有任何错误或不准确的地方请大家指正,不喜勿喷! 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#程序员书籍推荐 1、C#编程 C# Windows Form 程序设计------对熟练掌握WinForm编程基础比较有用,看得时候建议将书中的例子从头到尾一遍,这样会有比较好的收获,否则,学习效果一般。 C# XML从入门到精通 ------这本书前半部分讲的关于XML的基础操作比较有用,后半部分如果对XML有兴趣的话也可以仔细看看,毕竟XML是现在的一个主流方向。 C#高级编程 ------大家公认的一本C#经典教课书,但是太厚了,要有耐心仔细看下去,不然效果就不是很好。 说明:个人认为看编程的书就要敲代码,如果将书中的例子一遍,只看书,效果会大大折扣的,尤其对于刚开始学习编程的人。 2、代码质量 重构-改善既有代码的结构 ------一本与设计模式齐名的经典著作,对你的代码规范、代码质量以及软件设计都有很大的帮助。 个体软件过程 ------一本偏重于软件工程的书,也许你会觉得很无聊,但是如果坚持下来,你会觉得效果真的就如书上所说。我只坚持了一个月,但是感觉收获已经很大。 说明:软件代码质量和个人的编码习惯、编码风格有很大关系,当水平达到一定之后,你的编码习惯、编码风格如果有问题的话,会阻碍你的进一步提高的。编码风格、编码习惯的改进中再坚持。 3、设计思想 UML与模式应用 ------我看到的第一本让我佩服的书,也是OO方面我的启蒙书,这本书我看了遍,笔记记了一大堆,每次都有新的收获,而且最近还计划在仔细阅读一遍! 设计模式 可复用的软件设计基础------一本计算机界公认的经典著作,这本书对于入门者可能有点困难,但是这本书看十遍都不多!绝对的经典!如果以后想软件开发的话,个人建议将这本书看五遍以上! 面向对象编程导论(原书第3版)------一本对OO讲述比较全面、比较经典的书籍。 说明:设计思想方面,OO是现在的主流,东西很灵活,要多看相关的书籍,多在实践中运用。同时,看着部分的书,一定静下心来人真看。 4、软件工程 应用极限编程-积极求胜 ------极限编程现在很火,也是你无法全部接受它,或者你周围的环境不能实施它,但是其中的一些思想、最佳实践可以用在你的工作中,无论是编码还是设计,对你的思路都回有很大好处的! RUP导论 ------RUP和XP是现在很火的东西了,这本书对RUP进行了很好的描述,书很薄,但是能够让你很好的全面地认识RUP。 用例 通过背景环境获得需求------用例分析是RUP中很重要的一个环节,这本书讲的很好,无论在需求分析、软件设计方面都会对你有很大启发。 说明:软件工程现在门类很多,可能很多东西我们周围没有使用的环境,或许我们不会从事软件过程管理,但是其中的很多思想对我们个人的软件开发都会有很大的帮助! 5、软件测试 软件测试的艺术 ------可以帮你纠正很多对软件测试的误区! 元测试之道 C#版-使用NUnit-----NUnit可是被誉为.net程序员必备的一项工具啊!很不错的一本书,值得仔细看看! 测试驱动开发 ------经典的书籍,虽然是XP中核心的内容之一,但是即使独运用它,也会给你意外的惊喜。 说明:软件测试并不只是手工点点按钮,其实内容很多的。好的测试员,不仅需要对测试领域有深刻的理解,也需要很高的编程功底。即使你不想从事测试工作,学习这些东西,也会对你的编程水平、代码质量有很大的帮助。 个人认为,看一本书,尤其是经典的著作,看十遍都不为过。同时,看书的过程还要学会发现在其感兴趣的、不了解的内容,然后自己再找相关的书籍看。以上的书只是我看过的、个人认为比较经典的书籍,可能个人情况不一样,兴趣点不一样,对我来说经典的书籍不一定对大家经典,但是,要学会自己查资料、学东西的能力,这才是最重要的。如果你能有毅力用一年或者一年半的时间把上面的书籍吃透,再加上公司项目的锻炼,那恭喜你,你的编程和设计能力在你们同学之中肯定可以稳居前10%。 读书,尤其是软件方面的书,其实是很累的,可能读一本书不累,但是如果你能每天坚持个小时认认真真地看书,能够将一本经典之作认认真真读五遍,而且一直认认真真,那你的毅力真地令人佩服,同时,你的汗水带给你的会是很多的惊喜! 首先让自己喜欢读书,然后学会读书,再学会自己找书读,自己查资料、解决问题……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值