chatGPT火成这样,程序员还有机会吗?
看看最近很火的:
这恐怕连设计师都还取代不了!
数据的准确性
如果你真的有经常使用 chatGPT
,你会发现,它其实并不是每次都能给到你想要的答案,而且偶尔还是错误的答案。所以,它本身就有一个致命的问题:准确率!
ChatGPT 是一个大规模的语言模型,不断地训练以提高响应的准确性。然而,由于这是一项全新的技术,该模型尚未经过充分的训练。因此,人工智能聊天机器人可能会提供错误的答案。正因为如此,StackOverflow 禁止了 ChatGPT,并表示:“总的来说,由于从 ChatGPT 获得正确答案的平均比率太低,发布由 ChatGPT 生成的答案对我们的网站以及询问或搜索正确答案的用户来说是非常有害的。”
比如,将医疗APP接入chatGPT,无法保证这个24小时机器人不会给病人开错药。比如将感冒错误地诊断为新冠
代码调试
没有程序员敢说自己的代码不需要经过联调、测试,直接上生产的。
在你充分给足问题上下文的前提下,你让 chatGPT 生成一个几十行的代码 snippet,它大多数情况下会给你一个不需要太多修改的答案。但是,这和直接上生产的应用程序之间还是存在较大差异的。尤其当工程比较复杂,即使chatGPT的准确率很高,在巨大的代码量和文件之间错综复杂的引用关系下,bug的数量也不容小觑,依然需要经验丰富的工程师来调试。
需求理解
某一天,产品说,我们需要做一个新功能:做一个会根据手机壳颜色而改变主题颜色的APP!
于是,你把这一句话需求输入到 chatGPT
,满心欢喜地等待答案:
chatGPT给出的代码如下:
1 |
|
显然,没有根本没有理解产品提出的需求!所以说它短时间内是干不掉开发的!
沟通需要人
一个软件的开发通常都不只有开发,大致的流程:
- 调研(需求收集)
- 项目立项
- 需求整理(出PRD)
- UI、UE
- RD、QA、UE、UI做需求评审
- RD做架构设计、技术调研,UE做交互设计、QA做测试用例
- RD、UE、UI、QA评审,排期
- 开发、联调、测试
- 产品验收
- 上线准备
- 灰度
- 上线
- …
从第5点开始,就要开发参与做大量的沟通和协调。
coding
只是其中一小环,开发需要深入了解业务需求,做技术调研和预判,才能决定如何编写代码。
你想从chatGPT
那里获得正确的回答,首先你要知道如何问问题,问哪些问题。这些都只有人能做。
chatGPT 会怎样改变我们?
我认为主要会在以下几个方面改变我们:
改进/重构/简化现有代码:使用 ChatGPT
改进、重构甚至简化现有代码。
将代码从一种语言翻译成另一种语言:例如,你可以要求 ChatGPT
将代码从 python
翻译成 javascript
或者 go
。
写测试:让 ChatGPT
帮你测试一个功能,它会帮你写测试用例。
探索替代方案:ChatGPT
非常擅长建议替代实施方案,尽管有时答案并不那么完美,改改也是能用的。
编写文档:ChatGPT
可以为小块代码编写文档。
查找错误:如果您认为自己的代码中存在错误并且找不到它,ChatGPT
可能会有所帮助。
辅助而不是取代
最有可能的情况是像 chatGPT
这样的工具会被集成到开发者使用的工具中,并被用来辅助开发人员,让他们从一些重复性的工作中解脱出来,去做一些更有价值的工作。ChatGPT
不太可能取代程序员。
编程需要一套独特的技能,例如逻辑、解决问题和对编程语言的理解,这些是 ChatGPT
所不具备的。虽然它可以帮助程序员完成代码生成等任务,但它不能完全取代人类程序员所拥有的创造力、解决问题和批判性思维的能力。程序员在软件、网站和其他技术产品的开发中发挥着关键作用,他们的专业知识对于设计和创建这些产品至关重要。
还有一种观点是,那我们可能不需要那么多程序员了。我觉得也不一定,这需要取决于经济社会的发展情况,如果 chatGPT 真的引发一场新的科技革命,不知道有多少应用或者说服务将被重写,又有多少新的需求将被催生,替代程序员又从何谈起呢。
但是,如果你的工作只是编写复杂性很小的基本代码块,那么你可能比较危险了。特别是那种入行只是为了混口饭吃,平时也不注意提升自己,随着时间的推移就很有可能被优化了。以后的工作模式,可能就是软件开发人员和人工智能工具组合进行开发,人工智能可以起到很好的辅助作用。
展望
虽然chatGPT短期内还无法取代程序员。但技术发展日新月异,未来不知道人工智能会发展到什么地步。所以程序员还是要尽可能的多提升自己,增加自己的核心竞争力,不单单是编程能力,还包括沟通能力、逻辑思维能力、解决问题的能力等等。