编程新技术

作者: 宴会说 | 来源:发表于2023-07-08 06:18 被阅读0次

    我前段时间在学习交流群内答应一朋友,写一篇新形势下AI编程学习分享,结果一周来工作很忙,难得周末偷得半日闲,刚好拿来写个分享。

    我曾经认为编程是门深不可测的技术。大学时便是学地理信息系统,受限于当时的网络技术,教程资源没有现在这么丰富,当然这是拿得出手的借口。真实原因是当年受不了精彩纷呈的游戏诱惑,跟着老师敲两年代码后,我一打开电脑,便会投入到战火纷飞的CS战场,或者精彩刺激的足球场,亦或是魔幻的崔斯特凡姆。总之,就是不会再去调代码,看到那黑乎乎的窗口,就觉得心烦,最终自己放弃,选择制图方向,匆忙毕业。以为从此与编程无缘。

    一晃毕业多年,不曾想在三十五岁那年又重拾编程手艺。那时因为具体负责数据处理项目,一开始全部纯手工操作,在数据处理圈内,纯手工可不像美食圈或者工艺品圈,在那个圈子,纯手工意味着落后,没有效益。作为具体负责人,本着认真负责的态度,开始琢磨自动化方法,一同事向我介绍了python。python作为解释型语言,上手确实比较容易,连学一周之后,便写出几个批处理小工具,尝到编程甜头。从此以后,我便在网上疯狂刷教程,偶然一天在某乎上刷到一句话,让我迎来编程第一个小高峰。

    “官方定义程序就是数据加算法,程序员需要写出算法来处理数据。而国内95%以上的程序员不是这个定义,而是数据加某度,调用API。”一句话惊醒梦中人,天南地北分飞燕,圈内尽是调包客。于是,我遇到问题,便在网上搜索,期间结识数据处理最好的包——pandas,说它是数据处理最好的包,一点都不夸张。免费开源共享,关键是好用,像用excel一样简单便捷,据说全球有800多名志愿者在维护这个包,python独有,就连王者Java都没有这样好用的包。某度加数据阶段,我陆续开发了很多工具,极大提升工作效率,让我可以一边摸鱼,一边被表扬。这个阶段相对最开始理解,有很大进步,但是还存在很多问题,网友们给的代码,往往和自己的数据格式不能做到完全吻合,想要尽量精准描述数据后,再某度,往往又难以获取到精确答案,调试过程还是比较繁琐。渐渐形成一些小工具集之后,我便又开始半躺平,期间偶尔试着去做下web开发,感觉还是不太适合,倒是学会一些运维部署工具。直到今年加入七年老师的训练营,一次偶然机会,让我迎来编程又一次革命,对绝大多数调包客程序员来说,应该也是一次革命,相信能够迎来一个新的高峰。

    一日,一同事满面愁容,向我请求帮忙解决一个问题,他是用一商业软件,遇到一严重BUG,计算出的图幅号有重复,没有办法使用,而业主单位又追得紧,问我能不能想办法解决下。听到他这个请求,我心里有点犹豫,因为之前我做过一个工具,但存在缺陷,那个缺陷恰恰是他现在需要用到的大比例尺部分。同事看我眉头紧锁,他脸上表情更加难看,如果我拒绝他的话,估计他很难短时间内找到解决办法。我和他平日里关系还不错,也不忍心直接让他失望,便答应他试试看,两天之内给他答复。

    事情答应下来了,却并不好做。当年我便是通过某度检索,自己加工处理形成的工具,我花了半天时间,继续某度,看看能不能有新发现,结果很失望。我想要放弃,不想再去翻规范上的公式,把公式搬到程序里,太费劲,我没有十足的把握。我想要放弃,想着拖一拖下午给同事说一声,让他另想办法。

    吃过午饭,我半躺在办公椅里,刷手机,忽然看到学习交流群里,有人提了一句,可以用ChatGPT编程。我马上来了精神,顾不得午休,马上打开ChatGPT,输入对话,按照七年老师教的套路,一定要注意是对话,不是一锤子问题。

    我先问你知道python吗?答曰:知道。你知道国家某某规范吗?答曰:知道。问完这两个前置问题,我开始给它定位,说:你是一位优秀的Python程序员,请帮我写一段程序,实现以下功能。基于某某规范,根据输入内容,实现图幅号计算。答曰:谢谢夸奖,我会尽力帮你完成。答完之后,屏幕上开始刷刷出现代码。代码写完之后,我略微一看,目瞪口呆,这以后写小工具的没饭吃了,代码及其规范,包括导入包、注释、封装非常标准。我下载下来,拷贝到IDE中,居然直接就可以运行。我把其中大比例尺部分代码稍作调整,嵌入到我原来的程序中,然后对着规范上给出得示例进行验证,完美无误。我赶紧把同事喊来,让他将范围线发过来。十多分钟时间,完成将近两万幅图纸计算,与商业软件结果做下对比,我的程序完全没有重复,结果正确。

    自此以后,一段时间以来,我沉迷于聊天编程之中。改进了很多以往的小工具,期间有些也不能一次性完美运行,也会报错。我将懒人精神发挥到极致,将报错提示再发给机器人,让他自己调试,往往他也能调试正确。

    说到数据处理的程序开发,特别是很多人需要做自动化做报表,让机器人知道原始数据格式和想要的结果很关键。偏偏机器人又不支持文档或者数据上传,在此过程中我想出一种方法,就是给它举例子,它完全可以听懂。最常用的便是告诉它,处理一个excel表格数据,根据A列数值,给B列设置不同的下拉列表选型,例如A列值为条件一,则B列下拉列表选项为选项一、选型二、选项三,A列值为条件二,则B列下拉列表选项为选项三、选项四、选项五。以此类推。它会根据你给的例子写出代码,直接替换条件及选项即可。我非常惊叹于机器人的能力水平,之前好像有人说过它的能力水平约相当于九岁孩子,现在我完全不认同了。然而这还不是最高境界,让我最为惊叹的还在后面。

    一日,闲来无事,问机器人,推荐几个自动编程工具。刷刷出来一堆,排第一个的便是copilot,点开详情了解下,微软联合GitHUB共同推出。心下大喜,赶紧登录网站,准备是用这个插件,不料确实收费版,收得还是美金,这明显不符合我的要求,严重违背开源精神。于是,我果断弃之不用。

    继续找机器人问替代品,要求好用免费。众里寻他千百度,得来全不费工夫。在此,郑重推荐codeium,集成到vscode,支持中文提问,支持读取本地文件。我现在测试可以完美读取当前工程下py文件,后续试下表格,不过既然有了py,在py里面写一段读取表格的程序,然后让机器人完成后续工作,想来也不难。试着用codeium做了几个数据处理程序,它不仅会写出程序,还会告诉你需要安装什么包,具体版本等信息。

    对于codeium,我只想说完美,值得拥有。想想最开始学代码时,能用kite做个代码智能补全,文档自动提示都兴奋不已,现在对比看来,真是弱爆了。kite可以下岗了。

    积极拥抱AI技术,提升职场竞争力。现实很残酷,同样的工作,不用AI,用AI形成两种结果,正如两根金条,或许用AI的那根还要更大些,假使这两根金条同时摆在老板面前,他能说哪根是高贵的,哪根是卑微的吗?或许老板只会认更大的那一根。所以你不用AI,用AI的人就要淘汰你。

    相关文章

      网友评论

        本文标题:编程新技术

        本文链接:https://www.haomeiwen.com/subject/ficdudtx.html