0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编程水平真的是一个量变到质变的过程吗?

朱老师物联网大讲堂 2022-07-22 09:59 次阅读

鹅厂内部,有一个关于“编程水平提升”的帖子,题主是这样写的:

我是非计算机专业出身,近一年来,发现开发相关的工作越来越多。虽然能勉强应付,但是特别害怕别人看我的代码,觉得自己的代码写很糟糕。我试图去请教前辈,怎么才能提高编码水平,前辈说多写。但是我感觉多写就一直在重复那个勉强应付的if else过程,体力搬砖,并没有什么进步。前辈说:量变才能达到质变。请问大家有好的经验可以借鉴么?多写真的会量变到质变么?这个量变的过程大概需要多久?

关于这个问题,我们来听听鹅厂程序员们的经验:
01 有效努力是量变引起质变的前提@Jianfei.说下个人的理解,量变到质变的前提是:做出的是有效的努力。那么什么是有效努力呢?

  • 无效的努力:一年的经验努力用了十年
  • 有效的努力:遇到问题问5个以上why、深度思考、不停学习、不断突破舒适区的边界

只有做出了有效的努力,才能积累知识的深度和广度,当广度和深度达到一定程度的时候,就会发生所谓的质变,质变是什么样的状态呢?

  • 学习新知识会很快,很多东西一看就知道威廉希尔官方网站 的本质是什么样子
  • 遇到问题可以一眼看到问题的本质

那具体怎么做出有效的努力呢?给几个小建议:

  • 遇到需求不要着急写代码:一定要想明白为什么要写这个代码,这个代码到底要解决什么问题,这个需求的实现方案有几种?最佳方案是哪个? 怎么能优雅的来实现?脑子里能彻底想明白了这些问题,写代码只不过是分分钟的事情。
  • 遇到问题不要慌:解决问题的关键是先找到到底是谁的问题,“根因”是什么,如果不能很清晰的答上来,那就说明并没有掌握,这时候就去查资料、学习。直到吃透为止。
  • 从点开始扩展成面:当你负责的是大系统里很小的一个点时,一定要先从各种渠道去学习和理解这个系统整体,去深入理解你的上下游的架构和原理,不断扩展,进而理解整体架构

总结起来,以下三点:

  • 保持好奇心:对不懂的东西保持好奇心,并且有决心去理解和攻克
  • 持之以恒:威廉希尔官方网站 本身是比较枯燥的,但是解决问题的时候成就感是很好的,一直保持下去

一切都是思维:一定要学会深度思考,不要只顾埋头干活儿,所有的问题,如果你有清晰的思路都不是问题

@Howard.这事我觉得吧,量变到质变是有的,但单纯重复简单代码是不可能质变的。我自己水平也就一般般,班门弄斧说两句,希望能抛砖引玉。其实计算机专业的大学课程就已经指出大概的学习方向了:1. 一般大一学C语言,大概掌握面向过程的程序设计思路。大多数非科班工科专业的计算机课程基本都停留在这阶段,无论用多少年MATLAB也不会改观(我用了8年matlab,我现在天天黑)。大多数脚本语言也都是这样,按照顺序把思路写下来,让计算机一步一步执行。2. 理解OOP(面向对象编程)是水平提升的一大飞跃。掌握继承、多态、封装之后是一个aha moment,原来代码还能这么写,真牛X!现在大多数的大型系统基本都是基于OOP思想设计的,OOP是你掌握编程和控制系统复杂度的一个利器。3. 学会算法与数据结构,也是代码提升的一大步。当你像洋葱一样拨开数据结构的层层外壳时,你对编程的理解就进入了一个新的阶段。什么时候用链表、什么时候用顺序表、什么时候用图、什么时候用树。什么是B数、B+树、红黑树?为什么数据库要用B+树,为什么有些场景要用红黑树。4. 学会操作系统原理,也是代码提升的一大步。当程序设计到一定阶段,想要继续提升和优化,你就必须要深挖程序所在的平台 - 操作系统了。明白操作系统底层的运作机理,你才会明白,如何调度程序能够让代码更高效,如何并行、如何多进程,如何多线程。5. 当然再往下深挖编译器和计算机组成原理(压榨CPU性能、压榨GPU性能等),依然有很大的代码提升空间,但对大多数人用处不大了。一般都是交给专业人员来深入优化。02 量变引起质变,需要找准标准+刻意练习@Zale.个人深知自己能力及知识都存在很大局限性,仅尝试分享同为非计算专业毕业生当前认知中的理解,如有不同见解欢迎沟通和补充。【结论】1、量变不一定会引起质变,而1万小时+刻意练习能极大程度上促进质变的形成
PS:为方便梳理,下面主要将量变等价于1万小时,质变等价为领域专家,质变的尝试界定详见基础知识的PS2。
2、无论如何,不要因为现在忙而放下学习和成长,视野和能力的提升会帮助你更好、更高效的解决问题。【基础知识】一、量变与质变一万小时定律起源于《异类》,指“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力”,并提出1万小时是任何人从平凡变成世界级大师的必要条件(注意,只是必要条件)。《刻意练习》对一万小时定律进行了补充,即1万小时+刻意练习能帮你更大概率的达到专家水平(注意,会极大程度上促进你成为专家的概率)新增的刻意练习主要是指通过不断重复,将学习区的内容拉取舒适区,主要涉及以下内容:0、找准标准:有合理发展的领域或行业、能引导你的导师。主要作用是明确标准,从而引领你刻意练习的方向。1、大量重复的训练:从不会到会,秘诀就是重复。在熟悉之后就跨越舒适区,不断再将学习区中高难度的事件重复并尝试将其纳入舒适区。2、持续获得有效的反馈:反思、总结、改进3、精神高度集中:独立思考和独立练习(可引申至深度工作)总结一下核心就是:直面问题,明确标准,独立思考,持续行动,不断走出舒适区。
PS1:遇到恐慌区的事情怎么办?计算机领域中有两个重要概念分解和等价,遇到恐慌区的事务,将其分解为多个学习区和舒适区内容的总和,保证整体等价,即A(做不了)= B(可以做)+ C(可以做)+ D(可以做) + ... + Z(可以做)。PS2:如何界定质变/专家?这里的界定可能比较模糊,每个人心中的标准可能不太一致。但你既然提出了这个问题,更大概率是跟高水平框架设计、优雅的实现及公司/业界的专家相挂钩。
如果是指这些,他们在领域专业程度和贡献上都会有比较高的积累,也许我们短期很难达到。可以尝试换个角度思考,一方面,我们可以通过学习逐步成为领域内的组内专家、部门专家、公司专家、业界专家;另一方面,我们可以将看问题的视角从外部转向内部,减少外界身份或标签的界定,更多地关注自身的每一次成长,关注每一次实现是否能有更好的解决方案,关注威廉希尔官方网站 所产生的价值和成就感。这样会让我们更快乐、更快速的成长,更大概率的触发专家的质变。二、稀缺与体系化稀缺在《稀缺:我们是如何陷入贫穷和忙碌的》中定义为:“拥有”少于“需要”的感觉:

书中结论一:稀缺容易触发管窥书中结论二:稀缺会进一步延续并加剧稀缺

优化方案:跳出当前"管窥"场景和视野,站在更长远的角度去思考问题。管窥:专注于某一件事物就意味着我们会忽略其他事物,也叫“隧道视野”。就像视野被局限在一个管子中,那些存在于“管子”视野之外的事务就被抑制了。

为什么忽然会提到稀缺?是希望能对提问中“开发工作逻辑简单、很多东西不懂”这里有所帮助。在完成需求的情况下,你可以跳出你原本的开发内容,去自由的了解更多你想知道的东西。可以感受到你希望自己能够快速成长的心情,那可以站在让自己快速成长的角度,更体系化、更全面的去了解威廉希尔官方网站 、项目甚至领域,这对你的未来工作和发展也会很有帮助。比如去了解文章中描述的配置、存放目录甚至是项目威廉希尔官方网站 选型、框架设计等等内容,当然这需要你主动花费时间。【回到编程领域】一、找准标准:从整体到局部

了解学科发展:计算机行业已经发展几十年,各个领域都有自身的体系架构,可以参考学习。
PS:能让我们更清楚的了解到自己所在的领域历史发展,当前处于什么阶段,当前需要什么,以后会要往哪个方向发展,我们需要做什么准备。

站在巨人的肩膀上:领域经典书籍、领域前沿威廉希尔官方网站 、领域成熟开源项目的代码都有非常大的参考学习价值的。
PS:能帮助我们完善领域知识体系、框架设计、代码风格等很多内容。

基础知识:语言、数据结构、算法、设计模式、操作系统、计算机组成原理
PS:能让我们在遇到问题的时候,了解有哪些方法可用,如何更便捷、更高效,更普适实现。

个人实际编程:威廉希尔官方网站 是由场景和需求推动的,在自己所处的领域、场景和需求中尝试做到最好。
PS:能让我们将上述学习到的所有内容进行实际的落地和尝试。

二、刻意练习:从局部到整体

优化原有代码:自己写的代码能否尝试优化,抽象,封装,甚至开源协同推广给其他人。

业务需求:新的业务需求是否有用更优的方案实现,是否可以花更多时间去仔细研究。

开源协同:参与到内外部开源协同中,接触更多的优秀代码,接触更多的业务场景和需求,详情可见威廉希尔官方网站 图谱。

不断成长:不断稳固基础,不断在上述3项中成长,不断吸取领域前沿知识并反思落地,相关成长还可以分享到威廉希尔官方网站 论坛

03 编程水平的提升是解决问题能力的提升@Liquan.楼主提问的真实内涵是为了提高自己的编程水平,那大多数人都会建议多写一代码,量变才会有质变。这里就要看看“量”变的量到底是代码量的积累还是其他,这里结合自身的一些经验谈谈:编程水平的提升,不仅仅是代码量的提升,归根结底是解决问题的综合能力的提升。分享一下我大学的编程故事:大学的时候参与过一些软件开发项目(C语言、网络协议实现),当时是一行代码10块钱(大括号也算一行),也就是说,像一般的学生来做,写个1-2千行代码,其实创造的收入也会有几万块,现在想想依然还是会兴奋的搓搓小手,当然前提是代码质量和功能均能够通过评审;当时因为是和传统软件厂商合作,所以项目都是严格的遵守项目流程的,采用的流程是V模型,大概会经历这几个阶段:47b0bb04-035b-11ed-9ade-dac502259ad0.png在这个流程下,前期的需求分析,概要设计和详细设计大概会占到2个多月,后期的单元测试,集成测试等也会占到2个多月,实际代码开发的时间一般不到1个月,所以真正编码的时间可能仅占整个项目的不到20%左右的时间。项目前期的需求分析、拆解以及概要设计一般是项目经理(公司的资深经理)带着几个项目骨干完成,详细的流程图、设计图和文档等,作为菜鸟一般就继续结合相关业务知识完成详细设计和编码,以及后面的功能验收等;所以说编程能力仅仅是编码实现吗?至少从这个流程中看,对业务知识的理解、详细的设计等系统性的思考会比编码占据多的多的时间。所以编程水平绝不仅仅只是把代码写好了,它是一个系统工程,归根结底还是高质量、高效地解决实际业务问题。编程水平的提升过程,在我看来应该是这样一个过程:1、能够把简单的业务需求转变成代码逻辑,并能够高效的完成;
2、针对小型的项目能够将业务的实际问题拆解成详细的需求,能够完成整体方案的设计和选型;
3、再往上就是能够完成较大项目的设计,能够设计多种方案,并且明白所有方案的优缺点以及当前业界方案的优缺点来选择最优,能够根据实际问题突破关键性难点,取得原创性的成果,最终达到系统的最优。所以对于我们来说一般做到第1.2 层面也许就够了,可以:1、多写代码,多总结思考,参考编程规范,写出高质量的代码2、将一些常用模块抽象成库,尽量的复用已有模块;3、熟悉常见的一些设计模式,并基于此解决项目中实际的问题;4、了解业界同行在相同项目上的方案,并知道优缺点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3422

    浏览量

    92053
收藏 人收藏

    评论

    相关推荐

    盘点2023,机器人行业大件事TOP5

    才,但是机器人行业不同其他,可以说是国家基础工业的缩影,没有过硬的威廉希尔官方网站 实力,纯靠资本短期的驱动,是很难量变到质变
    的头像 发表于 01-04 09:20 165次阅读
    盘点2023,机器人行业大件事TOP5

    浅谈无人机行业从量变到质变的实例

    有个客户需要921.6K的波特率,笔者看了下XLR模块的说明书,可以满足,就信心满满地调试。结果却是X-CTU读出XLR的型号后,就无法读出具体参数了。笔者先是问了原厂威廉希尔官方网站 支持,说是怀疑XLR本身有问题。
    发表于 11-30 10:48 113次阅读
    浅谈无人机行业从<b class='flag-5'>量变到</b><b class='flag-5'>质变</b>的实例

    为什么锂电池用一端时间后电池容量变低?

    为什么锂电池用一端时间后电池容量变低?
    的头像 发表于 11-27 15:45 216次阅读
    为什么锂电池用一端时间后电池容<b class='flag-5'>量变</b>低?

    编程语言的加载和执行过程

    上一章着重讲了指令,我们用汇编、C语言等工具编写的代码最终也被转化成机器指令被执行。本章进一步阐述编程语言如何被加载和执行的过程
    的头像 发表于 10-31 10:13 246次阅读
    <b class='flag-5'>编程</b>语言的加载和执行<b class='flag-5'>过程</b>

    半导体行业之半导体工业(九)

    在之前众多威廉希尔官方网站 的量变积累之上,终于触发质变效应,仙童半导体公司引入了平面化威廉希尔官方网站 ,将之前的这些点威廉希尔官方网站 集合到了一起。
    的头像 发表于 10-27 11:23 325次阅读

    大模型意味着人工智能的质变时刻已经到来!

    IBM 大中华区董事长、总经理陈旭东这样说道:“ChatGPT 的横空出世,证明了大语言模型是一条走得通、通往未来 AI 的道路,也意味着 AI 的发展经过几十年的算法、算力、数据方面的量变积累,‘质变时刻’已经到来。”
    的头像 发表于 09-15 16:23 285次阅读

    AI开发赋能千行百业 华为云盘古大模型3.0发布

    工信部副部长徐晓兰表示,新一代人工智能以深度学习算法为代表,引领着发展热潮。通用人工智能以大模型为代表,不断取得威廉希尔官方网站 突破,实现了从感知向认知、从量变到质变的跨越。
    的头像 发表于 07-10 15:44 729次阅读

    应用113B26测量柴油机燃油喷射动量变化率

    喷射率和动量变化率是描述喷油嘴喷射过程的重要特征量,喷射率是指单位时间内流过喷油嘴的燃油质量,用于精确表征发动机工作过程中燃油进入气缸的瞬态量,动量变化率用于描述燃油的混合程度。例如,
    的头像 发表于 06-07 14:32 350次阅读
    应用113B26测量柴油机燃油喷射动<b class='flag-5'>量变</b>化率

    TTL电平从3.3V变到到2.8V,用电阻和三极管实现怎么连接啊?

    TTL电平从3.3V变到到2.8V,用电阻和三极管实现怎么连接啊?
    发表于 04-19 16:58

    量变送器的特点

    编程功能:电量变送器提供多个协议兼容性、集成度高而且无需正在使用时停电,且具有高度的可编程能力,使其适合于各种特定应用,适应多种复杂的电能测量场景。
    发表于 04-16 11:47 269次阅读

    量变送器的作用

    量变送器的一般原理框图见电量变送器的一般原理框图。根据所采用的威廉希尔官方网站 ,并非图表中列出的所有组件都是必不可少的。变送器测量电压信号和电流信号。
    发表于 04-16 11:38 1006次阅读

    什么是电量变送器

     电量变送器是一种电力检测仪器,其可以把变送接线板传感器测得的电流和电压信号,转换成对应的电量信号,并通过标准接口输出,实现对电量的检测和测量。
    发表于 04-16 11:34 941次阅读

    在FPGA开发过程中,编程与配置这两操作有什么区别?

    在FPGA开发过程中,编程与配置这两操作有什么区别?
    发表于 04-06 14:44

    labview中如何知道布尔灯状态为真的时间

    labview中如何知道布尔灯状态为真的时间,想知道具体是多少ms那种
    发表于 03-16 07:55

    展会动态 | 同星智能亮相2023第二届汽车芯片产业大会、中国汽车及零部件出海高峰论坛

    2023年2月21日-24日,第二届汽车芯片产业大会和中国汽车及零部件出海高峰论坛将于上海举办。如今我国汽车的产销量已占据全球的三分之一,中国汽车“破浪出海正当时”,自主品牌在海外的发展正经历从量变到
    的头像 发表于 02-22 14:29 417次阅读
    展会动态 | 同星智能亮相2023第二届汽车芯片产业大会、中国汽车及零部件出海高峰论坛