novakon作者
10年2个月前修改于 10年2个月前IP:广东
826063
23楼
然后是“绝对不要钻研微机原理”,好吧其实微机原理很酷,搞懂x86处理器和系统总线,对设计操作系统有很大帮助。搞懂存储器和网络适配器对设计数据库和分布式系统有很大帮助。
所以,我觉得还是删掉第二条吧,在我想到更好的表达方式之前。
-----
其实一个程序的写法,是随着计算架构在不断变迁的。比如说高性能计算会用到GPU,GPU就不能当图灵机来用(也不是不行,就是特别慢),因此给GPU编程就需要专门的语言,也需要了解GPU原理及架构。
-----
计算机的架构发生变化的一个主要原因,就是摩尔定律输给了量子物理,图灵机的工作频率不能无限制地提升。于是程序员们想了很多办法,把原来串行运行的程序一点点地修改,让它们适应并行架构,以充分利用并行架构带来的性能提升。
-----
随着技术的进步,计算机科学家们提出了很多新的思路,比如程序可以仍然按照串行方式书写,然后自动转换为并行形式运行。古有Erlang, OpenGL, 今有MapReduce, TenserFlow, 其实都是这个意思。
-----
那么随着时间的流逝,也许有一天我们可以用某种很高级的语言,比如现代汉语,告诉计算机应该做什么。我们只需要描述程序逻辑,背后的并行化、运行时优化都是自动的,运行速度也快得吓人。
-----
到那时,程序员最重要的能力就是逻辑和抽象能力,而完全不需要了解系统底层架构(反正优化都是自动的,速度很快,要干啥都行)
-----
但是我仔细想了一下,这是不符合经济学原理的。计算机系统就算再快再廉价,也无法满足人类的无限需求,换言之“怎样让同一个程序跑得更快”将成为永恒的话题。换言之,50年之后我们仍然需要很多通晓计算机原理的人才。
评论
文号 / 826063

万流景仰
名片发私信
学术分 16
总主题 1270 帖总回复 8407 楼拥有证书:学者 机友 笔友
注册于 2008/03/29 15:34:00最后登录 2022/01/09 14:09:34
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

已走,勿送

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的