程序员思维修炼

时间:2024.5.4

程序员思维修炼

程序设计其实就是解决问题,它需要发明、创造和灵感。我想无论是从事什么职业,都可能需要创造性地去解决问题。然而,对于程序员,既要受到数字计算机系统的严格约束,又要展开丰富而灵活的人类思考,这就会展示两者的强大力量,又会深深地暴露两者的缺陷。

在这个公司,遇到的问题,有很多我是觉得很可笑(当然,也就是很可惜的,有时候我觉得是很悲催的)的,这是我可以想象和遇到的艰难的工作。它的复杂性容易白白耗掉许多时间——追着在后面擦屁股

也许是因为我们一直关注着错误的事情。尽管这个世界上的技术上有了很多显著的改变,但是有一样东西却始终没有变:我们自己——作为一个人,人性好像没有变过。 软件并不是在集成开发环境(IDE)或其他工具上开发设计出来的,它是在我们的大脑中想象和创造出来的。 思想和概念是需要在团队中分享和交流的。现在我们需要研究的真正难题是团队内部和团队间的交流,甚至更困难的问题是完全陈旧的思想。没有任何项目是孤岛,软件不可能孤立地创建或者运行。

我们必须学习学习再学习,持续不断的学习,然后把学习成果应用到解决日常遇到的一切新旧问题上。

也许,这些东西没有人教得了,我必须自己学习。

直觉是专家的基本特征,事实上难以驾驭。你需要它,依赖它,但也许也莫名其妙的反对经常使用它——说它是非科学的。

新手——高级新手——胜任者——精通者——专家 新手在该技能领域经验很少或者根本没有经验。这里说的经验,是指通过实施这项技术促进了思维的改变。举个范例:可能一个开发人员声称拥有十年的经验,但实际上是一年的经验重复了九次,那么,这就不算是经验。

新手需要这种形式的规则:“当X发生时,执行Y”。换言之,需要一份指令清单。当然,新手所面临问题时,对于某种情境,他不知道哪条规则是最相关的。当一些意想不到的事情发生时,他就会不知所措。

规则让新手启程,但不会让你走得更远。

高级新手

高级新手多多少少会摆脱固定的规则。他可以独自尝试任务,但仍然难以解决问题。

他想要快速获取信息。他能够根据过去的经验,逐步在正确的情境中采纳建议,但比较吃力。可以开始形成一些总体原则,但不是“全貌”。

胜任者

开始寻求和运用专家的意见,并有效利用。处于这一水平的人通常被认为是“有主动性”和“足智多谋”,但是即使在这一水平,仍然无法按照我们希望的方式来应用敏捷方法——大家还没有足够的能力反思和自我纠正。

精通者

这需要全局思维,这个水平上的人有一项重大突破:他们能够纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。到这个阶段,自我改进才会出现。

同时,他会学习他人的经验。能够阅读案例研究,倾听有关失败项目的流言蜚语,观察别人怎么做,从故事中认真学习,即使他没有亲自参与。

伴随向他人学习的能力而来的,是理解和运用格言经验之谈(maxim)的能力,这些经验之谈犹如谚语或格言,是可以应用于当前情景的基本原理。经验之谈不是指令清单,它们必须在一定的情境下使用。

专家

是各个领域知识和信息的主要来源。根据直觉工作,而不需要理由。

专家知道,哪些是无关紧要的细节,哪些是非常重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。

他非常擅长做有针对性的特征匹配。


第二篇:(总结)程序员的思维修炼


程序员的思维修炼

开发认知潜能的九堂课

我的总结

第一章:尝试改变自己。

第二章:德雷福斯模型。从整体角度看待问题。保持实践。学习如何学习的技能。

第三章:双cpu,L与R。多用脑,多记录想法。积极的情感。什么是创作?。多编码,深思熟虑,专注实践。

第四章:增加感观体验。R型开路,L型紧跟(从整体到局部)。使用隐喻(异类联想,培养幽默)。改变解决问题的角度

第五章:“很少”不意味着“没有”。从多个角度看待问题。你确信?你怎么知道的。凡事总有两面性。

第六章:学习能力可能是成功的最重要因素。技术不是最重要的,持续学习才是最重要的。教育的含义:从学习者那里引导出一些东西。仅仅掌握知识,而不去实践,没有用,随机的方法,没有目标和反馈,往往导致随机的结果。DMART目标。对主动学习的投资做好计划。很多教育家把学习者分为三大类:视觉型,听觉型和动觉型。

SQ3R学习一本书(或其他?)的方法:1,调查:扫面目录和每章总结,得出总体看法。2,问题:记录所有问题。3,阅读:阅读全部内容。5复述:总结做笔记,用自己的话来描述。5,回顾:重读,扩展笔记,与同事讨论。

主动阅读。R->L:首先是一种全盘,浅显但是广泛的调查,然后转换到传统的L型活动,扩大多重感官的参与(讨论,笔记,图片,隐喻等)。

使用思维导图。

同时用R型和L型做笔记。写文档的过程比文档本身更重要。观察,实践,教学。

第七章:积累经验是学习和成长的关键--我们通过实践的方法学习,效果最好。趣味性很重要。为了更好地学习,请更好地玩。在你的环境中安全地探索,创造和应用。当大脑受到压力,它会主动停止一些思考,眼界会缩小,不再考虑可能的选择,更糟糕的是,你会把R型完全拒之门外,L型主导一切,当你认为时间至关重要时,R型根本没机会工作。让大脑为成功形成惯例。从相似点中学习,从差异中忘却。记忆的每一次读取都是一种写入。

第八章:冥想:注意呼吸,顺其自然,不做任何判断和回应。

你需要随时随地做好准备捕捉信息,但是,一旦你捕捉到它,不能只让它呆在那里,这对你没有任何用处,你需要处理这些材料,组织它,发展它,合并不同的材料,并将整体的想法提炼和划分为更具体的想法。以为我们绝大多数人都没有百科全书的记忆力,一旦你读过一次,记得去什么地方找到对应的细节就足够了。一旦你选择一组工作,就要持续进行,避免情境切换。动态刷新头脑中的清单是相当昂贵的,应该在外部信息系统中保持待办事项清单。

第九章:真正的发现之旅不在于追求新大陆,而在于拥有新的视野。"不作为"是敌人,而"错误"不是。当你变成专家之后,你最想追求的事情是。。。新手的思维。

第一章 绪论(p1)

软件并不是在集成开发环境IDE或者其他工具上设计出来的,它是在我们大脑中想象和创建

出来的。(p2)

当前最重要的两项技能就是:沟通能力,学习和思考能力(p2)

利用计算机模型类比人类的思维过程(p4)

生命中没有什么是恒久不变得,只有死鱼才随波续流,尝试改变自己(p4)

诀窍1:始终关注情景(p5)

第二章 从新手到专家的历程(p11)

德雷福斯技能获取模型,概括了从新手到专家必须经历的五个阶段。(p11)

德雷福斯模型的5个阶段:1新手,2高级新手,3胜任者,4精通者(他们能够纠正以往不好的工作表现他们会反思以前是如何做的,并修改其做法,期望下一次表现的更好,到这个阶段,自我改进才会出现),5,专家(直觉是专家的工具)

我已经见过很多年轻的程序员(1-5年经验)从来没有做过一个成功的项目(p22) 诀窍2:新手使用规则,专家使用直觉(p24)

新手到专家,重要的三个变化:(1)从依赖规则到依赖直觉的转变(2)观念的改变,问题已经不再是一个相关度等同的所有单元的集合体,而是一个完整的独特的整体。(3)最后,从问题的旁观者转变为问题涉及的系统本身的一部分。(p24)

诀窍3:知道你不知道什么(p25)

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

诀窍4:通过观察和模仿来学习(p29)模仿->吸收->创新

我们需要研究如何在项目中实践尽可能多的现有技能(p30) 诀窍5:保持实践以维持专家水平(p31)

诀窍6:如果你需要创造力,直觉或者独创能力,避免使用形式方法(p34)

在系统思维中,往往是事物之间的联系最让人感兴趣,而不是事物本身,这些联系有助于形成情境,而正是情境让这些事物各不相同。(p35)

诀窍7:学习如何学习的技能(p37)

第三章 认识你的大脑(p37)

大脑是双cpu,每次只有一个cpu可以访问内存,这两个cpu对应着大脑中两种不用的处理方式,线性L模式,异步,综合处理的R富模式。:R型对直觉问题解决和创造性非常重要,R型没有做任务语言处理,L型让你细致工作并实现目标。(p39) 大脑必须刷新,必须使用,否则就会丢失记忆.(p40)

随时记录想法(p42)

诀窍8:捕获所有的想法以从中获益更多(p44)

面对复杂的设计问题或者难以修改的bug,优秀的程序员通常都有冲动去编码和构建,由此可以从中学习,这就是R型的综合而不是L型的分析。(51)

诀窍9:综合学习与分析学习并重(p51)

积极的情感对学习和创造性思维非常关键,处于“高兴”的状态可以扩展你的思维过程,激

活更多的大脑物质。

如果处于一个丰富的环境中,里面充满了需要学习,观察和交互的事物,你就会产生大量的新细胞和新的神经联系(p55)

诀窍10:争取好的设计,它真的很有效(p55)

创造来自于选择和组装,他要选择最合适的部件,并将它们组装成最合适的表现形式,这就是创作。(56) 如果你想发现全局,整体的模式,需要R型,如果需要分析部分和细节,需要L型。(57) 诀窍11:重新连线大脑,坚信这一点并不断实践(p58)

好程序员,多编码,深思熟虑,专注实践。(59)

第四章 你用右脑(p60)

诀窍12:增加感观体验以促进大脑的使用(p61)

大脑善于持续适应变化的环境,因此,要定期改变环境,满足你的大脑(p62) 很多常见得活动都能够激活r型停止L型的占用:听音乐,绘画,静思,慢跑,等。(p63) 诀窍13:R型开路,L型紧跟(p68)

学习过程中,不要太迫于学会和记忆,首先只是适应它,试着理解其意思,掌握主旨思想,然后再采取传统的L型活动走下一步。(p69)

L型和R型在隐喻上(也就是创建类比的过程中)是想通的(p71)

诀窍14:使用隐喻作为L型和R型相融之所(p71){电脑的隐喻:窗,鼠标,老鼠,回收站,垃圾桶}

当异类联想时,这种联系越不可能(两参照系相距越远),创造性的成果就越大。

轻声!那边窗子里亮起来的是什么光?那就是东方,朱丽叶就是太阳!;;爱情是叹息吹起的一阵烟;;哲学是逆境中的蜜乳。(p73)

幽默既不是浪费时间,也不是无害的消遣,而是反映了思维,学习和创造所必须的重要能力,他与联系有关。(75)

语锋陡转真是幽默的来源(p75)

诀窍15:培养幽默感以建立更强大的隐喻(p75)

诀窍16:离开键盘区解决难题(p84)

努力从不同的角度看待问题,这是获取洞察力的诀窍(p87)

诀窍17:改变解决问题的角度(p88)

第五章 调试你的大脑(p93) 四大类问题:认知偏见,时代影响,个性倾向;(p94)

诀窍18:“很少”不意味着“没有”(p99)

诀窍19:适应不确定性(p100)

随着项目进展,你会逐步找到答案,最终一切都有答案(p100)

好记性不如烂笔头(p101)

诀窍20:信任记录而不是记忆,每一次思维的输出都是一次输入(p101)

诀窍21:从多个角度看待问题(p109)

诀窍22:尊重不同人的不同性格(p109)

诀窍23:像高级动物一样行动,请坐深呼吸,而不要张口鸣(p115)

R型到L型,该开始思考时是全局和经验性的,然后转换到更常规的实践和技能,从而实现学习过程。(p116)

诀窍24:相信直觉,但要验证(p116)

当你坚信某件事情的时候问问自己原因。你确信老板在报复你,你怎么知道的?(要抱有怀疑和追寻根源的态度)(p117){p167:鸡蛋不一定都是白色的}

凡事总有两面性,仔细权衡,积极和消极的两面,有助于确保你更全面地评估形势。(p118) 我们通过逻辑来证明,通过直觉去发现--庞加莱(p118)

第六章 主动学习(p119)

在当今技术和环境下,学习能力可能是成功的最重要因素,它决定了你是“大获全胜”,还是“勉强通过”。(p119)

技术不是最重要的,持续学习才是最重要的。(p119)

教育的含义:从学习者那里引导出一些东西(p120)

学习不是强加于你的,而是你需要主动做的事情。仅仅掌握知识,而不去实践,没有用。随机的方法,没有目标和反馈,往往导致随机的结果。(p121)

DMART目标(specific,measurable,achievable,relevant,and time-boxed),具体的,可度量的,可实现的,相关的和时间可控的。(123)

诀窍25:建立DMART任务实现你的目标(p116)

你创建小任务越多,你就越容易看清自己与目标的距离。(p126)

诀窍26:对主动学习的投资做好计划(p128)

很多教育家把学习者分为三大类:视觉型,听觉型和动觉型(p130) 诀窍27:发现你的最佳学习方式(p134)

诀窍28:组织学习小组学习和辅导(p136)

我们都是天生的模仿者,最佳而且最有效的学习方式是观察和模仿别人(p136)

SQ3R学习一本书(或其他?)的方法:1,调查:扫面目录和每章总结,得出总体看法。2,问题:记录所有问题。3,阅读:阅读全部内容。5复述:总结做笔记,用自己的话来描述。5,回顾:重读,扩展笔记,与同事讨论。(p137)

诀窍29:主动阅读(p139)

R->L:首先是一种全盘,浅显但是广泛的调查,然后转换到传统的L型活动,扩大多重感官的参与(讨论,笔记,图片,隐喻等)。(p139)

使用思维导图(p140) 诀窍30:同时用R型和L型做笔记(p143)

诀窍31:写文档的过程比文档本身更重要(p146)

诀窍32:观察,实践,教学(p149)

第七章 积累经验(p150)

积累经验是学习和成长的关键--我们通过实践的方法学习,效果最好。(p150)

真正的学习--对你有用的学习--来自实践和认知,而不是外部的教学活动或者死记硬背。(p151)

趣味性很重要(p152)

诀窍33:为了更好地学习,请更好地玩(p53)

把事情分成大脑足以容纳的几部分(p154) 诀窍34:从相似点中学习,从差异中忘却(p155)

诀窍35:在你的环境中安全地探索,创造和应用(p156)

诀窍36:观察,不做判断,然后行动(p161)

当大脑受到压力,它会主动停止一些思考,眼界会缩小,不再考虑可能的选择,更糟糕的是,你会把R型完全拒之门外,L型主导一切,当你认为时间至关重要时,R型根本没机会工作。(p164)

诀窍37:允许失败,你会走向成功(p164)

想象自己成功被证明是一种达到成功的有效的方法(p167)

诀窍38:让大脑为成功形成惯例(p168)

记忆的每一次读取都是一种写入(p170)

第八章 控制注意力(p171)

好的问题是没有答案的,它不是一个需要拧紧的螺栓,而是一颗种下的种子,由他可以收获一片思想的绿洲(p171)

诀窍39:学习集中注意力(p174)

冥想:注意呼吸,顺其自然,不做任何判断和回应(p175)

在任何情况下,都要保持呼吸的意识,感受空气在你的肺中,并让其他的想法自然溜走(p176) 拖延与浸泡:如果某个任务你真的不想做,那么任何分散注意力的努力很可能只是耗费时间。如果你仍然有兴趣,但感觉“困难”,那么思想其实是在继续发酵,这当然没问题。(p178) 诀窍40:挤出思维的时间(p178)

你需要随时随地做好准备捕捉信息,但是,一旦你捕捉到它,不能只让它呆在那里,这对你没有任何用处,你需要处理这些材料,组织它,发展它,合并不同的材料,并将整体的想法提炼和划分为更具体的想法(p180)

以为我们绝大多数人都没有百科全书的记忆力,一旦你读过一次,记得去什么地方找到对应的细节就足够了。(p181)

爱因斯坦也深谙此道,据称他曾经被问到一英里有多少英尺,他回答说,他不会在头脑中填满能轻易找到的东西,这就是参考书籍的用处,这是一种有效使用资源的方式(p181) 诀窍41:使用wiki来管理信息和知识(p183)

多任务处理对生产力会造成重大损失,一项研究发现,一般情况下,多任务处理将耗费你20%到40%的生产力。 我们大脑没有“保存栈”或“重新加载栈”的操作(p186)

科学家认为,试图把注意力同时放在几件事上,意味着你在每件事情上都会处理得很差。so,无论你做什么请不要同时都做。(p187)

一旦你选择一组工作,就要持续进行,避免情境切换。动态刷新头脑中的清单是相当昂贵的,应该在外部信息系统中保持待办事项清单。(p190) 诀窍42:制定交流规则来管理干扰(p192)

诀窍43:少发送邮件,你就会少收到邮件(p193)

诀窍44:为邮件通信选择你自己的进度(p193)

你一直在持续努力地工作,你觉得越来越困难,或烦恼,或只是需要休息一下。可以,在白纸上随手涂鸦,或者随意走走,保持对情境友好的状态(p194)

诀窍45:屏蔽中断来保持注意力(p194)

如何保持注意力:我们鼓励你把冥想作为保持思维敏锐和清晰的工具。记住你需要集中注意力做什么。记住下面三件事:(1)学会安抚喋喋不休的L型思维,(2)主动在前进中思考和增强思想,即使是不成熟的。(3)明确情境切换的昂贵代价,尽可能地避免。(p199)

第九章 超越专家(p200)

真正的发现之旅不在于追求新大陆,而在于拥有新的视野(p200)

危险不在于做了错事,而在于根本没有去做事。("不作为"是敌人,而"错误"不是)(p201) 不管你能做什么,或者期望自己做什么,现在就开始做吧,勇敢可以给人智慧,力量和神奇,现在就开始做吧--歌德(p202)

当你变成专家之后,你最想追求的事情是。。。新手的思维。(新手的大脑有很多可能性,但是专家心理只有很少){专家太相信自己的专业水平,对其他的可能忽然不见}(p203) 维梅尔鼓励女孩像他一样看待世界:充满复杂和丰富的细节,这是我们都在面对的挑战--完全看清世界,不断看清世界,和我们自己。(p204)

诀窍48:抓住方向盘,你不能自动驾驶(p205)

更多相关推荐:
一个老程序员的心得

1个老程序员的心得size4不知不觉做软件已经做了十年有成功的喜悦也有失败的痛苦但总不敢称自己是高手因为和我心目中真正的高手们比起来还差的太远世界上并没有成为高手的捷径但一些基本原则是可以遵循的1扎实的基础数据...

10年程序员的心得体会与人生感悟

10年经验的程序员的心得展望未来总结过去10年的程序员生涯给程序员小弟弟小妹妹们的一些总结性忠告走过的路回忆起来是那么曲折把自己的一些心得体会分享给程序员兄弟姐妹们虽然时代在变化但是很可能你也会走我已经做过的1...

程序员培养心得

中专一年级的第二学期,我决定选择电脑作为我的主攻方向。最开始我选择计算机等级考试作为检验自己能力的一种手段。计算机等级考试只是一种能力的证明。它不与任何职称、待遇挂上勾。二年级的时候,我通过了全国计算机二级考试…

Java开发程序员的一点心得

Java开发程序员的一点心得作为一个java开发程序猿呢要做到眼高手低如何眼高手低呢1眼高要时刻关心最新的技术最新的框架最新的开发方式2手低把基础弄扎实了尤其是数据结构方面的知识下面推荐一下我个人的Java学习...

顶级程序员的心得

顶级程序员的心得CodersatWork收藏此文于20xx1212被推荐到CSDN首页此文于20xx1201被推荐到CSDN首页如何被推荐原文在wwwyishancc连载现在合成一篇读了CodersatWork...

一个老程序员的心得

1个老程序员的心得size4不知不觉做软件已经做了十年有成功的喜悦也有失败的痛苦但总不敢称自己是高手因为和我心目中真正的高手们比起来还差的太远世界上并没有成为高手的捷径但一些基本原则是可以遵循的1扎实的基础数据...

谈谈程序员找工作的教训总结

谈谈程序员找工作的教训总结,内容附图。

20xx程序员工作总结范文

20xx程序员工作总结范文一年的时间每当自己在总结它的时候感觉是那么的短暂弹指一挥间而也就是在这一挥间承载着太多太多有收获与成就有失败与不足回头看看20xx年的足迹伴随着自己一年的是学习与坚持20xx年伊始是通...

程序员试用期转正工作小结

程序员试用期转正工作小结尊敬的领导我于xxxx年9月11日成为本公司技术部的一名net程序员三个月的试用期转眼就过去了这段我人生中弥足珍贵的经历给我留下了精彩而美好的回忆在这段时间里您们给予了我足够的关怀支持和...

程序员工作总结

程序员工作总结篇一程序员gt工作总结光阴如梭半年的工作转瞬即将成为历史伴随着新年钟声的临近我们依依惜别硕果累累的20xx年满怀热情的迎来即将到来的20xx年在这年终之际现对来公司5个月的时间里所作的gt工作汇报...

20xx程序员工作总结

20xx程序员工作总结第1篇程序员工作总结光阴如梭半年的工作转瞬即将成为历史伴随着新年钟声的临近我们依依惜别硕果累累的20xx年满怀热情的迎来即将到来的20xx年在这年终之际现对来公司5个月的时间里所作的工作汇...

程序员实习实习报告总结

程序员实习实习报告总结时光匆匆转眼间20xx年结束了我的实习生活也结束了我是一名程序员在这几天内我似乎过了半年又似乎是一瞬间又好像做了一个很长很长的梦梦醒的时候我就回到了我的学校三年时间应该说是或多或少有些收获...

程序员心得(6篇)