了解编程的历史的必要性
了解编程的历史,当然是有用的,而且很有用。
我先对编程的历史做个定义:计算机硬件发展的历史、程序语言发展的历史,
计算机科学理论的发展历史、软件工程的发展历史等。
我要拿出哲学三大问题镇楼了:从哪里来,到哪里去,是什么?
万事万物,都不是凭空产生的,尤其是计算机这门人造的科学。
了解历史,可以让你明白当下所用技术的起源,以及它的出现是为了解决什么问题,
从宏观上把握这门技术,可以让自己了解该技术在计算机领域知识体系中的位置,
明确这门技术的边界在哪。明白这些问题,可以让你更好的掌握和应用这门技术。
了解从哪里来,才能对“是什么”,“到哪里去”有自己的判断,才不至于迷失在技术的细节中。
当你做技术选型的时候,你才可以更好的选择适合自己当前场景的那门技术,
因为你知道该技术的存在是解决了什么样的问题,
适合什么样的场景。
比如说,看题目的标签,有javascript,就拿javascript举个例子。
假如你不了解编程历史,你上来直接学习什么现在最流行的概念,async/await,
你确实可以通过示例很快上手,甚至可以用的很溜,但是假如你了解浏览器的演变,
事件编程模型的各种进化,你会对这些概念有触及到本质的深刻理解,
而不至于迷失于现在前端界风云变幻的各种名词概念中。
再比如,现在很多人在吐槽动态语言的性能,虽然这是事实,但是你了解点历史,
你完全可以理解那些动态语言为什么那么慢了,省下吐槽的时间来多学点东西。
比如Ruby语言,当初Matz在设计他的时候,正是考虑到摩尔定律,认为CPU、
内存等硬件这些在未来都不是个事,所以他以牺牲性能来换取程序员可以快乐的编程。
而有的语言,从设计之初就是为了内存安全,比如Rust,
有的语言天生就是为了高并发,比如erlang和golang,
了解这些语言发展史,可以让我们正面的去面对各种语言的缺陷,拥抱它们的优势。
针对题主说,“虽然知道,但是感觉无用”,在学习相关历史的时候,你得思考呀,
知识需要内化,需要和你现在学习到的内在知识体系挂钩呀。
我先对编程的历史做个定义:计算机硬件发展的历史、程序语言发展的历史,
计算机科学理论的发展历史、软件工程的发展历史等。
我要拿出哲学三大问题镇楼了:从哪里来,到哪里去,是什么?
万事万物,都不是凭空产生的,尤其是计算机这门人造的科学。
了解历史,可以让你明白当下所用技术的起源,以及它的出现是为了解决什么问题,
从宏观上把握这门技术,可以让自己了解该技术在计算机领域知识体系中的位置,
明确这门技术的边界在哪。明白这些问题,可以让你更好的掌握和应用这门技术。
了解从哪里来,才能对“是什么”,“到哪里去”有自己的判断,才不至于迷失在技术的细节中。
当你做技术选型的时候,你才可以更好的选择适合自己当前场景的那门技术,
因为你知道该技术的存在是解决了什么样的问题,
适合什么样的场景。
比如说,看题目的标签,有javascript,就拿javascript举个例子。
假如你不了解编程历史,你上来直接学习什么现在最流行的概念,async/await,
你确实可以通过示例很快上手,甚至可以用的很溜,但是假如你了解浏览器的演变,
事件编程模型的各种进化,你会对这些概念有触及到本质的深刻理解,
而不至于迷失于现在前端界风云变幻的各种名词概念中。
再比如,现在很多人在吐槽动态语言的性能,虽然这是事实,但是你了解点历史,
你完全可以理解那些动态语言为什么那么慢了,省下吐槽的时间来多学点东西。
比如Ruby语言,当初Matz在设计他的时候,正是考虑到摩尔定律,认为CPU、
内存等硬件这些在未来都不是个事,所以他以牺牲性能来换取程序员可以快乐的编程。
而有的语言,从设计之初就是为了内存安全,比如Rust,
有的语言天生就是为了高并发,比如erlang和golang,
了解这些语言发展史,可以让我们正面的去面对各种语言的缺陷,拥抱它们的优势。
针对题主说,“虽然知道,但是感觉无用”,在学习相关历史的时候,你得思考呀,
知识需要内化,需要和你现在学习到的内在知识体系挂钩呀。
下一篇:如果你很牛或者不够牛!
声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。
文章热度:★★☆☆☆
文章难度:★★☆☆☆
文章质量:★★☆☆☆
说明:系统根据文章的热度、难度、质量自动认证,已认证的文章将参与打字排名!
本文打字排名TOP20
登录后可见
用户更多文章推荐
- 注意力高度集中2017-01-26
- 笔记本电池的保养误区2017-01-26
- 程序=算法+数据结构2017-01-24
- 对对象的理解2017-01-23
- 数据结构开篇2017-01-23
- 如何学好数据结构?2017-01-23
- 为什么会有一些很漂亮的女孩子当性工作...2017-01-22
- 你具备了刷题的知识结构了吗?2017-01-21
- 动态语言与静态语言的区别2017-01-21
- 而立之年我做了什么事以及要做的事2017-01-21
- (上)正确的做事与做正确的事同样重要2017-01-21
- 如何深入理解设计模式2017-01-21
- 谈谈你对OOP的理解?2017-01-21
- 中国为什么没有自己编程语言?2017-01-20
- 谁才是计算机之父2017-01-19
- 现代计算机的终极形态2017-01-19
- 苹果六招干掉了诺基亚(一)2017-01-19
- 数据结构在内存中的表示2017-01-19
- 赵薇玩影视与贾跃亭造车,到底哪一个更...2017-01-17
- 如果你很牛或者不够牛!2017-01-17