大学里,自己能独立写出几个项目,感觉自己技术特牛逼了,相比那些认真学基础知识却没有什么项目经验的同学,心里还有丝丝优越感。工作一年多,发现正是当初的自以为是,让自己在开发中走了不少弯路,踩了不少坑。因此,结合自己的情况,我理了一个书单,准备弥补下自己的基础知识。
数据结构与算法
书名:《算法(第4版)》
作者:Robert Sedgewick / Kevin Wayne
书中介绍了基本的数据结构与算法,还具体给出了每个程序员应知应会的 50 个算法。
当然,也不能光看书,这样的话效果并不大好。看了部分内容后,可以试着去leetcode做一些算法训练,理论结合实践才能学得更好。
上面那本书偏实践一些,好处是简单好学,缺点是内容不大全,比如动态规划算法好像就没怎么提。所以看完上面一本书后,可以去看下这本书
书名:《算法导论(原书第3版)》
作者:Thomas H.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein
这本书更侧重理论一些,看完这本应该能进一步加深你对算法的认识。
操作系统
因为自己暂时不会接触操作系统相关的开发,所以只准备看下相关的基础知识,对操作系统的执行有个大致的认识即可。我选择的这本书
书名:《深入理解计算机系统(原书第3版)》
作者:Randal E.Bryant / David O'Hallaron
计算机网络
网络这块,光看书可能容易迷茫,所以能结合一些有趣的例子来学习效果会更好。因此,我准备从两个方面入手来学习:书籍和在线课程。
图书方面,我选择下面这本
书名:《TCP/IP详解 卷1:协议》
作者:W·Richard Stevens
课程方面,我订阅了极客时间里的专栏「趣谈网络协议」。
当然,还是不能光看或者光听,还是要试着做一些实践。
书名:《Wireshark数据包分析实战》
作者:Chris Sanders
这本书通过一些简单的网络案例演示了使用 Wireshark 进行数据包分析的一些方法。我们可以参考例子去实操下,加深对网络知识的理解。
数据库
数据库有 SQL 和 NoSQL 两种类型,目前准备主攻下前者。
我一般接触 MySQL 较多,所以选择这本书
书名:《高性能MySQL(第3版)》
作者:Baron Schwartz / Peter Zaitsev / Vadim Tkachenko
个人觉得这本书中有一些实践例子,用于 MySQL 的进阶学习还是比较合适的。
看完后,下面这本书也值得一看
书名:《数据库系统概念(原书第6版)》
作者:braham Silberschatz / Henry F.Korth / S.Sudarshan
看完工程性的内容后,再补下理论,对数据库应该会有更全面的认识。
数据结构与算法、操作系统、计算机网络、数据库,这些知识虽说是基础,但感觉掌握的人并不是太多。如果想在技术方面有所建树,这些都是避免不了的,所以,把学习当成一种习惯吧。日积月累,总会有收获的。
这篇文章是看了极客时间陈皓的专栏「左耳听风」的一点小结,希望能帮助到有需要的伙伴。
下面贴了文中所提到的专栏邀请二维码,有需要的自行订阅。你订阅后,我有一点佣金,不过在这里推荐更多的是对专栏内容的认可,不喜请忽略。
领取专属 10元无门槛券
私享最新 技术干货