编程五年,原来我还只是一个高级新手 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
little2song
V2EX    程序员

编程五年,原来我还只是一个高级新手

  •  
  •   little2song 2022-09-17 15:24:14 +08:00 6734 次点击
    这是一个创建于 1122 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image-20220917011719330

    我大二开始接触编程,如今已经过了五年,本以为自己即使没有多厉害,但是也好歹可以在社区指点一二了,但是最近看了这本书,发现自己不过是个高级新手而已img

    今天,我就来分享,阅读此书的前半部分后,我的所思所得,也希望忙于需求和解 bug 的程序员们来驻足一下,重新审视自己的思维方式

    我自己在需求中遇到编程难题时,经常是这样解决:

    1. 将报错信息或者疑惑在 google 中搜索,大概率看到 stack overflow 网站出现,往后会有 csdn ,博客园等
    2. 点进去,不看问题,先看最高赞的描述,如果意思和我的想解决的是同一个问题,就复制代码,大致改改,黏到我的项目中

    如果生效并有时间,我会认真理解这段代码,确保没有副作用;如果没时间,就直接过了,反正,能跑就行

    img

    如果不生效,从步骤 1 再开始,如果 stack overflow 没有了,就选 csdn……

    靠着上面的步骤,我曾经解决过无数问题,但是有什么问题呢?我们来看下面的模型

    德雷福斯模型

    这个模型,主要是按照水平将程序员分为 5 个阶段

    img

    下面的加粗部分是水平的核心描述词,大家可以对照下自己处于的水平

    • 新手:靠着指令清单可以解决问题,但是需要脱离情境

    但是一旦遇到与清单不符的事情就没辙,比如各种装机,配环境教程,一般新手遇到与教程不符合的场景就没办法了,所以这类教程一般需要详细再详细

    • 高级新手:可以独立尝试完成任务,但是很难靠自己完全解决,高级新手不想要全局思维,以下是书中描述:

    他们想要快速获取信息。例如,当学习一门新语言或 API 时,你可能会感觉到这点,你发现自己会快速浏览文档以寻找一个方法定义或参数列表。你不想在此刻寻根究底,或者重新温习一遍基础知识。

    高级新手能够根据过去的经验,逐步在正确的情境中采纳建议,但比较吃力。同时,他们能够开始形成一些总体原则,但不是“全貌”。他们没有全面的理解,而且的确不想有。

    上面这段话,完全匹配我我解决编程遇到问题时的情景……读得我后背发凉,手心冒汗,要是我继续以前的方法,估计我就算工作十年,也仍然是一年经验循环十年的高级新手

    • 胜任者:能够建立问题域的概念模型,有效地使用它们,并解决问题,

    我觉得一般每个组里面都有那么两三个人很让人很放心,几乎没有出过错,每次问进度都是顺利完成那种……

    • 精通者:需要全局思维。他们将围绕这个技术,寻找并想了解更大的概念框架

    这种就属于架构师级别了,一个很大的需求,能够拆解出对应的技术栈,分配给到对应的人处理,一般这种人都能当上 leader ,或者是组里面的救火队员,仅仅凭借听你的问题描述就大致猜出问题所在

    另外,精通者属于靠近专家的水平,从胜任者到精通者是质的飞跃,大部分人一生只能到胜任者

    • 专家:靠直觉工作,多的就不说了,这不是光靠努力就能达到的,不在我们今天的讨论范围

    不知道你属于哪种水平,我现在,且预计未来两年内,可能都还是处于高级新手的行列,因为坦白讲,在我做需求时,我经常会遇到靠我自己无法解决的问题与知识缺漏,没有谷歌,我早失业了……

    也不是说胜任者就不需要谷歌,只是也许不应该像我现在这么频繁

    关注情景,系统思维

    我想大多数人都处于新手或者高级新手的行列,而高级新手要想达到胜任者,其实也是质的跨越,因为有一个思维的鸿沟需要跨越,如果不是天赋异常,或者读书,靠自己恐怕很难琢磨清楚

    而现在,我就要告诉你,这个鸿沟是什么,以及去尝试跨越他

    我先问个问题,人是什么?

    如果你没有想过这个问题,可以先思考下,再继续看


    img

    古人说:人是没有羽毛的两腿动物

    然后有人就将鸡拔掉了羽毛,说,这就是你定义的人

    那么人到底是什么?

    你会发现,从这个思路上走,你需要说无数个限定词,人是,

    没有羽毛,但有头发,但也可能没有头发

    两腿,但也可以一条腿或者没有腿

    双眼,但也可以一只眼或者没有眼

    ……

    根本无法下定义,因为你犯了上面模型中说的“新手”错误,也就是

    新手:靠着指令清单可以解决问题,但是需要脱离情境

    人的状态实在太多了,任何脱离情境的指令清单都无法全部囊括,只有胜任者的问题模型 和 精通者的全局思维能够描述

    比如马克思的:人是一切社会关系的总和

    这句话,将人放入了社会当中,人不是独立的个体,而是系统特定功能的一部分

    人的状态是无穷的,系统的一部分组合也是无穷的,无穷就可以穷尽无穷,只需要找到系统中具有共性的一部分作为人的定义即可

    同样的道理

    问题是什么?问题也不是独立存在的实体,是系统内部的元素交互产生的错误关系,****我解决的不是某个独立的问题,而是将系统内部某些部分的错误关系,修正了

    在解决问题时,除了看问题本身,还要看到背后的系统关系,抽丝剥茧,顺藤摸瓜,不断完善,即使前路漫漫,但这是从高级新手迈向胜任者的必经之路,也是建立问题模型的必要考验

    这条路注定枯燥,所以需要有效的方法,每个人的方法各不相同,但是究其本质,需要满足以下四点

    1. 需要一个明确定义的任务。
    2. 任务需要有适当难度有挑战性但可行。
    3. 任务环境可以提供大量反馈,以便于你采取行动。
    4. 提供重复犯错和纠正错误的机会。

    比起更加枯燥的理论学习,编程开发,所见即所得,也许是最适合满足上面要求的领域之一了,毕竟当编译代码的时候,编译器永远永远忠实的告诉你,你到底出了多少错误

    img

    从现在开始,愿看到此文的你,与我一起突破高级新手的思维桎梏吧

    20 条回复    2022-09-19 10:56:41 +08:00
    sanyuedev
        1
    sanyuedev  
       2022-09-17 15:26:59 +08:00
    如果是使用上的问题,我会先看一下官方文档;
    hay0577
        2
    hay0577  
       2022-09-17 15:35:25 +08:00
    我一般选择重启项目试试看如果不行那我就重启电脑...
    shijingshijing
        3
    shijingshijing  
       2022-09-17 15:45:19 +08:00   55
    说实话,结尾没放个二维码或者公众号,我是很失望的。
    BreadKiller
        4
    BreadKiller  
       2022-09-17 16:08:53 +08:00
    我现在遇到问题首先都是考虑看文档了,如果文档没办法解决再去 google stack overflow 之类的。
    iceheart
        5
    iceheart  
       2022-09-17 19:30:19 +08:00 via Android
    两只黄鹂鸣翠柳,一行白露上青天
    QKgf555H87Fp0cth
        6
    QKgf555H87Fp0cth  
       2022-09-17 19:34:43 +08:00
    我是中级新手
    StuFish
        7
    StuFish  
       2022-09-17 19:43:30 +08:00
    我是专家新手
    ppllss
        8
    ppllss  
       2022-09-17 20:16:24 +08:00
    超级新手
    KMpAn8Obw1QhPoEP
        9
    KMpAn8Obw1QhPoEP  
       2022-09-17 20:18:53 +08:00 via Android
    我是骨灰级新手
    gzf6
        10
    gzf6  
       2022-09-17 20:34:26 +08:00 via Android
    我才刚上路呢
    ila
        11
    ila  
       2022-09-17 20:41:55 +08:00 via Android
    作者或官方的网站,文档,sample
    little2song
        12
    little2song  
    OP
       2022-09-17 21:25:18 +08:00
    @shijingshijing 有是有,但是不强求哈哈哈
    little2song
        13
    little2song  
    OP
       2022-09-17 21:27:54 +08:00
    @BreadKiller 文档根本没有重点呀,得找很久
    garyox64
        14
    garyox64  
       2022-09-17 22:45:40 +08:00
    这几个等级应该也不是完全从 1-5 晋级关系吧
    我觉得更像是知识积累和解决问题的逻辑关系,新的知识了解不多的时候,自然只能 google ,随着了解多了,会开始总结通用的东西,总结架构,思考如何自动化解决,所以我理解高级新手 阶段其实是已经开始酝酿积累了,后几个阶段大概是 水到渠成的阶段
    GP1
        15
    GP1  
       2022-09-17 23:06:00 +08:00
    你这只是从思维方面来分级的,只能算程序员生涯成长下面的子类。
    reeco
        16
    reeco  
       2022-09-18 00:04:46 +08:00 via iPhone   3
    大二开始算才 5 年,不是新手是啥?
    EliteOtaku
        17
    EliteOtaku  
       2022-09-18 07:51:50 +08:00
    ……其实就是个追根溯源的能力,要知其所以然
    Junzhou
        18
    Junzhou  
       2022-09-18 08:11:32 +08:00
    @reeco 大二开始,其实实际编程的工作经验也就两年(逃)
    lysS
        19
    lysS  
       2022-09-18 14:06:00 +08:00
    这玩意和哪些成功学、商业学的书差不多,没啥啥屁用。难道下次遇到具体的问题不是先把它解决了?
    xqk111
        20
    xqk111  
       2022-09-19 10:56:41 +08:00
    难以逾越的鸿沟是知道和做到,知道是知道某一个知识点(类似八股文),做到是多写代码,最后有一天能做到是知行合一(理论结合实践)。知道很重要,做到也很重要,知行合一存粹靠运气(参考平凡的世界中觉醒期的意思)。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2973 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 13:28 PVG 21:28 LAX 06:28 JFK 09:28
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86