CPU的后记,程序员的未来之计
渔家傲
塞下秋来风景异,衡阳雁去无留意。四面边声连角起,千嶂里,长烟落日孤城闭。
浊酒一杯家万里,燕然未勒归无计。羌管悠悠霜满地。人不寐,将军白发征夫泪。
作者:良知犹存
转载授权以及围观:欢迎添加微信公众号:Conscience_Remains
1
周日写了一篇CPU的文章,为了它三天看了一本四百多页的技术书,又看了几篇文章和几个小时的视频资料,然后结合自己掌握的知识浓缩到两千字去变成一篇文章,既是整理自己的知识,也是分享给大家。谈不上多好,就是分享给大家而已。
不过巧的是,通过写这篇文章中对计算机历史发展的梳理,我甚至产生了些感慨,一些思考,通过写这篇文章,我重新认识了计算机的历史,芯片发展,编程方式的发展。通过这些历史的进程,我隐约琢磨了一点,自己对未来硬件和程序发展的一些见解。
2
从这篇写的文章中,从开头介绍三极管,再由三极管组合成的电路抽象到逻辑门,再抽象到简单的累加器、锁存器,再抽象到ALU、内存。一层层的封装,意味技术的发展迭代,而对应的编程方式也由从最开始的穿孔卡,再后来用存储器,从编程人员一点点计算机器码,到更加抽象化的编程语言的流行,汇编开始之后,70年代出现C和Smalltalk;80年代有C++、Objectivs-C和Perl;90年代有Python、Ruby和Java;2000开始出现Swift、C#、Go。
从硬件的摩尔定律开始,芯片的晶体管的管数量都翻倍的变化。硬件发生了倍增,软件开发的语言也开始对应的大幅度的脱离底层开发,每一种新的语言都让开发者傻瓜式的配置现有的硬件,而去用大量的时间去开发我们硬件无法达到的地方。我们都学过一篇文章,就是以前有个人发明了国际象棋,国王要给他赏赐。相传古印度的一位国王因为象棋的发明而赏赐象棋的发明者(一说为西萨,一位古印度宰相),此人要求国王根据数米问题的答案赏赐他粮食。国王起初认为他要求的赏赐过少,但是后来仓库管理员发现这个人要求的粮食比国王国库里的粮食多出上千倍。
软硬件的变化,这其中的本质,我感觉可以用几句话来概括,就是通过空间来换时间,释放计算机的计算能力,把开发人员从繁琐的底层解放出来,让我们更多从事逻辑层面。
我是从底层起来,所以平时对一些内存空间的应用比较苛求。但是经过这些知识对我的洗礼,我开始对未来技术的走向有些预测,未来的CPU和编程语言,大概率就是用空间换时间,用大容量的计算去把精简时间。比如现在很热门的算法,芯片公司直接用设计算法电路到芯片里面,大量的开发人员直接进行配置开发就可以,剩下时间去做更多时间的思维模式更智能开发。
甚至现在出来的GPT-3:
生成式预训练变压器3(GPT-3)是一种自动回归 语言模型,使用深度学习生成类似于人的文本。它是由OpenAI创建的GPT-n系列中的第三代语言预测模型,OpenAI是一家位于旧金山的盈利性人工智能研究实验室。GPT-3的完整版本可容纳1,750亿个机器学习参数。GPT-3于2020年5月推出,并于2020年7月进行Beta测试, 是预训练语言表示形式的自然语言处理(NLP)系统趋势的一部分。在发布GPT-3之前,最大的语言模型是2020年2月推出的 Microsoft的Turing NLG,与GPT-3相比,其容量为170亿个参数或不到10%。
GPT-3生成的文本质量很高,以至于很难与人类所写的文本区分开,因为它既有好处,也有风险。31位OpenAI研究人员和工程师介绍了2020年5月28日介绍GPT-3的原始论文。他们在论文中警告了GPT-3的潜在危险,并呼吁进行研究以减轻风险。34 澳大利亚哲学家大卫·查默斯(David Chalmers)将GPT-3描述为“有史以来最有趣,最重要的人工智能系统之一”。
来自维基百科
GPT-3号称是可以让程序员失业的人工智能,一个普通人直接输入一段文字需要,GPT-3就可以给你编一个APP或者做一个前端出来。当然现在使用它费用都比较昂贵。但是未来在摩尔定律加持下,未来还真有可能普通人都使用上,那么那个时候现在80%的程序员都失业了。也许现在的我们听上去感觉离得遥远,但是技术进阶来说五到十年一个变化真的不是吹出来的,就如同我们觉得诺基亚是上个世纪一样遥远,其实智能手机时代才只有十来年而已。
3
总之一个比较深刻的感觉,计算机的发展历程中,包括现在的大数据,好多都是用空间换时间,释放计算机的计算能力,把开发人员从中抽象出来,去做更多的事情。而这个更多的事情是什么,需要大家一起来考虑考虑哈。
其实这些变化可以推广到个人的发展体系中,一样的抽象自己,当自己可以做现在一个本职工作的时候,OK这时候我们还有进阶的部分,当我们可以熟练并且轻松的掌握工作的时候,我们就需要进行傻瓜式的传导,裂变自己,尝试去把自己已经做过的事情去授予其他人,自己再抽象出来,去选择更高阶的事情。
现在已经不是一门技能活一辈子或者传几十代,尤其在程序员类似学习积累成本很小的这些行业,自己学的能够自己用都很困难了,初级还得去抽象自己,去做一些琢磨未来的思考,去做一些考虑未来的事情,拥抱变化,体验这人生吧。
未来可期吗?不敢,但敢想,敢去试试,已经很好了。碎文一篇,还望诸位海涵。
CPU的后记,程序员的未来之计的更多相关文章
- 给各位PHP程序员十点未来的建议
PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...
- 程序员需要了解的硬核知识之CPU
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CP ...
- PHP程序员的技术成长规划
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...
- PHP 程序员的技术成长规划
[导读] 按照了解的很多PHP LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序 ...
- 【转载】PHP程序员的技术成长规划
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...
- PHP程序员的技术成长规划(送给迷茫的你)
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...
- 【转】PHP程序员的技术成长规划
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...
- PHP程序员的技术成长规划(转)
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...
- 2017PHP程序员的进阶之路
2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...
随机推荐
- 2021年了,C 语言会被淘汰吗?
一年365天,总有那么几百天听到有人说"C语言过时了""C语言要被时代淘汰了",那么真的会被淘汰吗? C 语言发布于 1972 年,到2021年已经有49年的历 ...
- TCP连接的建立与释放(超详细)
前言:在计算机网络协议中,TCP只是其中一个,然而在网络使用中,TCP也是最离不开的协议之一,它的重要性毋庸置疑,最最重要的是,面试的重点就是它啊,呜呜~~,今天我们一起来看下TCP的连接建立与释放, ...
- 【.NET 与树莓派】使用 GPIO 库
上回老周在说准备工作的时候,提到过树莓派用金属盒散热的事情.有朋友会说,加了金属盒子接线不方便,就算用了"T"形板,毕竟是把导线延长了的.其实扩展板就是把原有的引脚引出(类似于延长 ...
- AttGAN: Facial Attribute Editing by Only Changing What You Want 论文阅读笔记和AttGan的pytorch代码实现
1.总体框架 上面的过程用详细描述即是 Test阶段: Train阶段: 由于我们无法得知编辑后的image,所以显而易见人脸属性编辑是一个无监督问题,而对于我们的xa需要获得关于b的属性,故利用at ...
- Go中由WaitGroup引发对内存对齐思考
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的go的源码时14.4 WaitGroup使用大家都会,但是其中是怎么实现的我们 ...
- appium元素识别方式实战
github代码:: https://github.com/w550856163/App_Demo.git tag: V1.1 Appium Inspector定位工具界面介绍: Selecte ...
- 【Linux】Linux下如何分区及如何格式化
环境:CentOS7.1 磁盘大小是1.8T 将磁盘/dev/sda分一个分区,分区类型为xfs fdisk /dev/sda n --创建新分区 p --创建分区类型为主分区 1 --主分 ...
- 这难道不是.NET5 的bug? 在线求锤?
hello,最近在对一个使用.NET5项目的认证授权系统进行重构,对.NET 5的授权中间件的源码有些看法. 也希望同学们能帮我理解. 一个朴素的需求 这是一个api项目,默认所有的api都需要授权, ...
- 单元测试:单元测试中的mock
公司要求提升单元测试的质量,提高代码的分支覆盖率和行覆盖率,安排我研究单元测试,指定方案分享并在开发部普及开.整理完资料后,同步一下到博客. 单元测试中的mock的目的 mock的主要目的是让单元测试 ...
- 关于SET/GET PARAMETER ID的注意事项
通常这两个语法配合 PARAMETER, select-options中的参数 memory id来使用. 如,选择屏幕定义 PARAMETER p1 TYPE c LENGTH 10 MEMORY ...