从今天起,换一种轻松有趣的方式学习计算机底层技术!
大家好,我是轩辕之风。
告诉大家一个好消息,我的 《趣话计算机底层技术》 系列技术故事图书终于出版了!
印刷厂新鲜出炉的第一批图书,已经上线京东、当当啦!
你还记得那个CPU一号车间的阿Q吗?这一次它要继续讲故事给你听啦!
创作起源
我为什么要写这本书呢?
在很多年前,我就发现了一个现象:当我们去学习一个新的技术时,会有一大堆的技术名词和专业术语向我们袭来。而当我们试图去学习和理解它们时,网络上的各种学习资料,要么是非常晦涩的原理阐述,要么是大段的代码讲解,看得云里雾里。在我们对一项技术还没有一个全局和整体的认识之前,一下就陷入到细节中,对新手学习的效率和信心都有不少的负面影响。
除此之外,还有一个类似的现象。在工作中经常会有技术分享和技术讲座,很多时候,负责分享和讲述的人都只顾着单方面的信息传输,把自己要讲的东西说完就算完事,至于下面的人听懂没有听懂多少,似乎并不关心。
上面的两个现象,在我十一年的编程生涯中,就经常遇到。
每到这个时候,我就在想:为什么不能站在读者/观众的角度来想一想呢,想一想什么样的方式更容易让他们接受和理解。如果是我来讲、我来写,该用什么样的语言让大家更好理解呢?
后来,我总结了自己的一套方法,那就是举例子、打比方、讲故事,把一个晦涩的概念用我们熟知的事物表达出来,去削弱技术名词本身的神秘感,让我们能快速知道这个技术是干啥的,解决什么问题的,然后才是它具体是怎么工作的。
运用上面的表达方式,我曾经在大学的时候通过远程语音讲述,帮助一个学经济学专业的高中同学从零基础学C语言考过了计算机二级考试。
我们再来看另外一个问题。
在我面试过的很多人中,也包括如今的互联网上,我发现很多程序员都在忙着学习各种编程语言、各种开发框架和各种中间件的使用,却对计算机底层相关的技术知之甚少。我思考造成这一现象主要有几个原因:
1、很多程序员都是半路出家,没有系统化的学习过计算机底层知识。
2、科班出身的程序员,大学里陈旧的教学方式让大家对这些底层技术提不起兴趣。
3、实际工作中的很多岗位,只需要CRUD能力就足矣,对计算机底层技术没那么看重。
由于这些原因,很多程序员的基础知识薄弱,在工作中涉及技术原理性的时候就会发现不足。
比如项目中遇到性能瓶颈,不知道从何入手优化。又比如遇到了稀奇古怪的bug,不知道该用什么方式排查定位。
随着越来越多新人的加入,计算机软件开发行业竞争也越来越激烈,只靠CRUD技能很大程度上会限制程序员们在技术领域的发展。而学习了解这些底层技术知识,修炼好程序员的内功,可以帮助我们知其然还能知其所以然。
举个简单的例子,如果不知道零拷贝技术和I/O多路复用技术底层的原理,就很难理解Nginx为什么能支持高并发。
由于我从事的是网络安全方向的软件研发工作,经常会与计算机底层技术打交道,像是CPU、操作系统内核等等,但这些东西通常给人的印象就是艰深、晦涩。所以我就在想,我能不能试着用通俗易懂的方式去把这些晦涩的东西讲清楚?
在2019年底的时候,我注册了一个微信公众号:编程技术宇宙,开始尝试用写故事的方式去讲述编程相关的技术知识。
刚开始的时候方向比较分散,没有什么起色。后来我开始专注在计算机底层相关的方向上,开始受到不少好评,尤其是我的CPU系列故事,吸引了很多粉丝的追更,并在CSDN、博客园、知乎等平台获得多次精选推荐。
后来不知不觉就写了一百多篇故事,帮助许许多多的读者解锁了原来一直感觉很艰深难懂的知识,对我而言也是很有成就感的一件事。
在这期间,还发生了一个让我感动的小故事。
一位叫“未来永劫”的网友,由于非常喜欢我的这些用故事讲解技术的文章,特地把公众号里这几个系列的文章打印了出来装订成了一本“书”寄给了我。
看着自己创作的内容变成手里沉甸甸的一本书,心里还是非常开心和激动的。那时候就在想,要是以后真能写一本书就好了。
让我没想到的是,后面陆陆续续就有很多出版社的老师找到了我,让我出书。
在这些老师之中,有一位引起了我的关注,他就是策划了《码农翻身》、《漫画算法》等知名书籍的姚新军(@长颈鹿27)老师。这些书我都自己买过,非常喜欢。更重要的是,姚老师就在成都,沟通联系都很方便。
于是我们就线下约了一次,姚老师对我的创作内容很认可,也给了我很多写书方面的介绍和建议,我们俩聊的很高兴,于是我决定继续创作更多计算机底层技术文章,汇集成大家手里看到的这本书。
在创作过程中,我始终坚持有趣、有用、严谨并抓,经常一个故事写完自己读的都不满意,然后推倒重写,里面的插图也是一改再改,力求给读者一个更舒适流畅的阅读体验。也因为这个原因,导致我的交稿时间一拖再拖,好在出版社老师也很支持理解我。
本书特色
这本书主要是用故事的方式讲述计算机底层相关的技术,用通俗易懂的表达方式帮助大家学习底层技术。
故事的主人公可能是计算机里的一个程序、一个进程、一个线程、一个函数、一个数据包、一个文件等这样的软件角色,也可能是CPU、内存、网卡等这样的硬件角色。本书透过这些角色的视角去讲述发生在计算机世界里的故事,在故事中学习和了解计算机底层技术的工作原理。
在选题方面,我挑选了一些跟咱们程序员日常工作密切相关的主题,让大家不仅是看完一个故事,还能够对工作产生一些帮助。
整本书由几十个故事构成,故事之间既有关联性,让大家像“追剧”一样学习技术,也有一定的独立性,让你随时翻开一篇都能看下去。
本书主要涵盖计算机中的CPU、存储、I/O、操作系统、系统编程、安全六个主题,每个主题一章,你不必从头到尾逐篇阅读,完全可以挑选自己感兴趣的任何章节开始。
书和公众号区别
可能很多人会有一个疑问:这本书和公众号文章有什么不同?
我的公众号文章,讲故事的总共有三个系列,分别是“趣话计算机底层技术”、“趣话网络安全”、“趣话编程技术”,这本书节选了部分前两个系列中的优质文章。
但如果仅仅是汇集旧文章,那可交代不过去,在汇集的同时,也对很多内容进行了修改发散,并且扩充了很多新的故事进去,让整个内容更成体系。这里面就有很多公众号从未发布的新内容,欢迎大家去发现。
感谢
最后我要感谢的是一路以来一直支持我的读者朋友,是你们的每一个点击,每一个在看,每一条留言,每一个赞赏、每一个分享才有了这本书的诞生。
你们写下的每一句留言都是支撑我坚持下去的力量:
如果大家厌倦了传统的计算机组成原理和操作系统书籍,想要换一种轻松有趣的方式学习这些底层知识,不妨入手一本。而且现在618期间,京东和当当网都在搞五折活动,非常划算。