学计算机基础的重要性,论计算机基础的重要性
为什么写这篇⽂章
受《⼤学计算机:计算思维导论》的启发, 对计算机科学有⼀个全局的景图,了解计算机是从哪⾥来的, ⼜如何发展到今天。要深刻的理解⼀个事物,要追本溯源(第⼀性原理),以发展的眼光把握事物的发展历史, 站在巨⼈的肩膀,站得⾼,望得远。
《⼤学计算机:计算思维导论》给我带来了宏观的计算机景图。计算机来源于数学, 其理论基础之⼀是数理逻辑,⽽数理逻辑体系的发展历史背后有⼀条主线——⼀条漫长的历史长河,沿着这条河流回溯⽽上,将会遇到历史⼈物——布莱尼茨、布尔、弗雷格、图灵、⾹农(感兴趣的,强烈推荐科普书 逻辑的引擎)。19世纪的布尔最伟⼤的成就在于将逻辑代数化,构建了逻辑体系。 该逻辑体系下, 与、或、⾮构成了基本的逻辑符号, ⽽这是计算机数字电路的理论基础。 20世纪的⾹农发表了论⽂《对继电器和开关电路中的符号分析》,论证了构造与、或、⾮电路的可⾏性。
汇编语言要什么基础沿着逻辑电路顺流⽽下,可以看到更为开阔壮观的景象。与、或、⾮门 构建了更复杂的集成电路, 如 译码器 和 加法器,译码器可⽤于寻址技术,加法器是最基本的计算单元。复杂电路的集成构成了现代计算机, 现代计算机的模型是冯诺曼依体系,计算机设备由、输⼊、输出、控制器、计算器、存储组成。在硬件的基础上, 操作系统是对底层硬件的抽象。⾼级语⾔是对汇编语⾔的抽象。 算法和系统⼯程构建
于⾼级语⾔之上, 并结合⽹络原理,构建了现代互联⽹ 。 现代互联⽹已经深刻的影响了⽣活⽅式和⽣产⽅式。 基于这条主线,可以清晰的看到计算机的发展全貌以及理论基础。
⽽庆幸的是,我⼤学教育的课程已经提供了这⼀条主线。但悲剧的是:在⼤学时代, 但没有意识到课程连接起来形成这⼀条主线,贯穿着计算机的发展历程。 当然,现在意识到这⼀点,为时未晚, 这也是我写这篇⽂章的初衷,也希望更多⼈看到计算机基础的重要性!
什么是计算机基础
记得在⼤学时代修过的计算机核⼼课程:《模拟与数字电路》、《计算机组成原理》、《计算机体系结构》、《操作系统》、《编译原理》、《数据结构》、《数据库原理》、《⽹络原理》。当时的印象⽐较深刻的是《模拟与数字电路》,学起来枯燥, 要基于与、或、⾮门实现各种复杂的电路, 想想脑袋都疼!这些课程环环相扣,《模拟与数字电路》是《计算机组成原理》的基础, 《计算机组成原理》是《计算机体系结构》的基础,这三门课程是偏向于底层硬件实现;⽽《操作系统》是对底层硬件的抽象和扩充;《编译原理》是对⾼级语⾔的翻译;《数据结构》是算法的基础;⼯程实现依赖于《数据库原理》;《⽹络原理》提供的⼴域⽹、局域⽹服务,是现代互联⽹的基础设施。 在冯诺曼依体系下,这些基础课程现在不过时、未来也仍然不过时, 它们提供了⼀个全局的视⾓,去洞察计算机的本质!
⼤学时代还学习了数学的基础课程:《离散数学》、《微积分》、《线性代数》、《概率论》。《离散数学》是计算机领域建模的有利武器,例如:图论是建模的必杀技,⼈⼯智能的理论基础之⼀就是数理逻辑。 在机器学习领域, 梯度下降法可以看到《微积分》的影⼦。《线性代数》是机器学习的基础之⼀。 《概率论》和 《统计学》为机器学习开创了另外⼀个⽅向,如:贝叶斯模型。计算机是源于数学,⽽数学⼜是建模的⼯具。现实⽣活的问题千变万化,从计算机的视⾓去解决这些问题, 就得对问题进⾏ 抽象, 然后利⽤数学建模, 建⽴⼀套理论基础, 进⾏演绎推理, 在理论层⾯上证明了可⾏性之后, 然后再进⾏⼯程实践。 这⼀过程经历了  抽象->理论->设计,这是认识世界得科学⽅法。 也只有通过科学的⽅法去认识世界, 我们才能改造世界。
我认为:以上课程是计算机的基础。计算机来源于数学, 计算机是我们改造世界的有利武器,  ⽽现代计算机基于 坚实的理论 构建的。 学习这些课程, 不仅可了解计算机的来龙去脉, ⽽且提供了思想的源泉,掌握科学的⽅法,站在更⾼的视⾓, 触达计算机的本质。
为何计算机基础重要
21世纪, 进⼊了知识爆炸的年代。 计算机领域也⼀样, 技术更新迭代的速度如同⽕箭的速度⼀样。 新的技术框架和组件层出不穷。但是,万变不离其宗,掌握扎实的基础,⾯对技术浪涌,也能应对⾃如!
从世界范围内来看,知名院校计算机学院都会开设上述基础课程, 例如:国内的清华、北⼤, 美国的MIT、伯克利、斯坦福、CMU。 这些课程开设的⽬的就是夯实理论基础,才能构建宏伟建筑。罗马不是⼀天建成的,但是没有基础, 罗马不可能建成的!
快速学习能⼒的提升依赖于扎实的计算机基础。 这是⼀个需要终⾝学习的年代,不仅要关注学习本⾝, 还得关注学习效率的提升。基础夯实, 意味着⾯对技术潮涌,也能应对⾃如。 ⾦融领域的技术, 技术难点之⼀就是实现数据⼀致性, 数据⼀致性依赖于事务, 最基础的⼀致性模型就是分布式事务, ⽽分布式事务的基础是 本地事务, 《数据库原理》就提供了本地事务的基本原理。 如果理解了本地事务原理,学习分布式事务理论就事倍功半。 在《操作系统》中, 有⼀个最基本的模型:⽣产者-消费者,⽽消息队列的实现本质上也是 ⽣产者-消费者模型。⽣产者-消费者模型实现了空间和时间的解耦, 应⽤场景⼴泛,例如:异步解耦、削峰、数据⼀致性、数据通道。如果掌握了扎实了数学基础,要转型算法⼯程师、从事数据挖掘、机器学习等⾏业, ⾯对眼花缭乱的数学公式, 也可从容不迫!其实,各⾏各业都⼀样,根基稳固了, 学习能⼒⾃然就提升了!
计算机基础是否扎实决定了职业⽣涯能⾛多远!程序员的圈⼦总是有⼀种焦虑感,程序员是年轻⼈的天下、35岁达到职业瓶颈期。如果花5年甚⾄10年重复得⼲CRUD⼯作,每天忙碌于解决线上问题、修复Bug, 职35岁能不到达职业瓶颈? 为什么计算机基础扎实了, 有助于职业⽣涯⾛得更远? 这得从计算机思维说起。 基础不仅仅带来的是理论知识, 更重要的是带来了思维⽅式的提升。 其中最重要
的两个思维是:⾃动化思维和抽象思维。
计算机是按照指令顺序⾃动执⾏,⾃动化思维的启⽰是解放双⼿、关注核⼼的项⽬,能⾃动化的事情就应该⾃动化。  计算机领域层有出不穷的⾃动化⼯具,充分利⽤⾃动化⼯具, 解放双⼿,就解放了焦虑, 做更有意义的事情,才能有更⼤的成长空间。
抽象思维,解决复杂问题的利器!为什么有些⼈是⾏业专家, 指点江⼭?为什么有⼈是架构师,⾼屋建瓯?为什么有些⼈只是⾟勤的搬砖族? 本质的区别在于抽象思维。⾏业专家制定⾏业标准 , 例如 ⽹络原理的七层模型, 构建该模型⾸先得具备抽象能⼒,分层的边界是什么? 每⼀层具体的职责是什么?各层之间如何交互。 架构师解决系统架构问题, 就得摸清系统的边界? 系统的职责是什么? 系统之间如何通信?应⽤哪些技术组件? 这些都需要抽象思维,站得⾜够⾼, 才能望得⾜够远。 ⽽计算机基础可以训练抽象思维(话题太⼤了, 后期单独介绍)。是否具备抽象思维 决定了你是陷⼊忙碌的死循环 还是 做更有意义的事情, 也同样决定了你是⾟搬砖族 还是 ⾼屋建瓯者!
路漫漫其修远兮,吾将上下⽽求索!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。