我大二开始接触编程,如今已经过了五年,本以为自己即使没有多厉害,但是也好歹可以在社区指点一二了,但是最近看了这本书,发现自己不过是个高级新手而已
今天,我就来分享,阅读此书的前半部分后,我的所思所得,也希望忙于需求和解 bug 的程序员们来驻足一下,重新审视自己的思维方式
我自己在需求中遇到编程难题时,经常是这样解决:
如果生效并有时间,我会认真理解这段代码,确保没有副作用;如果没时间,就直接过了,反正,能跑就行
如果不生效,从步骤 1 再开始,如果 stack overflow 没有了,就选 csdn……
靠着上面的步骤,我曾经解决过无数问题,但是有什么问题呢?我们来看下面的模型
这个模型,主要是按照水平将程序员分为 5 个阶段
下面的加粗部分是水平的核心描述词,大家可以对照下自己处于的水平
但是一旦遇到与清单不符的事情就没辙,比如各种装机,配环境教程,一般新手遇到与教程不符合的场景就没办法了,所以这类教程一般需要详细再详细
他们想要快速获取信息。例如,当学习一门新语言或 API 时,你可能会感觉到这点,你发现自己会快速浏览文档以寻找一个方法定义或参数列表。你不想在此刻寻根究底,或者重新温习一遍基础知识。
高级新手能够根据过去的经验,逐步在正确的情境中采纳建议,但比较吃力。同时,他们能够开始形成一些总体原则,但不是“全貌”。他们没有全面的理解,而且的确不想有。
上面这段话,完全匹配我我解决编程遇到问题时的情景……读得我后背发凉,手心冒汗,要是我继续以前的方法,估计我就算工作十年,也仍然是一年经验循环十年的高级新手
我觉得一般每个组里面都有那么两三个人很让人很放心,几乎没有出过错,每次问进度都是顺利完成那种……
这种就属于架构师级别了,一个很大的需求,能够拆解出对应的技术栈,分配给到对应的人处理,一般这种人都能当上 leader ,或者是组里面的救火队员,仅仅凭借听你的问题描述就大致猜出问题所在
另外,精通者属于靠近专家的水平,从胜任者到精通者是质的飞跃,大部分人一生只能到胜任者
不知道你属于哪种水平,我现在,且预计未来两年内,可能都还是处于高级新手的行列,因为坦白讲,在我做需求时,我经常会遇到靠我自己无法解决的问题与知识缺漏,没有谷歌,我早失业了……
也不是说胜任者就不需要谷歌,只是也许不应该像我现在这么频繁
我想大多数人都处于新手或者高级新手的行列,而高级新手要想达到胜任者,其实也是质的跨越,因为有一个思维的鸿沟需要跨越,如果不是天赋异常,或者读书,靠自己恐怕很难琢磨清楚
而现在,我就要告诉你,这个鸿沟是什么,以及去尝试跨越他
我先问个问题,人是什么?
如果你没有想过这个问题,可以先思考下,再继续看
古人说:人是没有羽毛的两腿动物
然后有人就将鸡拔掉了羽毛,说,这就是你定义的人
那么人到底是什么?
你会发现,从这个思路上走,你需要说无数个限定词,人是,
没有羽毛,但有头发,但也可能没有头发
两腿,但也可以一条腿或者没有腿
双眼,但也可以一只眼或者没有眼
……
根本无法下定义,因为你犯了上面模型中说的“新手”错误,也就是
新手:靠着指令清单可以解决问题,但是需要脱离情境
人的状态实在太多了,任何脱离情境的指令清单都无法全部囊括,只有胜任者的问题模型 和 精通者的全局思维能够描述
比如马克思的:人是一切社会关系的总和
这句话,将人放入了社会当中,人不是独立的个体,而是系统特定功能的一部分
人的状态是无穷的,系统的一部分组合也是无穷的,无穷就可以穷尽无穷,只需要找到系统中具有共性的一部分作为人的定义即可
同样的道理
问题是什么?问题也不是独立存在的实体,是系统内部的元素交互产生的错误关系,****我解决的不是某个独立的问题,而是将系统内部某些部分的错误关系,修正了
在解决问题时,除了看问题本身,还要看到背后的系统关系,抽丝剥茧,顺藤摸瓜,不断完善,即使前路漫漫,但这是从高级新手迈向胜任者的必经之路,也是建立问题模型的必要考验
这条路注定枯燥,所以需要有效的方法,每个人的方法各不相同,但是究其本质,需要满足以下四点
比起更加枯燥的理论学习,编程开发,所见即所得,也许是最适合满足上面要求的领域之一了,毕竟当编译代码的时候,编译器永远永远忠实的告诉你,你到底出了多少错误
从现在开始,愿看到此文的你,与我一起突破高级新手的思维桎梏吧
1
sanyuedev 2022-09-17 15:26:59 +08:00
如果是使用上的问题,我会先看一下官方文档;
|
2
hay313955795 2022-09-17 15:35:25 +08:00
我一般选择重启项目试试看如果不行那我就重启电脑...
|
3
shijingshijing 2022-09-17 15:45:19 +08:00 55
说实话,结尾没放个二维码或者公众号,我是很失望的。
|
4
BreadKiller 2022-09-17 16:08:53 +08:00
我现在遇到问题首先都是考虑看文档了,如果文档没办法解决再去 google stack overflow 之类的。
|
5
iceheart 2022-09-17 19:30:19 +08:00 via Android
两只黄鹂鸣翠柳,一行白露上青天
|
6
likunyan 2022-09-17 19:34:43 +08:00
我是中级新手
|
7
StuFish 2022-09-17 19:43:30 +08:00
我是专家新手
|
8
ppllss 2022-09-17 20:16:24 +08:00
超级新手
|
9
enchilada2020 2022-09-17 20:18:53 +08:00 via Android
我是骨灰级新手
|
10
gzf6 2022-09-17 20:34:26 +08:00 via Android
我才刚上路呢
|
11
ila 2022-09-17 20:41:55 +08:00 via Android
作者或官方的网站,文档,sample
|
12
little2song OP @shijingshijing 有是有,但是不强求哈哈哈
|
13
little2song OP @BreadKiller 文档根本没有重点呀,得找很久
|
14
garyox64 2022-09-17 22:45:40 +08:00
这几个等级应该也不是完全从 1-5 晋级关系吧
我觉得更像是知识积累和解决问题的逻辑关系,新的知识了解不多的时候,自然只能 google ,随着了解多了,会开始总结通用的东西,总结架构,思考如何自动化解决,所以我理解高级新手 阶段其实是已经开始酝酿积累了,后几个阶段大概是 水到渠成的阶段 |
15
GP1 2022-09-17 23:06:00 +08:00
你这只是从思维方面来分级的,只能算程序员生涯成长下面的子类。
|
16
reeco 2022-09-18 00:04:46 +08:00 via iPhone 3
大二开始算才 5 年,不是新手是啥?
|
17
EliteOtaku 2022-09-18 07:51:50 +08:00
……其实就是个追根溯源的能力,要知其所以然
|
19
lysS 2022-09-18 14:06:00 +08:00
这玩意和哪些成功学、商业学的书差不多,没啥啥屁用。难道下次遇到具体的问题不是先把它解决了?
|
20
xqk111 2022-09-19 10:56:41 +08:00
难以逾越的鸿沟是知道和做到,知道是知道某一个知识点(类似八股文),做到是多写代码,最后有一天能做到是知行合一(理论结合实践)。知道很重要,做到也很重要,知行合一存粹靠运气(参考平凡的世界中觉醒期的意思)。
|