我是靠谱客的博主 安静白开水,最近开发中收集的这篇文章主要介绍掌握计算机底层知识,为什么能让你的工作事半功倍?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对一个程序员来说,计算机组成原理、数据结构、算法、操作系统等几个课程,是必备的基础知识,位列在各大学计算机系培养计划的核心课程里。其中,“计算机组成原理”更是入门和底层知识的第一课。除了面试场景外,有哪些知识点是在工作中经常遇到的?


在这里我想强调下,底层原理知识不等于简单基础知识,或者说不等于不重要的知识。相反,组成原理是让你搞懂计算机的本质。


1.浮点数

浮点数这个概念涉及的很多问题,估计你常常遇到。比如,为什么计算金额的时候不能用浮点数,而要用定点数或者整数? 为什么在做机器学习、图形运算的时候,我们又会选择使用浮点数?BigDecimal是怎么回事儿?


2.字符编码

关于字符编码的问题:为什么我们会遇到乱码?页面上出现“锟斤拷“的时候可能是什么原因?我们平时说的Unicode和UTF-8分别是什么?无论是在Web页面展现,网络传输数据、日志文件,还是数据库层面,遇到中文乃至更多语言的乱码的时候,到底是哪里出错了?


3.I/O

在你遇到服务器性能调优的时候,很多时候瓶颈都在I/O,你会看到机器的 load 很高,看到io_wait 很大,那么这背后究竟代表什么含义?我们又应该从哪些角度去排查问题?为了服务的可扩展性,我们用 MongoDB 这样的分布式文档数据库,真的能够提高程序性能,解决我们的数据访问问题吗?我们遇到服务器的访问负载和压力时,必须更换成SSD乃至PCI-E的Flashcard这样的硬件,还是可以靠软件优化来解决?


我说的这些问题,你应该常常遇到。当然,除了上面那些,还有很多类似的问题,比如在设置数组大小的时候,为什么我们常常喜欢把尺寸设置成1024,来利用好高速缓存?又或者,我们在写程序的时候,为什么要考虑减少if...else这样的条件跳转,使得我们的基于预测的CPU流水线能够更加高效?学习组成原理,你需要理解的是,为什么在这个有着层出不穷的高级语言的时代,我们还要学习一点汇编,理解一点硬件,去寻找和预测未来这个行业的发展方向和机会。


除了上面的知识点,计算机组成原理整体来讲,到底在学什么?下面的内容出自极客时间专栏《深入浅出计算机组成原理》的内容整理,感兴趣的小伙伴可以扫码免费试读。


640?wx_fmt=png

△扫码免费试读或订阅


我们直接用肉眼来看,计算机是由CPU、内存、显示器这些设备组成的硬件,而大部分人工作后从事的是软件开发,显然,在硬件和软件之间需要一座桥梁,而“计算机组成原理”就扮演了这样一个角色,你只需要对硬件有原理性的理解,就可以信赖硬件的可靠性,安安心心用高级语言来写程序。


无论是写操作系统、编译器这样的硬核代码,还是写Web应用、手机App这样的应用层代码,你都可以做到心里有底。


640?wx_fmt=jpeg

如上图,学习组成原理之后,向下,你可以学习数字电路相关的课程,向上,你可以学习编译原理、操作系统这些核心课程。它会让你真正对计算机的知识有一个全局的了解。


当然,它还可以直接解决你在并发编程、性能优化中经常遇到的一些困惑,比如CPU Cache的原理是什么,CPU和I/O之间是如何通信的,虚拟内存是要解决什么问题。


计算机组成原理学习路线图


作为计算机底层知识第一课,当然不那么好啃,概念多,太抽象,难理解,不好学以致用。我身边不少想打好这门“硬核内功”的工程师,大都是买了资料,前面100页已经发黄了,后面500页从来没有打开过;不少非科班出身的程序员,直接说“这些书根本看不懂”,典型的“买书如山倒,读书如抽丝”。


下面这张思维导图,是《深入浅出计算机组成原理》的作者徐文浩老师制作的,他将零散的概念系统地整理在一起,可以帮你快速的掌握计算机组成原理相关知识点的全貌。

640?wx_fmt=jpeg

在专栏中,作者会通过3大模块,45篇文章,以日常工作实际场景+硬件发展历史+软件开发案例,深入浅出的为你讲解30+计算机组成原理的核心知识,教你真正看懂、学会、记住,从源头理解软、硬件的共同之处,洞悉性能问题的本质,学以致用。


这个课程上线几天的时间,已经近6000的订阅了,给大家申请的粉丝福利,限时优惠¥68(原价99)


640?wx_fmt=png

△扫码免费试读或订阅


徐文浩, BotHub.AI创始人,从7岁开始接触代码,近30年的码龄,相信他可以带你掌握计算机体系全貌。这个课程有多重要,给大家截取了一些小伙伴的想法,以及大家对专栏的期待。


640?wx_fmt=jpeg


在考研统考的4门核心基础课程中,极客时间已经出了数据结构与算法、操作系统,计算机网络相关的3门很受欢迎的计算机基础课程,这是第4门也是非常重要的第一课,等你做了多年开发以后,会发现,原来这么多年就是围绕这4门课程打转。


下面是专栏的目录,看着感觉很不错,理论和实践相结合。


640?wx_fmt=jpeg


“练拳不练功,到老一场空”。做一个真正的工程师,越早弄清楚计算机的底层原理,在你的知识体系中“储蓄”起这些知识,也就意味着你有越长的时间来收获学习知识的“利息”。长久的“复利效应”,会让你的未来走的更远更轻松。


从我这里订阅,有什么福利?

1、限时优惠 ¥68(原价 ¥99),2 杯咖啡的价格,助你打好这门“硬核内功”。


2、今日订阅,可加入「计算机组成原理学习小组」,仅限前500人,还可免费领取2019极客时间50G程序员进阶资料包,在公众号后台对话框,回复【计算机】领取!


640?wx_fmt=jpeg


640?wx_fmt=png

△扫码免费试读或订阅


成功不等于加班,奋斗也不等于996,关键在于你能解决了别人不能解决的问题。勤修“内功”,才能走的更加长远。


点击「阅读原文」,一起打通计算机学习的“任督二脉”。

最后

以上就是安静白开水为你收集整理的掌握计算机底层知识,为什么能让你的工作事半功倍?的全部内容,希望文章能够帮你解决掌握计算机底层知识,为什么能让你的工作事半功倍?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部