微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

什么会让程序员丢掉工作?

2017-07-18 22:00 黄兢成

原文链接:https://www.zhihu.com/question/45153728/answer/98399315



什么会让程序员丢掉工作?


1.以后会不会出现中文编程呢?(这里说的肯定不是说易语言了,而是另一个层面的中文,第三层shell,在现在的基础上再裹上一层,而且大部分是中文)

2.各种IDE会不会再给自己套上一层翻译环境,以至于以后HR,文员就可以像写word一样,直接写出一个工程,或者更形象点说就像写现在代码的注释一样写未来的代码呢?然后由框架或者IDE直接后台翻译出来?已经有一些苗头出现在曾经的Dreamware和现在的Visual Studio,以及未来的所有IDE上。


3. 人工智能:是不是所有与机器打交道的工作,都会在未来被现在正在与机器人打交道的人自己干掉呢?社会中,重复性的工作都会被被淘汰。”,但在未来”重复“的界限会被已经产生的无数 ” 轮子 “ 碾压、拓宽到何种地步呢?



编程的工作不会消失,名字或者会变,但不会消失。编程困难之处,是需要精确无歧义地描述一件事物。只要你做到这个,就很容易学会编程。编程的语言、工具都不难,但需要你长期动手实践、熟悉。编程包含两部分:想清楚、动手做。


很多人没有觉察到,日常语言是很含糊的。因此编程才需要发明更精确的语言,就如同数学需要一些符号公式。


这并非是想为难普通人,让普通人看不懂,而真的是实际需要。普通人让程序员说人话,总想将代码翻译成日常语言。而对于程序员,代码更容易看懂,更需要将日常语言翻译成代码。Talk is cheap. Show me the code.


日常语言约定俗成,创作出新词汇,我们基于这些词汇更好地说话。而开源的库,就让程序员,有更好的词汇,描述更抽象、更高级、更好的东西。


除了词汇,我更喜欢将编程比喻成拼积木。最开始只有一些简单基本的积木,用这些小积木拼出更大的积木。积木一旦拼好,就可以无限复制。


之后再用拼好的积木拼更大的积木。这样可用的积木就会越来越多,越来越高级,就可以拼得越来越快。开源就是向其它人分享这些积木。


为什么编程不会消失?因为人们基于旧东西会创作出新东西,永远有想拼的更复杂的积木。比如数据库,前辈程序员耗了心力去拼这个积木。


之后的程序员有了这个数据库这个积木,就可以直接用来做网站。一代代程序员薪火相传,向前进。这个过程没有尽头。或者有一天没有现在的人类了,也会有新人类重复这过程。假如有天机器会思考,会创造,它还会是机器吗?它应该改成他,他就是新人类。


编程中,重复性的工作肯定会被淘汰。社会中,重复性的工作都会被淘汰。


现在的编程工具还比较落后,但放到十年前,简直是梦幻般存在。而今天的软件,比十年前要复杂得多。今天我们用更好的工具创作出更复杂更好的软件,十年后也是。


抛开程序员,让普通人动手做产品,这个念想从计算机被发明开始,就一直没有停息过。实际上已经实现了部分。今天的大部分程序员,放到十多二十年前,也就是普通人。程序员并没有被抛开,反而越来越多,因为越来越多的普通人也可以编程,成为程序员了。


1.以后会不会出现中文编程呢?


我不清楚这里说的中文编程是什么意思。假如只是将英文的 "if", "else" 换成中文的 "如果", "否则"。这早就有了。程序员是很务实的,总会选择有用而非花俏的工具。敲中文去编程,总需要切换输入法,不方便跟别人沟通,看起来也累,注定流行不了。


但如果是用中文去描述,就自动出现一个软件。这种要求,首先需要说中文的人描述得精确并无歧义。


你可以做个实验,你是 A, 先在纸上画一些最基本的三角形和正方形。给另外一个人 B 一张相同尺寸的纸,你用中文去描述你纸上的图形,让 B 画出来。B 不能看你的图形,而你只能用中文去描述,不能动手画。最终对比 A 画的图形和 B 画的图形。这个实验中,A 相当于用中文这种高级语言去编程,B 是可以理解中文的计算机。


想精确无歧义地传达意图,是很难很难的。


2. IDE 是否可以自动翻译人们意图?以后 HR,文员就可以像写 word 一样,直接写出一个工程,然后由框架或者IDE直接后台翻译出来呢?


这个问题见上文。HR,文员用 word 来描述意图,假如可以描述得很精确无歧义,实际就相当用 word 编程。


你没有意识到,日常的 hr、文员、产品经理用文档去描述需求,是多么的含糊。假如文员能够精确无歧义地描述意图,他实际上可以改行当程序员,还会是很厉害的程序员。


3. 是不是所有与机器打交道的工作,都会在未来被现在正在与机器人打交道的人自己干掉呢?


这个问题的关注点错了。不应该太过于关注跟机器打交道,还是跟人类打交道。而更应关注你的工作是重复,还是有创作性。跟机器打交道,可以有创造性。


跟人打交道,也可以是重复。人们普遍认为机器就是死板重复的,这只是误区。重复性的工作必定被淘汰,有创造性的工作就不会被淘汰。比如商场收银员,她的工作跟人打交道,但是重复的,这种工作就容易被淘汰。基于同样道理,银行柜员,一些中介,汽车司机,大部分农民,也很容易被淘汰。


程序员对着计算机,假如是很重复性地去拼凑代码,也容易被新人淘汰取代,拼体力是肯定不够年轻人的。需要思考如何更有创作性,让工作价值快速增长,让自己不可被替代。


这个问题我没有完全想好,以后怎么做要靠自己思考行动,别人帮不了。不要等被淘汰就就说程序只是青春饭。事实上很多人是不适合当程序员的,只不小心混进来的,过几年被淘汰也应该。


而我自己会继续编程,但需要更厉害,可以持续养家糊口。我这样笨,这样懒,除了编程我想不出可以做什么。而想在编程达到顶尖,到一定程度,就不能整天埋头于编程。就需要接触额外的领域,比如设计,推广,规划,审美,文学,工程等。

 




在微信公众号内回复数字“1”

小编拉你进粉丝微信群

不是在文章评论里回

 
程序员之家 更多文章 百度陆奇最新内部演讲:如何成为一个优秀的工程师? 为什么成为一名程序员这么困难? —— 从程序新手到准工程师的必经之路 程序员如何做到「编程速度又快,Bug 数量又少」? 身边最牛逼的程序员是不是都是这样的? 有人向我反馈了一个bug
猜您喜欢 马斯克 中国联通整治违规互联网接入及大带宽业务 php读取apk包信息,提取应用图标 如何在注释里优雅地吐槽 技能终将过时,而能力与时俱进