程序员思维修炼: 开发认知潜能的九堂课

程序员思维修炼: 开发认知潜能的九堂课

一个人痛苦的时刻也许是迷茫和走不出迷茫,我找到这本书是因为我在自己的职业生涯迷失了自己,有人曾说,你不需要将伟人作为目标,他只能是他,而你永远不会成为他,能促使我们不断进步的大多数时候是身边的强者,能看到他的身影,想追上他的步伐。

现在我又开始了独立开发,这注定是一条寂寞且容易迷失的路,我很慌张,因为失去了目标就会陷入深深的无聊,所以我找了很多书来读,希望能从前人大师的经验中,得到启发和方向。

这本书是关于思维和职业生涯讨论的一本书,也有一些实际方法传授,但总的来说和编程技术并无太大关系,同时涉及编程行业和其他行业面临问题的类比,揭示了软件开发行业和其他行业的共性,所以值得从事相关工作的人都读一读。

选读建议:

书籍内容较多,建议选读绪论,2.2 德雷福斯模型的5个阶段,5.2 认清时代影响,读完有兴趣可以阅读全本

德雷福斯模型5个阶段

规则只能让你启程,不会让你走的更远

德雷福斯将职业生涯分为,新手,高级新手,胜任者,精通者和专家,现在回想起大学的时光,学习最难的数学被称为基础学科,没有应用场景的学习是枯燥的,但高阶的抽象本身就是难以实例化的。这个划分,让抽象的职业生涯有了具体的映射的一面。

笔者进行软件开发,大致也有四年多了,所以我也在找职业生涯的位置和发展方向,我也尝试去回忆当初的一些场景,相信大家的经历都是类似的。

新手阶段 println(“hello world!”)

新手在该技能领域经验很少或者根本没有经验,经验是指通过实施这项技术促进了思维的改变(职业病)

在我的认知里,只有行业内的人(尤其QA)更容易因为软件使用过程中出现问题或逻辑错误而产生烦躁的情绪,甚至指出这是一个BUG,然后尝试复现,并有指责其背后公司的倾向。

在新手时,我得到了一份比较详细的文档,里面大致罗列了一些简单解释的Linux命令

//全量编译命令
$source build/envsetup.sh
$lunch tulip
$make  -j12

// 获取APK安装信息
$aapt d badging abc.apk | grep "versionName"
$aapt d badging /home/CORPUSERS/xp020179/abc.apk

在这个阶段,我不明白每个命令的含义,清楚的一点就是执全量编译命令会让我有三个小时的双手离开键盘的时间,因为CPU满载,这就像是我拿到了菜谱,等待20分钟后菜熟的感觉。

我们会有很多次新手的感觉和做法,因为我们知道的太少。

高级新手(mUser, user, sUser)

独自尝试任务,但仍难以解决问题

这个阶段,想要快速获取信息。例如当学习一门新语言或API时,你会快速浏览文档寻找demo,而不想寻根究底。书中有提到另一个阶段特性是没有全面理解的一些偏执。

我开始独立开发APP时,开始大量浏览博客,GitHub,在Android应用开发这个特定的时期(16-17)大量的优秀开源项目出现,代替Google官方的做法。每当有一个复杂功能时,优先会在GitHub上寻找相似解决方案,完成功能始终是摆在首位,同时也觉得技术最重要而行业则是其次。

胜任者

胜任者能够解决问题

有“主动性”和“足智多谋”,他们是团队里的好人,既可以指导新手,也不会经常骚扰专家。

这类人其实在这个行业的细分领域内是有一个代名词——攻城狮,以项目或自己的任务Deadline内完成为最高使命,甩锅水平也基本到达巅峰。

攻城狮看不到整个项目的样子,大部分时间是被形式化的晨会和项目排期表围绕,每天都会被Deadline和协作问题互相甩锅,直到一期项目结束和另一期项目开始。

精通者

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

对于过于简单化的信息,他们会非常沮丧。这个表现很明显的是在面试,如果你询问精通者Hello World怎么写,他们大概会笑,如果你询问,如何写一个列表,他们则会不知道你在问什么。

精通者能够自我纠正(甩锅倾向基本消失),能够纠正以往不好的工作表现,反思,并希望进步。

精通者也有足够的经验,知道下一步会发生什么,需要什么前提,如果没有发生又需要改变什么。他们非常明确哪些计划需要取消,而应该采取什么行动。

大多数独立开发的人或者项目的某一个方面的负责人都处于这一个阶段,他们在排期的时候,不可避免要根据过去的经验和一些可能出现的意外,进行整体的功能开发排期和验证。

工作中,可能会主动的重视单元测试和集成测试,注重项目的持久性,而不单单是完成当前任务的攻城狮做法。会严格要求参数的命名,方法的命名和需求的合理性,产品功能的合理性以及影响范围,对自己本行业的趋势和问题都有自己的敏感。

软件开发领域的一些最激动人心的新动向是面向处于精通和专家水平的开发人员的。

谈及大型的开源项目,类似鸿蒙等,开源方需要的也是精通者水平以上的从业人员

专家(砖家,转嫁)

他们著书,写文章,做巡回演讲。他们是当代的巫师。

在《有闲阶级论》中,荣誉性的工作属于有闲阶级,同样,不同于之前的四个阶段,专家脱离了杂役,而且不允许参与杂役性工作。专家(区分伪专家)的人数大约占总人数的1%~5%,专家根据直觉工作,而不需要理由。

书中有一个现实映射的例子很有趣:

例如,医生给病人看病。乍一看,医生说:“我认为,这病人得了BlosenPlatt综合症,最好做一些深入检查。”病人做了检查,结果证明医生是正确的。嗯,你可能要问,医生是怎么知道的?但医生很可能会回答:“他看上去不太舒服。”事实上,病人只是看起来“不太舒服”。不知怎的,在医生大脑里面的各种各样的经验、判断、记忆,以及所有其他的意识的帮助下,医生把病人身上的微妙线索结合在一起,就得出了诊断结论。也许,只是因为病人皮肤苍白,或是病人躺下时的姿势说明了问题,谁知道呢?不过,这位专家知道。专家知道哪些是无关紧要的细节,哪些是非常重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。专家非常擅长做有针对性的特征匹配。

亨特(Andy Hunt). 程序员的思维修炼:开发认知潜能的九堂课 (图灵程序设计丛书) (Chinese Edition) (Kindle 位置 411-418). 人民邮电出版社. Kindle 版本.


以上内容仅仅是此书开头的一部分简单介绍德雷福斯模型的基本定义。

我觉得另一部分值得认知的是”认清时代的影响“,《北京,北京》歌词中

人们在挣扎中相互告慰和拥抱,寻找着 追逐者奄奄一息的碎梦

让我大致了解到身边的人如何相互影响,并且和时代互相影响,所以清楚不同时代背景下大多数人的想法和时代特色,有助于我们找到自己前进的方向和有关价值的判断。


认清时代影响

在你出生时,世界上的任何事情都是平凡的,都是世界运转的天然组成部分。当你在十五岁到三十五岁之间时,世界上创造出的任何事物都是新鲜的、令人振奋的、革命性的,你可能以此为职业。三十五岁之后创造出的任何事物都是有悖于事物的自然顺序的。——道格拉斯•亚当斯,《怀疑的鲑鱼》

一些人会以忍受老板的辱骂为代价维持工作的稳定性。另一些人则会在感到一丝敌意后就立马打包走人。那些加班到深夜的人无法理解那些下午5点高高兴兴下班、回家与家人团聚的人,反过来也是一样

但,你和同龄人的偏见大致类似

作者以美国为例,但很具有参考价值,也不必要将中西方文化差异夸大而否定相似性,人性都是类似。

  • 大兵的一代,1901-1924

    务实,地道的美国建设者

  • 沉默的一代,1925-1942

    穿灰色法兰绒衣服的墨守成规者

  • 婴儿潮的一代,1943-1960

    道德仲裁人

  • X一代,1961-1981

    自由选手

  • 新千年一代,1982-2005

    忠诚,不冒险

  • 祖国的一代,2005-?

    刚刚出生或即将出生,这一代人的父母有一半是新千年一代

类似的,国内经常会以出生10年为周期来定义一代人,我们可能会在某个特定的时间段被贴上问题80后,问题90后,问题00后等等。没有人永远18岁,但永远有人18岁。当看到类似90后成为生育主力的时候,兴许就大致明白时代的循环,我们受到父母的世界观影响,同时传承了自己的世界观给下一代。世界观不断交替。

技术和时代

几年前,我们请的一个临时看孩子的人奇怪地看着厨房里的电话。“亨特先生,”她说,“把电话用绳绑起来真是个好主意,这样就不会别人偷走!就像银行里的写字笔一样。

”除了这个理由。她再想不出来为什么电话上要有一根线连着。在她的时代,所有的电话都是无绳座机或者手机。有绳电话作为一种科技必需品对她来说太奇怪了。

以下列举的就是这四种时代原型和其主要特征。

先知:高瞻远瞩、价值观

游牧民族:自由、生存、荣誉

英雄:利益共同体、富裕

艺术家:多元化、专业知识、法定诉讼程序

这些研究探索了每种原型的一代人如何创造下一代。一种原型创建了其反面原型,“代沟”就是明显的标志。那一代随后又创造了其反面,一直延续下去。

认识到时代的影响的同事,我们必须正视这种时代特有的偏见,当和同龄人沟通没有成本,而且大多数人同意你的观点,并不意味着你们的集体观点是唯一正确的。

调试你的大脑,我认为是能影响认知的一章,认清自己的认知范围才能开始看到知晓范围之外的内容。消除认知偏见仅仅是走出迷茫找到非偏见目标的前提。


其他内容

书中也有提到一些具体方法,例如结对编程,SQ3R法主动阅读,使用思维导图等等,一些实际的方法在工作和生活当中的建议,虽然谈不上字字珠玑,但也算是作者的一些总结了。

其他类似于对右脑的认知,已经有很多更好的著作,对编程工作映射也有一些,可以选读。

在具体的建议当中,我真正实践了”晨写“的方法,利用地铁的15分钟就可以完成。

总结

如果在职业生涯中遇到了自己的迷茫期,找不到方向和对比,可以在整个行业中寻找自己的位置和差距。

引用:亨特(Andy Hunt). 程序员的思维修炼:开发认知潜能的九堂课 (图灵程序设计丛书) (Chinese Edition) (Kindle 位置 1844-1846). 人民邮电出版社. Kindle 版本.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值