Thursday, December 17, 2015

pragmatic thinking and learning refactor your wetware 2 - 程序员的思维修炼--开发认知潜能



http://www.wklken.me/posts/2014/01/05/pragmatic-thinking-and-learning.html
不是教你学习如何写代码之类的,而是,如何使用大脑,培养习惯,训练自己的思维
方法论,有点类似程序员的成功学的味道,选择性阅读和实践
诀窍一:始终关注情境
诀窍二:新手使用规则,专家使用直觉
诀窍三:知道你不知道什么
诀窍四:通过观察和模仿来学习
诀窍五:保持实践以维持专家水平
诀窍六:如果你需要创造力,直觉或者独创技能,避免使用形式方法
诀窍七:学习如何学习的技能
诀窍八:捕获所有的想法以从中获益更多
诀窍九:综合学习与分析学习并重
诀窍十:争取好的设计,它真的很有效
诀窍十一:重新连线大脑,坚信这一点并不断实践
诀窍十二:增加感官体验以促进大脑的使用
诀窍十三:R型开路,L型紧跟
诀窍十四:使用隐喻作为L型和R型相融之处
诀窍十五:培养幽默感以建立更强大的隐喻
诀窍十六:离开键盘去解决难题
诀窍十七:改变解决问题的角度
诀窍十八:推迟下结论
诀窍十九:适应不确定性
诀窍二十:信任记录而不是记忆,每一次思维的输出都是一次输入
诀窍二十一:从多个角度看待问题
诀窍二十二:尊重不同人的不同性格
诀窍二十三:想高级动物一样行动,请做深呼吸,而不要张口嘶鸣
诀窍二十四:相信直觉,但是要验证
诀窍二十五:建立SMART任务实现你的目标
诀窍二十六:对主动学习的投资做好计划
诀窍二十七:发现你的最佳学习方式
诀窍二十八:组织学习小组学习和辅导
诀窍二十九:主动阅读
诀窍三十:同时用R型和L型做笔记
诀窍三十一:写文档的过程比文档本身更重要
诀窍三十二:观察、实践、教学
诀窍三十三:为了更好地学习,请更好地玩
诀窍三十四:从相似点中学习,从差异中忘却
诀窍三十五:在你的环境中安全地探索、创造和应用
诀窍三十六:观察,不做判断,然后行动
诀窍三十七:允许失败,你会走向成功
诀窍三十八:让大脑为成功形成惯例
诀窍三十九:学会集中注意力
诀窍四十:挤出思维时间
诀窍四十一:使用wiki来管理信息和知识
诀窍四十二:指定交流规则来管理干扰
诀窍四十三:少发送邮件,你就会少收到邮件
诀窍四十四:为邮件通信选择你自己的进度
诀窍四十五:屏蔽中断来保持注意力
诀窍四十六:使用多台显示器来避免情境切换
诀窍四十七:优化你的个人工作流以达到最大化情境
诀窍四十八:抓住方向盘,你不能自动驾驶

第一章 绪论

认知科学,神经学,学习和行为理论
对大脑进行重新设计和重新连线——更高效的工作
程序设计其实就是解决问题,需要发明,创造和灵感
软件开发失败——我们自己的错误造成的,我们自身往往增加了程序设计的难度
软件是在头脑中创造的
最重要的两项技能
沟通能力:简单,有效沟通的重要性
学习和思考能力: 学习能力,批判性的思考能力和创造力——完全取决于你自己
每个人都是不同的,尝试执行一些建议,在判断哪些对你有用
随着不断成长和适应,人么需要改变自己的习惯和方法
切忌随波逐流
一切都是互相关联的
没有什么事物是孤立存在的,一切都是系统和更大的情境的一部分
有些东西是基础的,各领域相通的
瑜伽和冥想

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

制造问题的思维方式无法用来解决问题 ——爱因斯坦
解释观察到的现象
事件理论:可以被测量,验证或证明
构建理论:无形的抽象,无法被证明.通过它的用处来很亮的,无法判断准确与否
新手和专家
专家——使工作看起来更轻松
通常很难把他们的行为恰如其分的解释清楚,如此熟练以至于已经变成无意识的。大量经验都是通过大脑而非语言、无意识区存储的,难以观察表述
清晰表述专业技能十分困难
新手和专家的根本区别,是他们看待世界的方式不同,反应也不同——不只是知道更多或者获得了技术,而且在如何认识世界,解决问题和形成思维模型等方面体验到的根本区别
德雷福斯模型针对每项技能
德雷福斯模型的5个阶段
1.新手:经验很少或者根本没有经验(通过实施这项技术促进了思维的改变)
        新手需要指令清单
        可以通过与情境无关的规则。但是,规则只能让你启程,不会让你走的更远
2.高级新手:能够多少拜托固定规则,可以独立尝试任务,但是仍难以解决问题
            高级新手想要快速获取信息,但是不追根究底
            能够根据过去经验,逐步在正确的情境里采纳建议,但是比较吃力——开始形成一些总体原则
            高级新手不需要全局思维
3.胜任者:建立问题域的概念模型,并有效地使用它们,可以独立地解决自己遇到的问题
          胜任者能够解决问题
          有主动性、足智多谋
          还没有足够的能力反思和自我纠正
4.精通者:需要全局思维,围绕这个技术,寻找并想了解更大的概念框架
          能够纠正以往不好的工作表现,会烦死以前是如何做的,并修改其做法,期望下一次表现得更好——自我改进
          会学习他人经验
          有足够的经验,知道下一步会发生什么
          可以有效地运用软件模式
          更像初级的专家,而不是高级的胜任者
5.专家:各个领域知识和信息的主要来源,总是不断地寻找更好的方法和方式去做事
        根据直觉做事,不需要理由
规则断送专家
直觉是专家的工具,但公司往往轻视它,错误地认为,不科学或不可重复
敏捷开发
开发人员之间存在20:1-40:1的生产力差异
企业的压力和所谓的公平,伤害了新手和专家
新手到专家的变化
从依赖规则想依赖直觉转变
观念变化,问题已不再是一个相关度等同的所有单元的集合体,而是一个完整的独特的整体,其中只有某些单元是相关的
从问题的旁观者转变为问题涉及的系统本身
大多数人都是高级新手
专家 != 老师
直觉和模式匹配能力超载了显性知识
十年成就专家?
大约十年的努力,需要辛勤工作
-需要一个明确定义的任务
-任务需要有适当的难度——有挑战性但可行
-任务环境可以提供大量反馈,以便于你采取行动
-提供重复犯错和纠正错误的机会

一旦你成为某个领域的专家,在别的领域成为专家就变得更容易
没有实践就没有技能,而且没有什么东西可以替代实践
模仿-吸收-创新
在实践中保持技能
优胜者不会帮扶失败者
编程专家必须持续编程,并找到一个有意义有价值的职业生涯
警惕工具陷阱——规则无法告诉你在某种情况下应该采取的最合适的行动,不要屈服于工具或者模型的虚假权威。没有什么可以替代思考
警惕非情境化的客观性
一种规格并非处处适用

第三章 认识你的大脑

L模式,线性模式:细致工作并实现目
语言能力
分析能力
符号能力
抽象能力
时间能力
推理能力
数字能力
逻辑能力
线性思维能力
R模式,富模式:直觉、问题解决和创造性,对于复杂的问题,不受直接意识控制。异步的,可以作为后台进程运行
非语言
非理性
综合
空间性
具体
直觉
分析
全面

能够提供直觉(专家必要)
随时记录想法(24*7)
钢笔、记事本、索引卡片、PDA、语音设备、
每个人都有好点子,点子价值并不高。拥有想法-跟踪想法-付诸行动-成功实现
设计胜于功能——商品化意味着美学品味的竞争
神经可塑性,意味着你能够学习的最大容量或者你可以获得的基恩能够数量不是固定的,没有上限,只要你相信这一点
多编码,深思熟虑,专注实践

第四章 利用右脑

启动感官输入——使用多感官技术,通过增强触觉获得成功 积木等
利用多感官反馈
刺激你的大脑
用右脑画画——学习绘画
激活右脑:听音乐、绘画、静思、慢跑、针线活、攀岩等等 建立L-R型互相转换
需要用R型打头阵,然后转到L型去“生产”出来
酒醉写作,酒醒修改——顺其自然,不要做完美主义者,如果想法过早的收到束缚,那么创造力就会被扼杀
结对编程——一个L型,一个R型
L型和R型在隐喻(创建类比的过程)相同
隐喻,一中激发创造力的强大技术
语言和意向共同的基础,实在左右半脑之间,在潜意识和意识之间游弋的途径
幽默能力都来自于发掘或者扩展常规之外的关系,真正突破思维界限
收获R型线索
你已经知道——一切输入都会被存储
许多想法无法用语言表述
利用图像流
利用自由日记
晨写技术——坚持天天写,限定页数,各类,不用审查,倾倒想法
自由写技术
利用散步——非目标驱动思维,把一切写到某个地方,不要试图思考,记住它,简单记住,让事实和问题自由地浸泡
收获模式
代码,一次编写,多次阅读
换种思路,角度——逆向思维,夸大想法,组合完全异类的想法

第五章 调试你的大脑

直觉是伟大的,除了当它不伟大的时候
四大问题 (读一读:批判性思维/决策与判断)
认知偏见——如何被误导:思维定势,基本归因错误,自私的偏见,需要定论,认可上的偏见
时代影响
个性倾向
硬件故障
推迟下结论——通过明确的概率进行猜想
记忆是靠不住的
认清时代影响——当你强烈的支持或赞成一个观点时,你的论据是逻辑性的还是情感作怪?
了解个性倾向(MBTI性格测评)
E/I 外向内向
S/N 感觉直觉
T/F 思考情感
J/P 判断知觉

INTJ 内向 - 直觉 - 思考 - 判断

第六章 主动学习

学习:
学习不是强加于你的,而是需要你主动做的事情
仅仅掌握知识,而不去实践,没有用
随机的方法,没有目标和反馈,往往会导致随机的结果
目标任务使你更靠近目标
SMART目标
具体,可度量,可实现,相关的,时间可控的
相关的:兴趣,热情
建立一个务实的投资计划
把技术和才干看做一个只是投资组合
制定具体计划
    现在(你的下一步行动)
    明年的目标
    五年后的目标
多样化
    不要把所有的鸡蛋放到同一个篮子里:更好地组合语言,环境,技术,行业和非技术领域(管理、公共演讲、人类学、音乐、艺术等)
主动投资
    需要客观地按天来评估你的计划,判断运作情况
定期投资
    成本平均法——养成一种习惯
使用你的原生学习模式
视觉型
听觉型
动觉型
多元智力
身体-动觉:体育、舞蹈、DIY项目、木工、工艺、烹饪
语言:口头辩论,讲故事、阅读和写作
逻辑-数学:数学,数字,科学,分类学,几何
视觉-空间:图标图解,素描,绘画等
音乐:演奏,识别声音,节奏,模式,记忆标语,诗文
人际:感情共鸣、感觉、意图、他人的鼓励
自我认知:自我反省、了解内心世界、梦,和他人的关系
一起工作一起学习
寻求建议
选择一项提议或者一个负责人
买书
安排午餐会议
使用增强的学习方法
主动阅读和总结书面材料的更好方式
使用思维导图探索和发现模式和关系
以教代学
SQ3R主动阅读
调查(Survey):扫描每章目录和总结,得出总的看法
问题(Question):记录所有问题
阅读(Read):阅读全部内容
复述(Recite):总结,笔记,用自己的话描述
回顾(Review):重读,扩展笔记,与同事讨论
使用思维导图

第七章 积累经验

积累经验是学习和成长的关键
通过构造来学习,而不是通过学习来构造
更好的利用反馈,让失败也变得有意义
让大脑提前为成功构建神经网络
真正的学习——对你有用的学习——来自实践和认知,而不是外部的教学活动或者死记硬背
玩耍的意义Play
非目的性的探索,不仅仅接受信息,而且亲自探索和构建思维模型,犯错,吸取经验
引入一种新奇的感觉,乐趣
用一种好玩的方式学习新资料或者解决问题,可以让这个过程变得更让人销售,也让学习变得容易
利用现有的知识
未知量是什么-已知量是什么-条件是什么?
正确对待实践中的失败——失败是成功的关键,但不是任意的失败,需要管理失败
一种高效有益的学习环境应该允许你安全地做三件事:探索、创造、应用
建立探索环境
自由实验-能够原路返回-重现任意时刻的工作产品-能够证实进展
了解内在诀窍
通过探索可以学得更好,而不是指令
培养情境反馈
意识
不要把精力放在纠正一个个细节上,只需要具有意识
不要想着来纠正,但是在出错的时候要知道,然后再采取行动纠正
压力扼杀认知——当面对时间压力时,人最没有创造力.面对压力时,我们要放松
允许失败——允许失败会促进成功.一旦允许失败,你就不会失败
想象超越感官——从大脑中获取经验
利用大脑模拟成功

第八章 控制注意力

信息过载,需要更好地管理你的思维
增强注意力
管理你的知识
优化当前情境
放松的,集中的注意力
如何冥想
沉浸到一种宽松的思维中,可以意识到自己和你的情境,不用做出任何判断和回应
——内观冥想:意识到某些事情,但是没有额外的思考

寻找一个安静的地方,拜托干扰或中断
舒适,清醒地坐着,挺直背
闭上眼睛,将注意力集中在呼吸
注意呼吸节奏,吸气的长度和质量,吸气后屏气的短暂间歇,呼气的质量,呼气后屏气的短暂间歇。不要试图去改变它,只是感受
将思维集中于呼吸,不要说或,不要描述任何想法,不要和自己交谈
每当注意力游荡开,摒弃想法,注意力回到呼吸上
内心的平静与强大
通过分散注意力来集中注意力
你必须有意识地忘掉问题,让问题在思维中浸泡一会
不做某些事
管理你的知识:
有一个外部的系统,有效地记录、管理等,可以快速获取
优化当前情境
多任务处理将耗费你百分之二十至四十的生产力
避免分心
有效地组织和处理任务
仅扫描输入队列一次
顺序地处理每组工作
不要再头脑中保留清单
积极主动地去管理干扰
制定项目交流的规则
放缓电子邮件,做到异步定时而非实时: 设定邮件通知-加大检查邮件间隔 - 注意设定期望答复的速度和电子邮件数量
保持情境的一个办法是,提高进出情境的物力成本,有助于提醒你隐藏的精神成本
启动可屏蔽中断
保存情境堆栈:出栈时记录关键词等,方便回来
保持任务注意力
如何保持注意力:
1.学会安慰喋喋不休的L型思维
2.主动在前进中思考和增强思想,即使是不成熟的
3.明确情境切换的昂贵代价,尽可能地避免

第九章 超越专家

有效地改变
制定计划
“不作为”是敌人,而“错误”不是
给新习惯适应的时间
信念是真实的
采取步步为营的细小步骤
明天上午做什么
不管你能做什么,或者期望自己能做什么,现在就开始做。勇敢可以给人智慧,力量和神奇。现在就开始做吧——歌德

一个笔记本,涂鸦,思维导图,几比几
开始写博客,为读过的书写书评
让散步成为你每天生活的一部分
再拿一个显示器,开始使用虚拟桌面
认识你自己,人士当前时刻,认识你所处的情境
http://blog.coderzh.com/2015/05/16/ThinkingAndLearning/
> 2.一个众所周知的极限编程方法的经验之谈是“测试一切可能出错的东西”。
嗯,怀疑一切。很多人包括我自己,经常都会陷入这样的思维逻辑:“他们都这样做了,应该就没问题了啊。”,如果经常做这样的假定,很多问题都会被你忽略过去。
> 3.敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。
这个观点并不新奇,道理大家都懂,是否能做到做好就不一定了。这点其实和雷军说的小步快跑,不断试错道理是一样的。
> 4.专家根据直觉工作,而不需要理由。他们可能会对如何得到结论完全说不清楚。他们的确不知道,只是“觉得是正确的”。
> 5.专家知道哪些是无关紧要的细节,哪些是非常重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。专家非常擅长做有针对性的特征匹配。
这点感受颇深,却是不容易做到的。在之前游戏创业过程中,我们曾陷入这样的思维:“我们要做xxx功能,要加xxx玩法,打击感要强,人物模型要精细,场景物件要丰富,远景要有气势,要。。要。。”,我们什么都想要,结果就是我们怎么也完不成。微信第一个版本很简陋就上线了,朋友圈第一个版本连评论功能都没有,朋友圈不做滤镜功能,好友不做分组(现在有了),不做iphone用户在线标签…… 张小龙分享的创业观里,很多都是这个逻辑,我们不做什么。
> 6.达尔文说过:“无知往往来自于自信而不是知识。”反过来似乎也是对的。一旦你真的成为了一名专家,你会痛苦地意识到你知道的是多么少。
> 14.捕获所有的想法以从中获益更多。准备好做记录的工具,并随身携带……
> 10.正确自我评估的唯一办法就是提高个人技能层次,这反过来又会提高元认知能力。专家会更多地自我怀疑。
一山更比一山高啊,只有爬上了这座山,你才能看到后面的巨峰啊。
> 20.有很多办法来制定出一个解决方案并达成妥协。唯一一个不会起作用的方式是试图改变别人的性格以适合自己。
不要去尝试改变别人的性格和习惯,要学会观察和了解别人,从而找到好的解决方案
> 22.试图把注意力同时放在几件事情上,意味着你在每件事情上都会处理得很差
专注,即使同时做两件事,就像单CPU两个线程,每次都要切换上下文,最后导致两件事情效率都不高。
> 26.反反复复的“你有封信”的提示音也是如此。如果可以的话,把它们全部关闭。加大检查邮件的间隔。不要每分钟都检查邮件。
工作用的台式机一般是不会有声音的啦。。。每天选择几个固定的时间查看邮件,也许效率会高一些。

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts