首页 > 其他分享 >关于当下ChatGPT在软件工程编码过程反思

关于当下ChatGPT在软件工程编码过程反思

时间:2023-10-06 10:45:09浏览次数:47  
标签:编码 批判性 代码 领域 程序员 软件工程 独立思考 ChatGPT

     背景

     首先声明笔者是软件开发多年经历,对于ChatGPT过程中一些观察,仅代表个人观点。对于才工作的新人,没有更多软件开发与编码经验,可能ChatGPT帮助更大。当下ChatGPT在软件工程编码过程反思:

image

     风险一:  ChatGPT当下对于整个软件工程优化与改进所有源代码效率不高。 ChatGPT出现意味着程序员可以协助AI工具生成优质代码,改进现有代码。在实践过程中,我们看到程序员需要等待ChatGPT的逐行输出结果,这似乎是就是在等待时间。看上去最终效果比较好,但实际是等待花费更多时间。一个简单的技术问题也需要问GPT,那不是搜索引擎就能解决的问题。一个程序员如果过分依赖ChatGPT,实际上他的生产效率并不高。因为每写一段代码,他都在等待GPT帮助他来优化这段代码。这个程序员可能没有持续学习,在依赖GPT的AI生成代码。熟手高级程序员与软件工程师,我们期望他能直接能产出高质量的代码。这个优质代码技能在过去,这个程序员需要阅读大量的优秀的源代码并加与实践。 如果这个程序员已经具备独立产出高质量代码能力,他的效率必然比依赖GPT的程序员高效。

整洁代码是这样的:

人工智能永远不能完全取代程序员, 因为客户的需求总是模糊的, 程序员不只是写代码, 也会去讨论/设计需求和架构
糟糕的代码会杀死项目, 通常会在项目中后期体现出来, 此时项目的生产力快速下降, 影响正常迭代和问题修复
对一个成熟的项目进行重新设计和编写, 往往会分散人力, 同时新版的项目要想替换老项目也会耗时很久, 可能因为中间的人力变更导致烂尾
程序员要积极的拥抱项目发展中的各种需求变更, 不要总是抱怨太多杂事和需求变更导致开发时间紧迫, 事实上应该和PM沟通, 说明时间的用处和压缩时间的坏处, PM也希望可以给多的时间来产出优秀的代码.
整洁的代码是能让其他读者觉得, 这个代码是编写者用心写的, 几乎没有可以改进的地方, 其他人没有办法让这段代码变得更好了.
在编写代码的时间里, 实际上我们需要一直读之前的代码. 因此, 提高代码可读性是非常重要的.
时刻的记住保持代码的整洁, 从细微处做起.

这不由我们想起一个中国古话:

      物极必反--意思是指事物发展到极端,会向相反方向转化,出自《吕氏春秋·博志》

    ChatGPT只能是一个助手,不是全职选手。助手代码意思是辅助,主角还是每个人个体。我们需要持续加强的个体能力。个人的软件需求理解与分析能力是GPT目前不能代替的。

     风险二: 过于依赖ChatGPT缺乏独立思考,个体的独立思考能力才是前进与成长的源头。 过于依赖ChatGPT出解决方案,实际上已经是开始弱化个人独立思考能力,探索能力。人总是在依赖。独立思考是一种重要的能力,它可以帮助我们更好地理解世界,做出更明智的决策,同时也能够在个人和职业生涯中获得成功。让我们再次回顾独立思考能力:

一 . 自我认识
在独立思考的过程中,自我认识是至关重要的基础。我们必须对自己的价值观、偏见等有充分的认知,这样才能更加客观地看待事物,并避免被情感、偏见等因素所左右。如何才能通过“自我认识”使自己的思想更客观呢?总结了以下6个方法:

1、接受自己的情绪和感受。
有时候我们会因为自己的情绪而产生主观判断,而通过自我认识,我们可以更好地接受自己的情绪和感受,不再因为主观感受扭曲客观事实。
2、客观回顾自己的人生经历,考虑到这些经历对于自己的影响。
这包括自己所面临过的挑战、获得的经验、学到的知识、受到的影响等,从而了解自己的优势和弱点以及内心深处的欲望。
3、多与自己心灵沟通。
我们往往会被忙碌的生活所迷惑,而很难听到内心深处真正想说的话,从而忽略了自己的独立思考能力。因此,平时可以试着与自己交流,借助写日记、冥想等方式来反思自己的想法和感受。
4、注意思想的变化。
每个人的想法会随着时间的推移而不断变化,因此要时刻关注自己的思想动态,洞察自己的内心变化。这样才能及早纠正不良思想和行为,并建立符合自己价值观的准则。
5、多接触新事物。
人的成长离不开接触和经验的积累,只有不断接触新事物、兴趣点才能让自己知识面更广,思维更加开阔,从而有助于形成独立的思考方式。
6、寻求外部反馈。
我们的内心世界常常是模糊的,而与他人交流意见就能让我们更全面地接受自己的缺点和优势。通过跟长辈、朋友、同事等人交流,认真听取他们的建议、批评、反馈,从而发现自己的不足之处,并尽可能纠正。


二. 知识储备
想要做出独立思考,仅仅依靠感性和直觉是不够的,还需要我们在一定的领域内拥有大量的储备的知识与信息。
掌握大量领域内的知识,能够帮助我们更好地理解问题的原委,也能够让我们进行更为全面和客观的思考。另外,在掌握足够多的知识的过程中,更能够发掘出问题的深层次的本质,以及事物之间的关联等等。
如何快速地增加自己在一个领域内的知识储备呢?
有几点经验分享给你:

1、了解该领域的基本概念和理论。
在学习某一领域之前,需要先了解该领域的基本概念和理论,明确学习目标。可以通过阅读相关的入门书籍或教材,了解该领域的基础知识。
2、阅读该领域的经典著作或研究论文。
要深入了解一个领域,必须阅读相关领域的经典著作或研究论文,掌握该领域的基本理论、思想和方法,同时对研究者们解决问题的思考方式和方法进行学习。
3、结交该领域的专家、学者和从业者。
在这个领域有人脉可以和其交流和学习,也有利于获取更多知识和咨询。参加该领域的专业活动和交流会议,能获取更为权威的信息和交流。
4、实践学习和应用。
学习知识不能孤立于理论知识,要将其与实践结合起来,贯彻到实践中,进行实际操作与策略应用,增加自己的实际经验。
5、纵向学习和横向拓展。
同时,除了加深主要领域的认识和了解以外,也需要横向拓展,涉及到其他领域的知识。


三. 批判性思维是一种能够使人们更加客观和严谨的思考方法。在面对复杂和深度的问题时,批判性思维能够帮助我们从多方面、多角度来分析问题,并通过常识、逻辑、科学等方面的知识,自主地判断是非、对错等问题。

image

批判性思维需要不断锻炼和练习,可以从以下几个方面入手:

1、对信息进行评估。
批判性思维的基础是对信息进行评估,搜寻事实和观点的来源、逻辑和证据,了解采用的方法和数据是否可靠。在这个过程中需要用一些思考工具,例如如何评价信息来源,检查事实是否真实,检查理论是否有道理等。2、采用多角度思考。
批判性思维鼓励多角度思考,在评估信息和进行决策时,需要考虑多种观点和可能性,同时也要了解和接受不同的观点和声音,尝试提出不同的想法和解释。
3、提出问题和假设。
批判性思维强调提出问题和假设,鼓励审查和重构自己的思想,找到解决问题的方法。在提出问题和假设的过程中,需要防止表面现象的错误评估,提出主观性评价,要注意逻辑缜密性。
4、发掘潜在的偏见。
批判性思维推崇以客观的态度对待事物,尽量抵制个人看法和偏见的冲击。要识别潜藏的偏见,并时常检查自己的态度和偏见是否对事实的评估产生误导。

5、练习思考和表达。
批判性思维的最终目标是要能够思考和表达自己的观点和决策。在练习思考和表达过程中,要注重语言表达的准确性、逻辑性和语境适当性。在自我表达过程中,要紧跟文化发展,以平等、完整、健康的方式展现。



今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章:
领导人怎样带领好团队
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

标签:编码,批判性,代码,领域,程序员,软件工程,独立思考,ChatGPT
From: https://www.cnblogs.com/wintersun/p/17744313.html

相关文章

  • ChatGPT入门实战课 AI时代更具竞争力的开发者(完结)
    点击下载:ChatGPT入门实战课AI时代更具竞争力的开发者(完结)提取码:bx1lFlink是一款基于流处置的散布式计算框架,能够完成高性能、低延迟的实时数据处置和剖析。下面是一个示例代码,用于展现如何运用Flink从零开端构建实时风控系统。首先,我们需求在pom.xml文件中添加Flink的依......
  • 《软件工程:方法与实践》读书笔记1
    精益的思想本来就是源于汽车制造业,这本书就直接用日本丰田的实例很形象的告诉了我们什么是精益的思想。精益思想的核心是“消除浪费”,但是这个“浪费”和普遍被认可的观点有一些区别比如:仓库里还有原材料的剩余,普遍思想是全力生产产品以降低每个产品的平均的设备成本;然而,对于精......
  • 2023/10/5软件工程日报
    今天用vue向后端发送请求时发生了跨域的问题,记录下来vue.config.js: App.vue:发送axios请求时就不用加上localhost。。。。等了 ......
  • 根据您的数据量定制的ChatGPT,改变客户服务的方式
    在当今竞争激烈的商业环境中,提供优质的客户服务对于保持忠诚的客户群和推动业务增长至关重要。客户满意度已成为各行各企业的首要任务,因为它直接影响客户留存和品牌声誉。随着技术的进步,公司不断探索创新解决方案,以增强客户服务体验。其中一种解决方案是利用人工智能(AI)的ChatGPT,提......
  • 【论文2】自编码器为何Work?
     在研究stylelatentspace的概念时,我得到了对自编码器为何Work的解释:因为模型需要重建压缩数据,所以它必须学会存储所有相关信息并忽略噪声。这就是数据压缩的价值——它允许我们摆脱任何无关的信息,只关注最重要的特征。 ......
  • '''实验1 只有温度和时间 每个物料的初始温度和初始时间不一样 无分类变量需转为读热
    '''目标:拟合物料冷却规律分类变量:物料规格,冷却方式连续变量:温度,时间其他因素:车间温度现实因素:初始温度,初始时间需求因素:目标温度的时间,目标温度的时长(时间-初始时间),当前时间的温度不加入分类变量则为单个线性模型''''''实验1只有温度和时间每个物料的初始温......
  • 文心一言 VS 讯飞星火 VS chatgpt (105)-- 算法导论10.1 3题
    三、用go语言,仿照图10-2,画图表示依次执行操作ENQUEUE(Q,4)、ENQUEUE(Q,1)、ENQUEUE(Q,3)、DEQUEUE(Q)、ENQUEUE(Q,8)和DEQUEUE(Q)每一步的结果,队列初始为空,存储于数组Q[1..6]中。文心一言:在这个问题中,我们尝试使用Go语言来模拟队列的操作,并且展示每一步的结果。首先,我们需要定......
  • 文心一言 VS 讯飞星火 VS chatgpt (105)-- 算法导论10.1 3题
    三、用go语言,仿照图10-2,画图表示依次执行操作ENQUEUE(Q,4)、ENQUEUE(Q,1)、ENQUEUE(Q,3)、DEQUEUE(Q)、ENQUEUE(Q,8)和DEQUEUE(Q)每一步的结果,队列初始为空,存储于数组Q[1..6]中。文心一言:在这个问题中,我们尝试使用Go语言来模拟队列的操作,并且展示每一步的结果。首先,我们需要定义......
  • 2023/10/3软件工程日报
    今天继续vue的学习,今天完成了对组件插槽的学习,贴出代码    ......
  • 文心一言 VS 讯飞星火 VS chatgpt (104)-- 算法导论10.1 2题
    二、用go语言,说明如何在一个数组A[1..n]中实现两个栈,使得当两个栈的元素个数之和不为n时,两者都不会发生上溢。要求PUSH和POP操作的运行时间为O(1)。文心一言:在这个问题中,我们要在一个数组A[1..n]中实现两个栈,使得当两个栈的元素个数之和不为n时,两者都不会发生上溢。这......