很多人会想到各种大部头的经典书籍,那些书确实是非常经典,但是能不能让人坚持看下去是一回事,就像有些道理人人都懂,但是能践行下去的少之又少一样。

下面根据我自己的读书经验和工作感受来谈一下,不喜欢勿喷。

先介绍一下我的情况,坐标上海,后台开发,前某大型互联网公司技术经理,目前在一家大厂做架构。我就从单纯的提高编程技术的角度来谈谈吧,一家之言,说的也不一定对。

目前主流的有 C++、JAVA、go,C++ 我的经验稍微多一点。我就说说我关于 C++ 方面的学习经验。如果您是学生,临近毕业,没有那么多时间读许多书,可以按下面列举的重要程度来参考。当然,我推荐的书都是我买了,并且认真读过的。

一、首先,我觉得你应该好好准备算法和数据结构,做到常见的算法和数据结构知识点都能非常熟悉,这样的话你毕业求职的时候可以轻松拿一些大厂(BAT 等)的 offer

我本人非科班出身,一毕业之后各种摸爬滚打。一毕业去大厂个人觉得有两个好处:

第一,你的收入会比一般的的小公司高很多,小公司招人要求相对低一些,薪资给的也少很多,它们是实实在在招能干本职工作活儿的人。

第二,你的起点也会比一般进入小厂的同学高。

我这里并不是歧视小厂,只是说一种普遍的情况。我本人也是从小厂一路过来的。这里我是强调算法和数据结构的重要性。尤其是应届生求职,更应该去好好准备一下这个,因为这个东西是原理性的基础。企业在面试应届生时不会过分要求项目经验和各种操作系统原理、网络通信原理之类的东西,而唯一能考察一个人的基本功的就是这个了

我是社招进大厂,基本上算法和数据结构这类问题问的比项目经验本身要多许多。但是社招又不太一样,因为除了要准备算法和数据结构以外,还得准备有项目经验、了解操作系统原理、熟悉网络通信、了解数据库、熟悉要求的各种开源框架和技术等等,实在太多了,即使再怎么准备也不一定能一举拿下。相反,应届生基本上只要好好准备算法和数据结构的东西,大学其他专业课学的不是太差,这基本上就是进大厂的捷径

图书方面,你可以使用你们计算机专业的相关教材,也可以使用《数据结构与算法分析:C 语言描述》《算法导论》这一类严谨的教材,当然,平心而论我是不敢推荐《算法导论》的,因为这一本书实在是太大部头了,没有好的数学知识,真的很难啃。如果想看一下比较幽默轻松类的书,可以看看程杰的《大话数据结构》。

二、其次,如果你学有余力,可以看看操作系统原理方面的书籍,当然也可以使用你们的教材,我这里推荐一本我看过的吧,Tanenbaum.A.S《现代操作系统》,Tanenbaum 是荷兰人,也是 Linux之父 Linus Torvalds 操作系统方面的启蒙老师。当然,我的建议是这种书毕竟流于理论知识,也不一定要看完,但一定将一些基础概念,如进程线程内存模式等基础概念看懂理解。

你如果还有时间强烈推荐看看俞甲子的《程序员的自我修养:链接、装载与库》,这本书同时涉及到了 Windows 和 Linux 两个操作系统平台,用各种辅助工具剖析了程序从源码到二进制文件再到装载到进程地址空间里面的各个细节,甚至连进程地址空间中的堆结构、栈结构也分析得清清楚楚,同时也分析了 C Runtime(CRT)、glibc 这样的操作系统接口库的原理和执行逻辑,是一本实实在在难得的帮你实战操作系统原理的一本好书。我特别喜欢这个书中序言的一段话:

“CPU体系结构、汇编、C语言(包括C++)和操作系统,永远都是编程大师们的护身法宝,就如同少林寺的《易筋经》,是最为上乘的武功;学会了《易筋经》,你将无所不能,任你创造武功;学会了编程“易筋经”,大师们可以任意开发操作系统、编译器,甚至是开发一种新的程序设计语言!“

三、再次,你学这些东西是为了将来实践并有产出的,而落实这个产出的东西就是编程语言,如果是入门,我首推 C/C++

你只有熟练使用一门编程语言,你才能将你的想法变成现实。

注意这里我把 C 和 C++ 放在一起,但是严格意义上说,C 和 C++ 还是有点区别的,但是除了语法上的一些细节差异,基本上可以认为是相通的。个人觉得 C 语言是所有想成为高手最应该使用的入门语言,不要和我说现在很火的 Python、Go 这类语言,“玄都观里桃千树,尽是刘郎去后栽”。我这里也推荐一本 C 语言方面的图书吧,有兴趣的可以参考一下:《C 语言程序设计:现代方法》。

至于谭浩强的书就不要提了,还有就是大部头的《C++ Primer》,它虽然是一本好书,但实在是太大部头了。语法层面的东西学会很快,stl 库的东西需要实战,也不是翻这类字典一样的书就能很好地掌握的。

当然,如果你想掌握好 C++,《深度探索 C++ 对象模型》是一定要看的。

C++ 实际编码技巧还有另外一本非常好的书,介绍了常见的 C++ 编码技巧《提高 C++ 性能的编程技术》,建议 C++ 开发的把书中说的技巧全部掌握。

四、接着说,我们再说说网络方面的,首先网络基础方面的书籍,我就没啥推荐了,现在很多计算机学院也开始使用《计算机网络:自顶向下方法》这本不错的教材,如果没有看过的可以看下。

当然还是那句话你一定要看懂而不是看完。比如三次握手和四次挥手的细节,你一定要很清楚。然后你就可以找一本网络编程的实战书来看下,如果你没有使用任何socket api编程的经验,你可以看看韩国人尹圣雨写的这本《TCP/IP 网络编程》,这本书从基础的socket api介绍到比较高级的io复用技术,有非常详细和生动的例子。如果你是初级水平,强烈建议看看这本书。网络编程的细节需要注意的地方实在太多了,这本书上都有介绍。很多人尤其是一些学生,写了一些可以相互聊天的小程序就觉得自己熟悉网络通信了,但是这类程序拿到互联网上或者离开局域网,不是连接出错,就是数据总是收发不全。我当年也是这么过来的,看看这本书,你就能明白许多网络故障的原因。

等你有了一定的网络编程以后(熟练使用常见socket API),你可以看看游双的《Linux 高性能服务器编程》,这本书给没有基础的人或者基础不扎实的人的感觉是,尤其是书的前三章,这书怎么这么垃圾,又把网络理论书上面的东西搬过来凑字数,但是如果你有基础再按照书上的步骤在机器上实践一遍,你会发现,真是一本难得的、良心的书,桃李不言下自成蹊吧。如果你掌握了这本说上说的这些知识,你再看陈硕老师的《Linux 多线程服务端编程》或者去看像libevent这样的开源网络库,你会进一步的得到提升。这也是我学习网络编程的一些经验和经历吧。注意这里有必要提一下:像UNP、APUE、还有《TCP/IP 详解》这一类书,如果你将来不是专门做网络方面的工作或研究,其实是非常不建议抱着他们看的,因为部头太大,其次太多理论和Unix的东西,花的时间产出投入比很低的。

五、接着说,以上说的都是一些基础的东西。其实不管是什么开发,后台开发也不例外,你都是需要基于特定的操作系统的,这里不提 Windows 系统,单单拿 Linux 操作系统来说,既然你选择做这个方面的开发,你需要熟悉这个操作系统平台提供的一些常用的 API 函数,网络通信方面上文已经说过,除了网络通信还有如操作文件、操作内存、字符串操作、进程线程系列、线程同步系列(如互斥体、条件变量、信号量)、管道等常用的各种API接口函数。这里的意思是,不是要你背诵记忆每一个接口函数的签名,而是你要知道何时该用哪个接口,如何用,有什么注意事项

我入门的时候看的是 Robert Love 的《Linux 系统编程》,熟悉这个人的应该知道,Google 的工程师,他还有另外一本非常有名的书《Linux 内核设计与实现》。

六、最后,我强调一下,如果你是快毕业的学生,面临着找工作的压力,应该以算法和数据结构为主。如果你是大一大二或研一这个阶段的学生,我上面推荐的书,你还是可以考虑好好咀嚼一下,标准是看懂而不是看完。

七、再补充一些我觉得要成为高手应该要掌握的东西,先说汇编。虽然第三代第四代语言越来越多,硬件性能越来越好。但是如果你熟练掌握汇编,你就比其他人多很多优势,你会能透彻地知道你写的每一行 C/C++ 代码背后的机器指令的效率。无论是做安全工程还是自己技术提升上都是非常不错的。这里推荐一本王爽老师的《汇编语言(第 3 版)》,这本书不厚,语言通俗易懂,你也不用刻意去记忆,基本上当小说书看一下就能很快看完了。汇编实战类图书还有另外一本《老码识途:从机器码到框架的系统观逆向修炼之路》。我个人是非常喜欢这本书的。当年读这本书的时候,真的有一种“笑看妻子愁何在?漫卷诗书喜欲狂”的感觉。尽管那个时候连女朋友都没有——!

另外补充一些看过经典书籍:

  • Linux 内核情景分析》毛德操老师的书,非常的实在。
  • 编译系统透视:图解编译原理》,编译原理方面的实践书。
  • 编程之美》,关于面试的,主要是一些算法和逻辑思维题实战。
  • 重构:改善既有代码设计》,没有实际写代码经验不推荐看。
  • 程序设计实践》这本书特别推荐学生看一下,能大幅度地提高你实际编码的技巧和编码风格。
  • 代码整洁之道》同上
  • 大话设计模式
  • Effective C++》系列
  • 计算机组成与设计:硬件软件接口

我码这么多字,希望广大的开发者注重基础,勿在浮沙筑高台。尤其是学生,你有大把读书的机会,一定要珍惜大学时光。毕竟工作以后,尤其是毕业后,面临着工作、家庭等各种问题,你可能再也没有心思和完整的时间去学习和提升了。所以前期的积累很重要,毕竟选择技术这条路,提高技术是升职加薪改善生活水平最直接的方法。

完整的书单及获取方式:

计算机必看经典书籍(含下载方式)​

原创不易,帮忙点个赞呗~

定位后端开发,有哪些书籍值得推荐?相关推荐

  1. 做销售该看什么书?有哪些销售管理的书籍值得推荐?

    做销售该看什么书?有哪些销售管理的书籍值得推荐? 这是很多做销售的朋友经常会问到我的两个问题. 我们今天先从销售工作的性质和成功销售的基础以及销售所需的技能说起,然后再说说我为什么推荐<销售管理 ...

  2. 提高沟通表达能力该看什么书?有哪些沟通书籍值得推荐?

    提高沟通表达能力该看什么书?有哪些沟通书籍值得推荐? 提高沟通表达能力的书籍,我只推荐你看这一本:<沟通与说服必读12篇>. 并且仅此一本就足够了. 之前我也看过很多沟通方面的书籍,并且几 ...

  3. 商业模式有哪些好书?有哪些商业模式方面的书籍值得推荐?

    商业模式有哪些好书?有哪些商业模式方面的书籍值得推荐? 在笔者看来,有关商业模式方面的书籍最值得的推荐的就是来自12Reads的<商业模式必读12篇>了. 要说经典恐怕没有比这本书更经典的 ...

  4. 自学管理学有哪些书籍值得推荐?

    自学管理学有哪些书籍值得推荐? 首先,要摆正的一个观念是,自学管理学并非很多人想象中的那么难,其实还是挺简单的一件事儿(只要你有恒心和一定的毅力). 其次,对于「如何自学管理学」这个问题,我推荐你从阅 ...

  5. 有哪些人际关系书籍值得推荐?看完这两本书你也能成为社交高手!

    要想提高人际关系和社交能力,阅读确实不失为一个好办法. 但是问题是该看什么书呢? 有哪些人际关系书籍值得推荐? 笔者强烈推荐<情商必读12篇>和<沟通与说服必读12篇>这两本书 ...

  6. 有哪些经典的企业管理书籍值得推荐?

    现在的企业管理书籍层出不穷,常有令人眼花缭乱之感,但笔者认为最值得推荐的还是12Reads系列. 对于企业的管理者而言,读书或参加培训的意义无非是为了实现个人能力提升和知识体系的完整构建,而在这两点上 ...

  7. python运维开发项目_GitHub上值得推荐的8个python 项目

    GitHub 无疑是代码托管领域的先行者,Python 作为一种通用编程语言,已经被千千万万的开发人员用来构建各种有意思或有用的项目.以下我们会介绍一些使用 Python 构建的GitHub上优秀的项 ...

  8. 前端开发工程师书籍值得推荐,你是否都看过叻?

    <AngularJS权威教程> AngularJS权威教程 AngularJS权威教程是学习AngularJS的公认经典,内容全面,讲解通俗,适合各层次的学习者.作者拥有丰富的Angula ...

  9. 有哪些营销书籍值得推荐?市场营销人员必读书单

    作为一名资深营销人士,看过的营销管理类书籍实在太多,但大部分读过之后都没有什么印象了,更难谈有什么收获.今天给大家推荐的这些书个人认为都是经典,对市场营销人员的专业能力提升会有很大帮助. 1.< ...

最新文章

  1. 华为实施微服务架构的五大军规
  2. UA MATH567 高维统计 专题1 Supervised PCA Regression概述
  3. 802.11协议精读5:隐藏终端和暴露终端
  4. Linux 修改yum 源
  5. Mybatis的模糊查询
  6. 安装低版本的R语言、和自行下载安装各个版本的R语言包、以及多环境运行R
  7. POJ培训计划2253_Frogger(最短/floyd)
  8. 2019年江苏省计算机一级考试题目和答案,江苏省计算机等级考试一级2019年(春)...
  9. 创建对象 --- 构造函数模式
  10. Spring MVC-学习笔记(1)认识spring mvc
  11. 怎么理解知行之桥EDI系统的端口?
  12. 了不起的 Java VM-Java 虚拟机初探
  13. S7-200SMART PLC与V20变频器MODBUS通讯示例程序
  14. 计算机组装小游戏,电脑组装店游戏
  15. Apache Flink®极简教程: 架构及原理 Stateful Computations over Data Streams
  16. 经典的面板数据集(R语言包plm)
  17. css动画效果制作正方体旋转相册
  18. 人脸识别解锁能用照片绕过?华为、三星、小米、HTC等均上榜
  19. php判断用户是微信浏览器还是其他浏览器,PHP区分企业微信浏览器|普通微信浏览器|其他浏览器...
  20. Codeforces1422 F.Boring Queries(根号分治+线段树+可持久化线段树)

热门文章

  1. 在C4D和Keyshot中保存产品模型到预设库多次重复使用
  2. linux 查看日志文件
  3. 在找工作的过程中,面试一定要经历的逻辑推理题...
  4. 温故而知新!java面试思维逻辑题
  5. 链表动画演示 等比数列 linux视频等
  6. 【Proteus仿真】51单片机+PCA9685 16路舵机控制
  7. 证件照半身照合成服装PNG素材-463张
  8. 【有限元分析】风力发电机塔筒筒体校核——matlab雨流计数法
  9. 判断当前是否是缅甸语
  10. 生活随记 - 台风里最可爱的人