编程的未来 - 还有未来么?
现在的 AI 辅助编程,只是在第一个层次极大地帮助了程序员,但后面两个层次还是要靠人,即各种大语言模型和它们衍生的工具会在文档生产、归纳、流程处理方面有很多帮助,但关键的地方还是要靠人。
程序运行在 CPU 上,都在干什么?它们在对数据进行各种操作,增删改查 (Create Retrieve Update Delete — CRUD)。一个好的程序,要保证这些操作的正确和高效,同时还要确保程序正确使用计算机的各种资源(内存,网络,外设等)。这些问题,都是可解的,AI 一旦学会,就能任劳任怨地做好。但是人类通常有各种智力、懈怠、粗心等毛病,会犯很多错误。在软件行业发展的几十年中,代码正在不断地帮助人类,避免人类犯错误。就像文字编辑器能自动提示人类的拼写错误那样,代码编辑器早在二十年前就能通过自动变量提示、语法高亮等方法,让程序员避免犯错,加快编程效率。所以,我们能有 AI 帮助大家写完整的函数、处理常见的问题,这是一件好事。那么,这样的好事,为何让很多程序员非常担心呢?在此, 我想引用软件工程专家 Kent Beck 的论断:AI 会取代一个程序员 90% 的技能,但是会把剩下的 10% 的技能放大一千倍。每个程序员都照照镜子问自己,我有哪些技能,是属于可以通过 AI 放大一千倍的?
如果你只会增删改查,那么 AI 的确可以完全取代你,所以可以关注一些 AI 短期内不太可能达到的技能:▶ 对技术的娴熟掌握,高效 debug 的能力。▶ 对软件体系架构的全面理解,集成的能力。把你写的 1000 行代码集成到现有的十万行代码的系统中去,把各个模块集成、优化为一个高效的系统。▶ 对软件运行数据的理解,能从数据中洞察到问题,而不只是一个会念数据的人类。▶ 提问的能力。向用户提问,了解用户的真正需求,向领导、同事提问,了解大家的思路,当然,还有从对方角度思考问题的能力和交流的能力。▶ 与软件团队其他角色和流程合作的能力。一个产品的质量,可能取决于整个流程中最差的那个角色和环节。一个软件工程团队有售前、产品经理,产品架构、技术架构、QA、安全体系、UED、售后支持等角色,程序员在编程阶段获得了 AI 工具的赋能,能否让其他角色和流程也获得类似的赋能呢?▶ 对其他业务的了解。例如,你想让 AI 帮助医疗行业,那么你对医疗行业了解多少呢?我们程序员,也要多了解 #软件工程#, #商业模式#, #行业#, 才能让你的这些才能被先进的 AI 工具放大。衣食住行中, “衣” 的变化随着 AI 辅助编程的发展,程序员是不是会失去越来越多的工作机会,最后行业萎缩,就没有价值了呢?我们先看看人类需求的第一位,在“衣食住行”中名列前茅的 “衣”, 看看它的发展是不是会给程序员一些启示。资料来自于网络和 ChatGPT,New Bing(例如百度百科,和一些文章 https://www.sohu.com/a/400708937_99933236)。▶ 百万年前 - 树叶、兽皮。▶ 几千年前 - 用野生的麻。用石轮或陶轮搓捻成麻线,然后再织成麻布。▶ 几千年前 - 人们已将蚕蛾驯化家养,并能织出较为精细的丝织物。到了殷商时期,养蚕已很普遍,人们已熟练地掌握了丝织技术。▶ 几千年前 - 手工织布机的出现和缓慢改进。“男耕女织”,“子不学,断机杼” 的说法就出现在这个时代。
我个人也搞过一些 “程序理解”, “自动编程” 的实验,下图是我和微软研究院的小伙伴在 2019 年内部 “黑客松” 上展现了 “自动找到你想要的 Python 代码” 的功能。核心想法借鉴了 2018 年 GitHub 团队的工作,用 word-embedding 来训练和寻找代码、函数说明、代码注释的相关性,帮助用户找到他想要的代码。这个小项目最后还得奖了。????
","gnid":"9f978192372353071","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"http://p0.img.360kuai.com/t013d73ffee4a20366b_1.gif","title":"","url":"http://p0.img.360kuai.com/t013d73ffee4a20366b.gif","width":"640"},{"desc":"","height":"737","title":"","url":"http://p2.img.360kuai.com/t01984398573f7e3531.jpg","width":"1080"},{"desc":"","height":"681","title":"","url":"http://p2.img.360kuai.com/t01ec56c37650f1abbc.jpg","width":"1080"},{"desc":"","height":"930","title":"","url":"http://p1.img.360kuai.com/t0149fc3595c5572733.jpg","width":"789"},{"desc":"","height":"924","title":"","url":"http://p2.img.360kuai.com/t013df920140bc9af75.jpg","width":"939"},{"desc":"","height":"239","title":"","url":"http://p0.img.360kuai.com/t016f0fdf95e9f806db.jpg","width":"852"},{"desc":"","height":"500","title":"","url":"http://p2.img.360kuai.com/t011ab07073c1139f06.jpg","width":"826"},{"desc":"","height":"773","title":"","url":"http://p2.img.360kuai.com/t016a5fd9d44134b82c.jpg","width":"1080"},{"desc":"","height":"436","title":"","url":"http://p1.img.360kuai.com/t0110f9071713bd86f3.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"pika","pub_time":1686044557000,"pure":"","rawurl":"http://zm.news.so.com/5c0b30454aebed58e7de32186c0bb10c","redirect":0,"rptid":"84625a60a671f6ce","rss_ext":[],"s":"t","src":"CSDN","tag":[],"title":"编程的未来 - 还有未来么?","type":"zmt","wapurl":"http://zm.news.so.com/5c0b30454aebed58e7de32186c0bb10c","ytag":"科技:计算机技术","zmt":{"brand":{},"cert":"优质科技领域创作者","desc":"专业的中文IT技术社区,与千万技术人共成长。","fans_num":447,"id":"3084819448","is_brand":"0","name":"CSDN","new_verify":"5","pic":"http://p6.img.360kuai.com/t01a56772a1a256f5c1.png","real":1,"textimg":"http://p9.img.360kuai.com/bl/0_3/t017c4d51e87f46986f.png","verify":"0"},"zmt_status":0}","errmsg":"","errno":0}