精华内容
下载资源
问答
  • 专家自居

    千次阅读 2013-07-06 10:04:30
    对于权威,心存芥蒂。...如果非要说在迄今为止的职业生涯中学到了一点什么的话,那一定是:当你用专家或者自以为洞悉一切的眼光去面对软件开发时,你必将面临失败。 如果真的有所谓的专家的话,他们一定要比普通

    对于权威,我心存芥蒂。我在“StrongOpinions, Weakly Held”(观点鲜明,但不固执己见)一文中曾经说过:

    当我了解到别人把我视为专家或者权威,而不是像伙伴一样的志趣相投者时,我就会觉得非常困扰。

    如果非要说我在迄今为止的职业生涯中学到了一点什么的话,那一定是:当你用专家或者自以为洞悉一切的眼光去面对软件开发时,你必将面临失败。

    如果真的有所谓的专家的话,他们一定要比普通人更加不可信,因为他们不够客观。各位读者应该像怀疑身边所有的东西那样,怀疑我写的内容。你自己调查研究得来的数据应该胜过你从别人那里得来的信息,无论那些人被你、我、谷歌乃至大型社区认为有多么权威。

    你和那些自以为是专家的程序员共事过吗?应该感觉很痛苦吧?我就有过这样的经历。你或许会说我已经对专家有了偏见。那么,维基百科(Wikipedia)和我一样——在维基百科上有一段标题为“给予专家编辑者的警告”的文字说道:

    1. 专家们会通过对经验和证书的展示来证明自己与众不同。如果总是默不作声,是没有办法向人证明自己的专业的。但事实上,通过这种方式来证明自己的专业是毫无意义的。

    2. 专家们没有解决编辑冲突的特权:如果一个专家和一个普通人对于某段内容存有争议,专家不允许摆架子宣判自己胜出。总之,在维基百科,不管你是不是专家,像“因为是我说的”这样的话是不会被接受的。同样,专家贡献的内容是不会被保护的,普通人可以在后面的版本对其进行修改。理论上来说,编辑的质量才是决定性因素。

    3. 在维基百科,有一股强大的反专家思潮。如果你是专家,那么对你的要求会比对常人的要更高。

    在这里,我们可以体会一下这个由整个社区的人来维护的、自由的、开放的百科全书,对于专家贡献的怀疑论。但是,这么做可行吗?

    我想说,不去考虑这些内容的来源,而只靠对内容的严格审核,这恐怕是唯一可行的方法了。这是对于权威的一种激烈的挑战。但是,这种挑战恰恰是必要的。这个世界上只有少数的专家,却有大量的普通人。当你想要建立一个包含各种信息的网站时,这些普通人的贡献是最最重要的。这是一个不规则的世界,里面装满了无穷无尽的细节。对于这一点的认识,恐怕没人能超过程序员了。每天与各种细节做着斗争的程序员,他们对当前的问题拥有最多的认识;对于这些细节,并没有多少专家能够了解。

    于是,当人们认为专家意见往好了说是不切实际、往坏了说是累赘时,成为专家还有什么意义呢?在最近的一次谷歌访谈中,James Bach描述了一个后现代专家的典型形象——他就是《摩天大楼失火记》中的Steve McQueen:

    《摩天大楼失火记》(The Towering Inferno)这部电影讲述了旧金山一座刚竣工的摩天大楼,因建筑商偷工减料,没有按照设计施工,存在严重的安全隐患,致使大楼在剪彩之日就因电路超负荷而引发大火。生与死的紧要关头,考验着大楼里的每一个人……这是一部电影史上经典的灾难片,曾获奥斯卡最佳影片奖提名。——译者注

    (转向消防委员长)“Kappy,我们现在的情况怎么样?

    “火是从81层的储藏间开始的,烟非常大,我们目前无从得知烟已经蔓延到哪里了。

    “那排气系统呢?

    “应该会自动打开的,可能是引擎烧坏了。

    “那洒水器呢?

    81层的洒水器没发挥作用。

    “为什么?

    “我不知道。

    (转向设计师)“Jim,给我快速介绍一下这里的救火供水管系统。

    “每层都有3英寸和1.5英寸的出水口。

    “每分钟加仑数是多少?

    “从底层到68层是1500,从68层到100层是1000100层以上是500

    “这些电梯有应急程序吗?

    “有的。

    “那你打算从哪一层开始?

    79层。那里是我的办公室。

    “也就是火灾下面的两层。那将会是我们的前方指挥部。大家带上工具。另外我想看看从81层到85层各层的规划。

    “好的。

    (转向安保总监)“给我一份你这里的住户清单。”

    “不用担心,我们正在把他们转移出来。

    “不是那些住在里面的人,而是那些在这里的商户。

    “我们很幸运,绝大多数人还没有搬进来呢,其余的晚上都下班了。

    “我想知道他们都是些什么人,不是他们现在在哪儿。”

    “他们是什么人?这有什么关系吗?”

    “有羊毛或者丝绸的生产商吗?这些材料燃烧之后会释放出氰化物气体。或者有体育用品的生产厂商吗,比如乒乓球?这些东西燃烧之后会释放出有毒气体。还要我继续往下说吗?

    “好吧,我去给你准备一份住户清单。

    (转向救火队长)“都准备了些什么?

    “升降机组,中央控制。货梯在这里。空调的输送管,6英寸的。

    “管道都在这里吗?

    1个,2个,3个,4个,5个。

    81楼有没有施工的地方?有没有易爆物,比如汽油、清洗剂?

    “我想没有。

    这段对话除了告诉我们Steve McQueen脾气不太好之外,还有什么呢?作为一位专家,重要的不是告诉别人你知道什么,而是要清楚你应该问什么样的问题,并且灵活运用你所掌握的知识去解决眼下的具体问题。作为专家,你的作用是提供明智的、可执行的方向。

    我喜欢James Bach的演讲的原因是,他把演讲的整个前半部分时间都用在质疑和颠覆所有的一切上了,包括他的领域、专业知识,甚至他自己的名声和信誉。在那之后,他才通过一个持续学习的过程,慢慢地、小心翼翼地进行重塑。

    0阶段:我克服了漫不经心。

    我现在明白了,我需要学点东西。

    1阶段:我克服了恐惧。

    我觉得我可以学会这个科目或者技能。我会对它变得很了解,而不会惧怕比我懂得多的人。

    2阶段:我变得有条理。

    我不再觉得自己不懂装懂或者不学无术。我觉得我有能力参与讨论或实践。我对自己说的话很有信心。

    3阶段:我超越了自身能力。

    现在我觉得对自己有了更高的要求,不再停留在“过得去”而沾沾自喜。我想冒一点风险,富有创造力,不断学习,不断推动自己进步。我想要与那些充满热情的人共事。

    James Bach先生太有洞察力了,他就是我最喜欢的那种“海盗学者”。他给新近成为专家的那些人提了一点建议:

    海盗学者是指那些好学的、不被世俗或者权威所束缚的、用心去寻找自己的声音与定位的人。——译者注

    • 实践,实践,再实践!
    • 不要把经验和专业知识混淆。
    • 不要相信口口相传,但可以了解一下。
    • 不要单凭信仰,要有自己的方法论。
    • 拥有自己独特的学习方式——这点没人能帮你。
    • 请爱惜羽毛。建立并维护自己的声誉。
    • 孜孜不倦地收集资源、资料和工具。
    • 建立自己的标准和道德规范。
    • 避免那些庸俗的技能认证。
    • 与那些自我要求高的同事一起工作。
    • 多写,多说,保持诚实。

    当然,Bach先生在这里谈论的是测试,但我相信这些建议一样可以被用于程序开发,或者别的会用到你专业能力的领域。从怀疑一切开始,而且一开始怀疑最多的是自己。

    如果你想成为一个真正的专家,而不是徒有虚名,那就效仿一下Steve McQueen吧——不要只是告诉别人该做什么,而要做一个善于问问题的人。

    展开全文
  •  "傻孩子,你是一位百万富翁,叹什么气呢?" 年轻人不信。  教士说:“出20万买你的健康,你愿意吗?”  年轻人说:“不愿意!”  教士说:“出20万买你的青春,你愿意吗?”  年轻人说:“不愿意!” ...

    《塔木德》上有这样一个故事:

     

    有一位年轻人在河边唉声叹气,一位犹太教士说:

      "傻孩子,你是一位百万富翁,叹什么气呢?"

    年轻人不信。

      教士说:“我出20万买你的健康,你愿意吗?”

      年轻人说:“不愿意!”

      教士说:“我出20万买你的青春,你愿意吗?”

      年轻人说:“不愿意!”

      教士说:“我出20万买你的美貌,你愿意吗?”

      年轻人说:“不愿意!”

      教士说:“我出20万买你的大脑,你愿意吗?”

      年轻人说:“不愿意!”

      教士说:“我出20万买你的良心,你愿意吗?”

      年轻人说:“不愿意!”

      教师说:“我已经出价一百万,仍然买不走你身上的任何东西,你说你不是百万富翁,又是什么呢?”

     

      这就是犹太人,他们坚信可以凭着自身实力来获得财富,改变自己的命运!

      信奉犹太教的犹太人以上帝的“特选子民”自居,他们在潜意识里始终认为自己和其他民族的人不同,即使在历史上遭受无数磨难,犹太人的这个信仰从不改变,反而更加坚定。如此自视的犹太人自然自信十足,这就难怪一般犹太小职员,小商人一脸自信比洛克菲勒,索罗斯也不逊色多少。缺乏自信者办事时总是畏畏缩缩,结果许多易于完成的事都中途作废。

      而信心充足者,做事时可令自身潜能得到超长发挥,结果时常变许多 “看似不能” 变 “居然成功”。 自信令其屡败屡战,直至成功,自信引发他信,他信助其成功。在变幻莫测,竞争激烈的商界,自信特别重要。

     

      犹太人懂得,积极的自我形象会赋予你一个直面前进路上的一切障碍的性格。有了高度的自尊,你就会怀着信心、希望和勇气来面对最令人沮丧、令人气馁的境遇。

    那么,怎样才能树立健康的、积极的自尊?喜欢研究《塔木德》的一些学者提出的下面的一些建议很有用。

    (1)首先要绝对确信上帝爱你。

      “慈爱的上帝是为我们着想的,天生我才必有用。”那些在生活中持有这样观点的人,会把难题当作是成长的机会。

      17世纪法国哲学家和数学家布莱斯 · 帕斯卡说:"我们每个人心中都有个上帝制作的空间。" 怎样充满这个空间是我们的选择。人们在这个问题上有两种重要的表现:

      第一,有些人兴奋地寻求自己内心深深渴望的满足感、成就感和被认可,和生活搏斗,就好像生活是一个需要去征服的敌人。

      第二,有些人把上帝放在他们生活的一个中心位置,寻求快乐,希望和心灵的平和,紧跟生活的步伐,把生活看做是一个受欢迎的朋友。简而言之,就是你被上帝深爱着的这种强烈的意识,能够为你建立高度的自尊提供坚实的基础。

     

    (2)完全地无条件地接受你自己,现在就开始!

      现在不是探讨你是怎样被塑造成现在的你的问题,而是你如何对待现在已经成形的你的问题。为了你不喜欢自己的地方,责怪你的父母,怪社会对你的不公。怪你的身体和智力的缺陷,或者怪任何方面,都是于事无补了。

      真正的问题是:你是谁?你怎样对待自己?首先就是赶快建立起强烈的自尊。接受你自己,然后继续努力!

     

    (3)避免说自己低劣、丑陋的地方。

      你特别不喜欢别人贬低你,是不是?你尤其不喜欢虚假的或者是在某种程度上真实的消极的评论,对不对?然而,一个破坏性的自我批评对你造成的伤害,却十倍于别人对你批评!那些总是说自己缺点的人,到后来真的相信自己有这么多的缺点。一旦他们相信自己,他们的行动就处处受到自己的想法的限制,他们就会真的变成他们自己所说的那样一无是处的人。

      但是这种现象还有另一方面!当一个人拥有积极思维并且在内心里这样评价自己时,他们就开始相信自己这些优点。他们就会变成他们自己认定的那种令人兴奋的人。积极的评价 -- 你对你自己的赞扬 -- 能够让你建立起自尊。

      你不能忽略你自己或者别人做出所有的批评。如果你一星期不洗一次澡,身上发出一种狐臭气味,不理会自己的鼻子和朋友的掩鼻是愚蠢的!要学会区分一种评价是破坏性的还是建设性。当你和别人有消极的评论时,想想你是否能,或者说应该做点什么了。

      最重要的一点是:不要养成以不适当的批评来贬低自己的习惯。要养成一个欣赏自己的优点的习惯。你就会发现你更加喜欢自己了。

     

    (4)去纠正你不喜欢,但能够改变的行为。

      列出你不喜欢你自己的地方,内容可多可少。但是,一定要做到诚实。在你认为你能改正的方面打一个√。写两个短评:一个是接受声明,表示接受你不喜欢但你不能改变的地方;第二个是保证书,保证改变你所能改变的地方。接下来就是要去改变它们。此外,还要努力剔除以下可能存在的不良习性:

      去除所有的褊狭(biǎn xiá,气量狭隘)和复仇情绪!这些倾向就好像是花园里的杂草:你不必去考究它们究竟来自何处,或者是它们是怎么滋生的,只需将它们连根拔起,除掉它们就行了。要经常决定一下,某些事情是否值得心烦。有人曾问19世纪的英国首相迪斯雷利,“为什么他会给一个对他批评最苛刻的人任以高职?”他回答说:“我从不把我的心思放在要报复别人上。”  同样,亚·林肯的哲学是:"我从不让任何人将我的灵魂降到仇恨的水平上。"忌恨就像是毒瘤,只有靠折磨你,它们才会生存,生长。

      要勇于向不诚实宣战!那些有自卑倾向的人,会用哄骗来支撑自己的形象。但是哄骗起到了相反的效果,他们会更降低了自己的自尊,不管他们发现没有!

      谎言和欺骗是掠夺你自尊的恶劣的习性。有意思的是,相反的习性则是有益的。正直会赋予你高度的自尊,会为你赢得更多的朋友

      让你的习惯促进你的成功,而不是阻碍你!习惯无非就是一种成为必然的行动。某件事做的足够多了,就会变成习惯。我们能够像选择食物一样选择习惯,效果也是一样的!正如我们的身体由我们吃什么东西决定,我们的思想和情感则是由受我们所养成的习惯影响的。


    介绍篇: 000.塔木德 Talmud

    生活智慧篇 交往智慧篇 思维智慧篇 经营智慧篇 成功智慧篇

    001.追求实在的东(精)

    002.以上帝的"特选子民"自居 (精)

    003.不能为了一顿鸡鸭鱼肉而让其他日子挨饿

    004.把手放在《圣经》上

    005.信守诺言的约束

    006.绝对不允许毁约

    007.违约者必须遭到报复  

    008.不要把自己的不顺归结于外在因素

    009.时间就是金钱

    010.善于施舍,善于募捐

    001.交际本领可使你利用外界的无限能量(精)

    002.和优秀的人接触(精)

    003.要能与人和谐相处  

    004.己所不欲,勿施于人

    005.做一个愿意聆听的人 (精)

    006.勇于接受别人的意见

    007.给人改过的机会

    001.智慧是人生无价的财富

    002.决定正确决策和行动的是理智

    003.凡事都有解决的窍门

    004.砸碎障碍的石头,把它当做钥匙 (精)

    005.独立思考,怀疑一切 (精)

    006.越是“不可能的”事做起来越顺当 (精)

    007.利用贪婪的人身上的破绽(精)

    001.明白什么是值得冒的经济风险(精)

    002.赚钱主要靠知识和智慧

    003.你的头脑是你最有用的资产  (精)

    004.做一个善于发挥自己才智的人

    005.眼光盯着未来

    006.借别人的鞋子比赤脚走得快 (精)

    007.不盲目涉足自己不熟悉的领域 (精)

    008.要想赚钱,就得打破既有的成见 (精)

     

    001.成功和失败都是一种习惯 (精)

    002.对任何小事都不要掉以轻心

    003.必须加倍努力谋求生存 

    004.坚强的意志有助于把握人生的机会(精)

    005.最重要的是明确奋斗的目标(精)

    006.完成自己所能的是人,完成自己所希望的是神(精)

    007.努力把你的梦翻译出来 (精)

    008.机遇只偏爱有准备的头脑(精)

    009.要能够承受所发生的事情(精)

    010.依靠忍耐度过困难时期(精)

    011.性格要像“萨布拉斯”

    012.要有耐心去等待成功的到来(精)

    013.脚踏实地的去做,没有完不成的任务(精)

     014.一日复一日的度过难关

    转载于:https://www.cnblogs.com/tweet/archive/2010/06/08/1753580.html

    展开全文
  • 同样也绝不敢高明的程序员自居,而只是类似足球评论员的角度来阐述对程序员的理解。这样,大家也许就不以我为鄙薄狂妄了。这是必须首先声明的。 什么是程序员 按照Wikipedia的定义,程序员又称为计算机...

    一个足球评论员可能并不会踢足球,却并不妨碍在解说比赛时对某某球星的技艺评头论足。同样我也绝不敢以高明的程序员自居,而只是以类似足球评论员的角度来阐述我对程序员的理解。这样,大家也许就不以我为鄙薄狂妄了。这是我必须首先声明的。

    什么是程序员

    按照Wikipedia的定义,程序员又称为计算机程序员(Computer Programmer)、开发者(Developer)、编码者(Coder)或计算机工程师(Computer Engineer),和网络上广泛流传的码农或程序猿同义。我无意于也不能够为程序员给出一个精确的定义,这里,只是利用程序员的语言做一个简单描述。不是故弄玄虚,不过博取读者诸君一笑。

    class Programmer : public Thinker {
    public:
    void design(System &);
    void model(Problem &);
    void code(ProgrammingLanguage &);
    void debug(Defect &);
    void refactor(Code &);
    void learn();
    void communicate();
    virtua voidl think(Logic &);
    private:
    vector _pls;
    }

    程序员是彻头彻尾的脑力工作者(Mind Worker),怠于思考者绝对不能成为好的程序员。有鉴于此,类Programmer天生的就应该是Thinker的子类。就程序员所使用的思考技巧而言,Thinker的具体内涵包括逻辑(Logic)和数学(Mathematics)。作为程序员,不一定非要达到逻辑或数学领域的专业水准,而是必须具有逻辑和数学的基本素养。逻辑用来推理,数学用来培养逻辑。另外,数学还有助于程序员训练另外两项必不可少的思考的技能,分析和抽象。下文还要展开讨论。程序员的工具是编程语言,日常活动和主要工作包括设计(design)、建模(model)、编码(code)、调试(debug)、重构(refactor)、沟通(communicate)、学习(learn)和思考(think)。

    有关程序员有一个流传甚广的误解,认为做程序员门槛低,没什么技术含量。即使没有学过计算机的课程如离散数学、数据结构、算法等,也可以写程序。写几行程序当然算不得什么,但要修炼成有一定思想境界的一流程序员,却殊非易事。这就如同会做饭的人很多,但真正的烹饪大师却并不常见。所谓码农者,乃是程序员的自我吐槽,岂足深信耶?所以,作为程序员要有持续进阶的强烈的进取心,断不可妄自菲薄,自怨自艾。

    程序员的思维艺术

    漫长的学生生涯中,我遇到的最好的数学老师是高中时的刘传禹老师。他上课时讲过这样一段话,当面对一个数学问题,一要想的明白,二要算的准确,三要写的清楚。直到今天,这句话对于我的程序员生涯也具有很强的现实意义,能不能想的明白其实是考量一个程序员成败的至关重要的因素。金庸的武侠小说中有一个普遍的规律,那就是武功必定以内力为根基。

    比如张君宝与昆仑三绝何足道在少林寺的那场经典之战中,张君宝能够“以少林拳中最平淡无奇的拳招,化解了最繁复的敌招”,始终不落下风,所恃者不过内力之浑厚尔。另外的著名战例还包括少林寺小和尚虚竹VS.吐蕃国师鸠摩智以及聚贤庄萧峰VS.玄难。内力达到登峰造极空前绝后的第一高手莫过于少林寺的扫地僧。也许风清扬是一个例外,好在我们讨论的是一般规律,所以就顾不得他了。计算机编程所特有的思维(Thinking)就是程序员的”内力“,思维能力不济,功能再强大的编程语言也无用武之地。所以,我在这里特别强调程序员的思维艺术。

    程序员的思维有一个专业术语,叫做计算思维(Computational Thinking)。计算思维是按照计算机科学的基本概念和方法,用来理解需求、设计系统、实现编程、解决问题的思维方法。简而言之,计算思维就是程序员或计算机科学家是如何思考的。当然,计算机科学的理论知识如数理逻辑、离散数学、数据结构、算法以及面向对象是计算思维的必要条件。计算思维有一系列的智力工具,不能一一尽述,仅列举关键的几项如下:

    抽象思维(abstract thought)。给定一个问题,抽象就是去掉纷繁芜杂的与计算无关的部分,用规约(Reduction)的方法还原到问题的本质。所谓本质即把原来的问题转换为一个或几个可以使用计算机描述并解决的问题,进一步讲也就是转换为在算法上可计算的(algorithmically computable)一个或几个问题,更准确更理论化更上档次的描述是转换为邱奇-图灵论题(TChurch-Turing thesis)可计算的可数个问题。图灵机(Turing Machine)和λ演算(Lambda calculus)本身就是对可计算性(Computability)的漂亮的抽象,可以作为抽象思维的经典案例来揣摩学习。一般在实际工作中,常常需要把问题的实体对象根据需求表示为各种数据结构如树、堆、栈等,而业务逻辑(Business Logic)过程表示为各种算法如排序和查找等。

    表示(Presentation)是解决问题的第一步,也是关键的一步。在程序员的实践中,我们都有很深的体会,一旦问题被准确的无歧义表示出来了,解决方案就烘云托月般地呈现出来了。这就是“数据即代码,代码即数据”的道理。抽象思维也广泛用于数学家的工作。面对一个困难的问题,数学家们常从两个方向开展研究。

    一方面,从特殊情况入手,推广到更一般的情况;另一方面,将一个一般问题具体化成几种特殊情况。两个方向的结果最终汇聚在一起,就找到了问题的答案。我想这可能是论语中“我叩其两端而竭焉”的一个最好注解。而从特殊到一般就是不断抽象的过程。我们用一个具体的例子加以说明,有一个著名的六度分隔理论(Six Degrees of Separation)讲的是世界上任意两个人都可以通过最多另外6个人相互认识,如果要验证这一理论,怎么做呢?

    我们可以借助一个图(graph)来表示人与人之间的关系,每个人用图中的一个节点表示,如果A和B认识,那么在代表他们的节点之间有一条边连接。那么现在的问题就转换为检查这个图的直径是否大于6。考虑到世界人口众多,且有生老病死,图的规模必然超大,并且是动态的不断变化的,算出它的直径仍需要更多的简化。这里就到此为止了。

    逻辑推理(Reasoning)。逻辑推理对于程序员的重要性不言而喻。与其说逻辑推理用于程序新功能的开发,毋宁说更多的应用在程序调试修改BUG的过程中。程序调试有点类似于Sherlock Holmes侦破案件的过程。和Dr. Wason比较起来,Holmes的推理优于常人的地方有两点:第一,在观察现场或听取来访者叙述时,他能够得到更多的的数据,尤其是一些别人容易忽略的关键的细节,这得益于他对犯罪领域知识的丰富积累,知道什么才是更重要的数据;第二,根据得到的数据,他能够联想到更多的可能的结论,这得益于他大量的案例储存。有了这两点,就能够通过一环套一环的推理链逐渐缩小侦察范围,最终认清犯罪事实。

    程序调试也是如此,首先必须掌握程序实际的执行过程的细节。然后从问题出发,分别朝着产生的原因和导致的后果前后两个方向推理。逐渐定位问题的范围,最终找到问题的根源和解决的方案。我们比Sherlock Holmes幸运的是可以借助于调试工具来了解程序运行的过程,所以一个不能使用调试工具的程序真是令程序员感到无比沮丧,只能通过trace信息来跟踪程序运行的过程。如果不知道程序运行的过程,推理就只能靠猜,那么修改BUG是非常危险的,很容易导致回退(Regression)的错误,因为这种情况下如同瞎子摸象,根本不知道自己在做什么。另外,Sherlock Holmes还多次表达过这样的观点,案子越是离奇,越容易解决,因为Singularity is almost invariable a clue。

    对程序员来讲,也不必担心奇怪的问题,奇怪本身就是线索。关键看对程序运行细节的了解程度和逻辑推理的技术水平。

    分析(Analysis)。分析是上文提到的数学家所用思维方式中从一般到若干特殊情况的过程。面对一个问题,如果一下子描述不清楚或者表示不出来,可以先找出满足问题条件的几种特殊情况。通过仔细检查这几种特殊情况,求同存异,找出他们共同的规律或模式,并对这些模式或规律加以验证,就可以找出描述或表示问题的方法。这就是猜测加验证(guess-and-verify)的过程。项目需求分析时常见的应用案例分析(Use Case Analysis)方法,就是用一个个具体的使用案例将模糊的项目需求生动的表达出来。

    分解(Decomposing)。把一个大问题分解为几个小问题,或者把一个复杂的过程分解为几个子过程,当然有助于问题的解决。这也是程序员常用的手段,如算法策咯中的分而治之(Divide-and-Conquer)和合并排序就是这方面的例子。

    递归(Recursion)。对于初学编程的人,递归可能是一个比较诡异的较难掌握的概念。但是一个程序员如果不懂递归,很难再称之为程序员。因为很多稍微复杂的算法他都不可能理解,如回溯和动态规划,甚至于树的遍历。递归常常可以用简单的方法非常优雅的表达复杂的算法。

    另外,有关计算思维的特有方法还有并行、异步/同步、模拟/近似、优化、分层、封装、解耦等等。程序员的思维艺术即计算思维不是一天两天短时间可以形成的,需要在实践中慢慢琢磨,不断提升,且永无止境。强烈推荐这篇文章(链接如下)以深化对计算思维的理解。

    http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdf

    程序员的技艺境界

    程序员的思维艺术融化到到对编程语言的使用上,最终形成程序员的技艺。因此,编程语言之于程序员,就如同青龙偃月刀之于关羽,如意金箍棒之于孙悟空。离开了青龙偃月刀和如意金箍棒,关羽和孙悟空的战斗力就无从谈起。所以,脱离编程语言来讨论程序员的技艺也无异于缘木求鱼,自欺欺人。结合编程语言,程序员的技艺有四个境界,从低到高分别是:

    初窥门径。编程语言的初学者,如同小儿咿呀学语,也许可以写一个类似于“Hello World”这样的程序,但对语言的所有东西都是一知半解,不可能应用于实际的项目中。这是我们很容易就可以达到的级别。有些人初窥门径之后,往里面看看,感觉不容易,就放弃了。

    登堂入室。对编程语言所共有的基本表达方式有了一定的了解,如变量、赋值、循环、选择等。可以用在一般的项目中,但是写出来的代码看起来滞涩笨拙,很难做出高质量的程序。这个时候,程序员很容易产生自满的情绪,以为完全掌握了这种编程语言,编程也不过如此。如果陷入这种自满情绪中不能自拔,就失去了进一步进阶的机会。

    熟能生巧。掌握了编程语言特有的功能,并能驾轻就熟,灵活使用。因此,写出的代码更加的精炼易懂,常常使用简单的方法表达较为复杂的算法。这是一个成熟的程序员的水平,也是我们大多数程序员所能追求的目标。

    妙不可言。 这是传说中神龙见首不见尾大师级的境界。柏杨在《中国人史纲》描述李白的才华称,李白写诗时,对汉语的使用就像魔术师手中翻转的手帕一样,神鬼莫测。如同李白作诗一样,我想这个境界的程序员对编程的各种精微之处了如指掌,能够将编程语言的各种功能特性发挥到极致,且恰到好处。运用之妙,存乎一心。并且往往能够别出机杼,奇思妙想,层出不穷。写出的程序优雅、高效、别致。这是我们一般程序员可望不可即的。

    程序员的精神素质

    开放。在以往的工作中,曾经遇到过这样的程序员,自以为掌握了某些核心的、关键的技术或技能,却不愿意和别人共享,处心积虑的保护着他的“地盘”,担心别人染指他的工作。也遇到过这样的组织,几个被信任的程序员把持着产品的所谓关键模块,其他人莫想参与,即便再有才华,也只能扮演跑龙套的角色。这让我想起《三国演义》中诸葛亮舌战群儒的情节,在回答江东首席谋士张召的诘难时,诸葛亮将儒生分为君子之儒和小人之儒。这里不妨将这样的程序员称为“小”程序员吧。程序员的技艺根植于计算思维中,没有所谓的不传的绝招或秘笈。交流和实践是程序员持续进阶的必要且有效途径。固步自封和抱残守缺是程序员的大忌,完全是作茧自缚,毫无出息。

    严谨缜密。在软件开发中,任何事情在逻辑上原因和结果都是清晰明了的,不存在任何意义上的说不清道不明的神秘主义。程序员也是软件工程师,讨论问题时,当然应该使用工程师的语言,即用数据而不是猜测,用逻辑而不是臆断,来表达自己观点。有两种情况可能造成自己表述时似是而非,模棱两可:第一,数据掌握的不够;第二,没有“想的很明白”。例如,当我们讨论性能(Performance)时,一定要用响应时间(Response Time)或吞吐量(Throughput)这样有意义的参数,而不只是泛泛的讲“这系统咋这么慢啊”,“计算机在干什么呢,等的时间太长了”,“简直受不了这样的程序了”。用户可以这样抱怨,而程序员则不可。同样当我们讲到系统开销时,要用CPU占用率、内存这样定量的参数。因此,一个脑筋清楚的程序员不会把这样的话挂在嘴边,“太神奇了,不知道为什么”,“弄不清楚是否可以解决这个问题”,“先这样吧,以后再说”。一般地讲,智能和非智能并没有清晰的界限,因为我们并不知道如何严格地定义智能。然而,有了图灵—邱奇论题,可计算的和不可计算的确实有明确定义的界限,也就是说,计算机可以解决的问题和不可以解决的问题是泾渭分明的,且是可以区分的。对于一个问题,能够解决就是能够解决,不能解决就是不能解决,不至于难以确定是否可以解决。所以,所有以上这些说法都不应该是程序员使用的语言,程序员就是要把一切都弄得清清楚楚,不放过任何潜在的问题。

    完美主义。我不了解完美主义的真实意义,也不大拿得准完美主义是褒义词和贬义词。我用这个词是为了强调程序员要坚持追求工作的完美。写代码时是要有洁癖,不允许有任何瑕疵,这样的代码才可能正确、易读、高效、简单、优雅。对一项任务,不仅仅是做完就算了,还应该仔细想想是否是否可以做的再好一点。对遇到的问题,即使看似解决了,也要从头至尾完全弄明白,不能似是而非,不求甚解。

    面对变化。变化意味着在新的征程上,要面对许多未知的东西,加之对安定状态下的安乐窝(Comfortable Zone)的眷恋,让我们有着或多或少的畏惧和抗拒。我认为这些都是人之常情,无可厚非。不幸的是,对程序员来说,变化就是家常便饭,如新的项目、新的应用领域、新的编程语言、新的技术架构、开发过程中新的问题、新的功能等,可以说不变的只有变化。其实,好逸恶劳是畏惧变化的根源。只有克服“懒”的思想,强迫走出自己的安乐窝,对新的事物充满好奇心和求知欲,才能适应永远的变化。

    程序员的价值

    有的公司把程序员看作和水电、机器一样的冷冰冰资源,做项目计划时,一些项目经理以为只要给项目分配足够的资源(包括程序员、水电、机器)并加以正确的管控,项目就可以预期的顺利完成。就好像做东北乱炖,只要把各种食材往锅里一丢,开火等着就万事大吉了。但是,程序员首先是有血有肉的人,绝不等同于毫无感情的机器。一个有雄心的公司要不断提升产品的竞争力,什么是竞争力?就是把产品做的好到不能再好,天下第一,谁与争锋?产品向好的每一步都需要借助于程序员创造力和想象力,这才是程序员的价值之所在。没有程序员愿意把最宝贵的创造力和想象力奉献给只把自己看作资源的公司。所以,聪明的管理者会想方设法把程序员这种创造力和想象力激发出来。

    展开全文
  • 十一岁的时候,开始对女孩有好感,但是那时候他离女孩远远的,并且讨厌女孩 自居,生怕被同伴嘲笑。 十二岁的时候,听到大人们说某某男人好花,把女朋友甩了,女孩自杀了。他觉得这人 真狠毒,自己将来一定要做个...

    谈过恋爱…后我撒谎的水平明显提高了…而且越来越能把握女孩的心bai态了!
    十岁以前,就不说了,无非是淘气和不懂事。
    十一岁的时候,开始对女孩有好感,但是那时候他离女孩远远的,并且以讨厌女孩 自居,生怕被同伴嘲笑。
    十二岁的时候,听到大人们说某某男人好花,把女朋友甩了,女孩自杀了。他觉得这人 真狠毒,自己将来一定要做个痴情的男人,一定要一生
    只爱一个人。
    十三岁的时候,他喜欢上了一个女孩,但是他不敢和她说。仍然和往常一样,脏兮兮的 在灰土飞扬的操场上踢球。只在女孩走出校门的时候,
    躲在二层的窗户上看她的背影, 他觉得她一定是个天使。
    十四岁的时候,有个女孩喜欢上了他,但是他离她很远,他心里面只有自己那个女孩, 他觉得看别的女孩都是对她的不忠。
    十五岁的时候,看了一个mtv,感动得想哭,他想,如果自己的女孩失去了双眼,他一定会像男主角会毫不犹豫的把自己的眼睛给她,让她能看
    到光明。
    十六岁的时候,高考了。终于和自己暗恋的女孩分别,坐火车去学校的时候,感觉自己 离她越来越远,心像被掏空了一样。还在想自己一定不
    会忘记她,等到自己成功以后一 定要去找她。
    十七岁的时候,听到有人讲黄色笑话,觉得这人真可耻。
    十八岁的时候,她的回信中告诉他,自己有了男朋友。偷偷的哭了一个晚上。
    十九岁的时候,他向一个女孩表白,女孩说“你是个好人,可是我还小。”他想,我 的确是个好人,他说“没关系,我可以等你。”心想,我
    不会像那些花心的人一样,三 年五年我也能等。
    二十岁的时候,说自己还小的女孩和一个帅哥恋爱了。他很纳闷,长大原来可以这样 快。
    二十一岁的时候,他又向一个女孩表白,女孩说“你是个好人,可是我并不适合你。” 他纳闷很久,我是好人你怎么还不适合我呢?
    二十二岁的时候,他又追求一个女孩,女孩接受了他。他开始很幸福的为未来拼搏,他 想,一时的开心只是暂时的,只有努力拼搏,他和她才
    能有快乐的未来,但是,半年以 后,女孩和他分手了。只是因为另外一个男孩会说让她开心的话。女孩说“你是个好人 ,是我对不起你。”
    他似乎明白了问题所在,他是个好人。
    二十三岁的时候,他开始堕落,交网友。打扮得时尚而酷,而且渐渐的学习着讨好女孩 的话。不久,他有了个女朋友,虽然他对她也很好,可
    是,他心里知道,自己并不爱她 。
    二十四岁的时候,他和女孩分手了。他对女孩说“你是个好女孩,是我对不起你。”
    二十五岁的时候,他尝试了哈哈哈,发现别人能做的,自己也一样。
    二十六岁的时候,他学会了讲黄色笑话,并且以看旁边的女孩子脸红为乐趣。
    二十七岁的时候,他忽然发现自己变得很有能力追求到女孩,但是却没有了爱的能力。

    其实每个男孩,本来都是想做一个感情专一的好男人的。
    其实每个男孩,本来看女孩子都是看脸而不是胸部的。 其实每个男孩,本来都是不会讲黄色笑话的。
    其实每个男孩,本来都是渴望爱一个人直到永远的。
    只是,没有任何女孩爱这样的男孩,她们觉得这样的男孩太幼稚,太古板,没有情趣。
    于是男孩开始改变,变成女孩喜欢的那种 嘴角挂着坏坏的笑 玩世不恭或者幽默
    开始学会说甜言蜜语而不是心里想说的话 开始学会假装关心,学会给女孩送小饰物讨好她 学会如何追求,如何把握爱情。 或者看破红尘,游戏情场,成为女人恨恨的那种男人
    他们可以很容易俘获女孩子的心 但是他们也会在黑的夜里叼着烟流泪 心里有爱的时候,没有女孩 有了女孩,却永远没有了爱的感觉 在听到
    女人抱怨世上没有一个好男人时候 他们不会再去努力做个好男人,只是微笑着擦肩而过…

    作者:深海收破烂
    2020年12月28日

    展开全文
  • 然后自己就天天大师自居了, 指点江山了, 好像自己成了总理, 天下的事情都要管上一管才甘心. 其实倒是觉得每一个人都应该有自己的自知之明的, 只是有没有人给他点出来, 今天听了玉亭姐一席话, 觉得说的比谁都要...
  • 陪孩子过洋节

    2011-11-03 22:58:00
    当年的我以愤青自居,对各种洋节从来持鄙视态度。说鄙视都是看得起洋节了,准确地说是无视。哪一天是什么洋节、是什么典故、要做点什么,其实俺也都知道。可是看到各大卖场总是用鼓励消费来解释一切洋节的内涵,看到...
  • 百度一直技术自居,从传统的核心搜索技术到目前押宝人工智能,在技术路线上百度一直有自己的追求。 腾讯的产品、阿里的运营、百度的技术,这是外界对 BAT 传统三巨头的直观印象。 很可惜没有在 BAT 工作过,所以...
  • 别了!的大学!!

    2010-07-06 13:18:00
    不知道是不是上天故意要安排在这天毕业,也不知道到底这样的巧合有什么样的意义,只知道此刻起的学生身份将不再有了,好像还在怀念学生自居的感觉。不是因为车票可以打折,不是因为景点门票可以优惠,那是...
  • 就毕业了。。 终于毕业了。。 就这样毕业了。...不知道是不是上天故意要安排在这天毕业,也不知道到底这样的巧合有什么样的意义,只知道此刻起的学生身份将不再有了,好像还在怀念学生自居
  • 虽然自己早不是职场新人,但面对后辈也从不会自己老资格自居,尤其是现在知识更新迭代这么快的时代。所以并不是想摆老资格来教训人,而且这些年看过很多刚入职场的年轻人,表现的非常优秀。 前段时间面试了一位...
  • 贫道不敢高手自居, 不过有点自己的心得. 结合一点经验, 和大家说一说, 抛砖引玉吧. 插入一个小故事, 当初毕业求职时, 到处投简历, 想着自己几年作实习生的经历, 还是很自负的, 不过头一回接到招聘hr电话时, 问了...
  • 混迹互联网多年,参与了不少的产品项目,见过不少产品经理,面过不少产品候选人,同样也接触了不少产品自居的同事。这次将这些见闻结合起来思考,梳理了九种常用的产品设计方法,分享给准备入行产品的同学,以及有...
  • 他们虽然总是IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了...
  • 由于编程经验尚浅,知识贮备较为匮乏,所以不敢程序员这种神圣的称号自居,只能算一个业余的编程爱好者,加入CSDN,目的是为了向各路大神学习,请教,以后还请大家多多包涵。什么要加入CSDN?...
  • 他们虽然总是IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。...
  • 他们虽然总是IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。...
  • 什么选择今天开通呢?一方面是今天看了一些牛人的博客颇有感触,为了方便以后关注他们的博客动态,开通一下自己...常常“屌丝”自居,但其实内心不想一直做个“屌丝”,谁不想成为高富帅呢?所以今日把博文的标题定
  • 对专业课SE的看法 20.8

    2020-08-28 16:05:18
    以前都是“不知道什么是软件工程,算法考7分”自居,想来不禁莞尔。
  • 谈谈ASP.NET CORE发展始末与优势

    千次阅读 2020-04-14 20:34:10
    前言 打开电脑,想写一些笔记,本来应该写...(1)2010之前 的PC时代的时候,互联网规模还不是特别庞大, JAVA和.Net没什么太大区别,.netwindows自居。 (2)2010年JAVA为代表的Hadoop大数据兴起后,微软跟进...

空空如也

空空如也

1 2 3
收藏数 58
精华内容 23
关键字:

我以什么自居