MacTalk人生元编程

 

2014-04-22

    • 我想这么做的人可能就是因为这是一种乐趣,一种真正的乐趣,尤其是你的文字能够帮到人能够启发别人的时候,那种快乐难以言说。
  • 读者推荐序二
    • 人生元编程,就是具有自省能力,随时检查和控制自身情绪和行为、思考自己想法、改变大脑的动机……或者,用一句简单的话来说,就是对当下的状态保持清醒的“觉知”。
  • 卷首语
    • 我觉得程序员这个群体是非常幸运的一群人,我们生在一个技术改变世界的时代,而我们可能正在做着能够改变世界的技术,这是何等的荣耀和机遇。
    • 其实万事万物都是相通的,要么熊样要么鸟样,如果你能够把代码写的很好,那么为什么不去把自己的思想和设计通过文字表达出来呢?如果你能够把技术文章写好,慢慢就能写出人文类的文字,慢慢你就会发现自己已经站在科技与人文的十字路口了。最高境界就是,你站在哪,哪里就有一个刻着科技和人文路标的十字路口。
    • 每个人时间就那么多,我觉得我并没有损失什么。 所以,不要为自己设限!
    • 写作即思考。写作其实就代表思考,你需要言之有物,需要架构需要梳理,要有开端有结尾有结论有主题,特别神奇的是你构思了一篇文章,写完后发现文章像具备了生命一样生长出了很多奇异的果实,它们就在那些文字中间微微颤动,闪烁着独特的光泽,仿佛被岁月冲刷过的鹅卵石一样,而这一切你可能完全没有想到过,而且不可复制。所以有时候我们去看之前写的文章,会产生两种感觉,要么是觉得写的太烂了,怎么会写的如此臭不可闻;要么是觉得写的太好了,妈妈我再也写不出这么牛逼的文字了,我觉得这两种感觉,都挺好。
    • 优秀的写作者不仅能让事情变的容易理解,而且能够换位思考,沟通顺畅思维敏捷。与这样的程序员交流是赏心悦目的。遇到问题时他会抽丝剥茧,告诉你问题的前因后果,由表及里,并且把能够反映问题的各种信息等都提供给你,包括他自己尝试解决问题的措施和结果。
  • 1984,Mac 诞生
    • 根据乔帮主的各种言行访谈,我相信他对编程有着深刻的认知,但是根据各种史料传记,帮主应该是没有真正写过代码的。没编程但是对编程有深刻的认识,这种行为是无法解释的,所以史称“天才行为”!
  • 非同凡想
    • 在此向那些疯狂的家伙致敬 他们我行我素,桀骜不驯,惹是生非,就像方孔中的圆钉一样 他们用不同的方式看待世界 他们既不墨守成规,也不安于现状 你尽可以支持他们,反对他们,赞美或诋毁他们 但是唯独不能忽视他们 因为他们改变了世界 他们让人类向前跨越了一大步 他们是别人眼里的疯子 却是我们眼中的天才 因为 只有疯狂到自以为能够改变世界的人 才能真正地改变世界
  • 怀念 2007
    • 作为一个软件从业人员,我知道一个产品从无到有是困难的,从有到精是艰难的,而当你站上一个巅峰之后,哪怕是做最微小的改进和提升,都需要花费大量的人力物力,同时还要承受失败的风险。
  • 年轻时的梦想还在吗?
    • 这些都不重要,重要的是你在长大的过程中没有把这个 Logo 丢掉,你还在想要做点什么或改变点什么,你没有变成小时候痛恨的那些人,这就够了。
    • 人长大总是伴随着痛苦,现实变得越来越现实,那些无限可能都变成了没有可能或很小可能,这东西是很残酷的。
    • 子曾经曰过,四十而不惑,好像是告诉你到了 40 岁就什么都明白了,我曾经期望着大彻大悟的那一天的到来。后来我发现子就是个骗子,他的 意思是你到了 40 岁,该明白的都明白了,不明白的估计你也不想去明白了,所以就不惑了。但现实的情况是,如果你一直在思考、读书、实践,做自己认为对的事情,到了 40 岁,你会发现不是不惑,而是有了更多的惑。这种未知的恐惧可能会伴随我们的一生……
  • 程序员的性格
    • 不停的反驳别人不会证明自己的聪明和独立思考,正确的讨论技巧和解决问题才是王道
  • 普通人之殇
    • 无论大家工作还是生活,总要涉及各种领域,如果每个领域都浅尝辄止,那你就真的成了普通用户了,普通用户是没法进入高级用户的圈子的,因为那些人讨论的东西你不懂嘛,你也不能给别人提供更有价值的东西,那才是真正的普通用户之殇。
  • 去创业还是继续编程
    • 技术人员创业和继续编程并不矛盾,但凡在编程之余琢磨创业的,基本上都不是传统 意义上的技术人员,他们在编程之余还想做一些更有挑战的事情,那就去做好了。结果无非有三种,真正对技术有追求的,会创业并继续编程;而更擅长设计、管理和经营的,慢慢会放弃编程并转向一个更适合的领域;还有一部分发现完全不适合创业的,那就专心做技术好了,别担心浪费的那些时间,那些创业实践可能会给你带来更多的编程灵感。
    • 创业并不一定要完全从头做起,只要是在合适的环境里去做自己能够全盘掌控的事情,就算创业了。
  • 人生元编程
    • 因为无论是编程还是人生,都特么是相通的,想清楚了这一点,你就会觉得百无聊赖,因为万事万物要么是熊样要么是鸟样,都脱不出那个框框。具备元编程的语言就具备更强大的操控自己的能力,可以自省,可以反射,可以动态改变和控制自己;具备人生元编程能力的人,同样有自省能力,随时检查和控制自身的情绪和行为,思考自己的想法,改变大脑的动机。 举个简单的例子,当你的理智告诉自己 9 点就必须开始看书学习的时候,你的大脑会对你说,“亲,可以再看会电视呦,你看沙发都这么舒服。” 缺乏元编程能力的回答是“那……就再看会”,具备元编程能力的回答是“滚!”
  • 如何提问
    • 他们提的问题或 bug 都非常规范,每个 bug 都有清晰的标题,正文是环境描述、已经采取了什么措施、结果、日志、Core dump、截图等等,读完邮件你就能很清楚对方想要表达的意图和希望你能提供的帮助,而且你也知道该做什么,如何回复等等。
      1. 遇到问题不要急着问别人,在时间 允许的情况下看是否自己能够解决,一方面锻炼自己分析问题和解决问题的能力,另一方面,一旦问题解决了,问题就不是问题,而是你的经验和知识库。况且现在互联网有那么多的技术资料和各类问答网站,想碰到一个别人没碰到的问题,已经非常困难了。
      1. 如果做了努力依然不能解决,或者客观条件不允许你自己解决了,那么首先要选择提问对象,不管是现实中的大神,还是网络上的牛人,确保他是你所知道的最佳解决人选。
      1. 你需要一个好的标题,用清晰的短句描述你遇到的问题。
      1. 至关重要的正文。 (1)用清晰的语言描述你遇到的问题 (2)提供软件环境,包括操作系统、数据库等相关软件及其版本号 (3)问题是否可以重现,采用什么方式重现 (4)采用了什么措施解决问题,最终结果(可提供日志、程序、截图等描述) (5)尽可能提供问题相关的可分析文件,包括日志、截图和 Core dump 等 (6)不要长篇大论,简明扼要,描述主要问题 最后,不要忘了说请和谢谢,毕竟你需要别人帮助你解决问题,没人欠你什么。
  • 如何学习一门编程语言
    • 如果编程有可能成为你的职业,那么 5-10 年的学习和实践时间是需要的,因为你可能要学习编程 语言、操作系统、算法、数据库(Sql 的 NoSql 的)、Web 开发等等,还有各种数不清的引擎和架构,特别令人发指的是当你熟练地掌握了一门技术之后,就会有位赤脚大仙走过来告诉你,孩纸,你学的技术已经不是方向袅,然后在你绝望的眼神里飘然离去
    • 每一门编程语言的学习内容都会涉及:基础运行环境、数据类型(数字、字符串、数组、集合、字典等)、表达式、函数、流程控制、类、方法等等,不同的语言还有一些不同的特性,这些内容并不复杂,尽快通过大量的练习击倒它们,然后再去深入了解面向对象、并发、异常、文件与目录、网络、标准库等内容,并辅以持续的练习,这些内容才能够让 你真正进入编程领域并做出实际的软件。
    • 如果你在学习 Python,那么 pythonshell,bpython 和 ipython 都是不错的选择;
  • 不要做一个 Hater
    • 人生一路走来我们会寻求很多建议,也有很多人给你忠告,需要警惕的是,这里面有相当一部分人的“忠告”总是负面的,比如你想去学编程,他说,你的逻辑能力不适合编程,你说要去做销售;他说,性格决定命运,你的性格做不了销售;你说我要去创业,他说,这个项目类型没人会投资的,早做早死晚做晚死;你说我要站着把钱挣了,他说,这是在中国……当你稍微遭遇了一点失败的时候,这些人就会祭出万试万灵杀手锏:你看,我早就说过。 我们把这样的人统称为 Hater,这种人对自己不了解或没有勇气尝试的事物永远持否定态度,如果你发现一个人大部分时间在否定着什么,那么他们的意见不听也罢,甚至于那些鼓励的建议也仅仅是建议而已,仅供参考,因为最终不是那些提建议的人去做事和承担后果。做任何事情都是我们自己的选择,想清楚了也好,没想清楚也罢,想去做的话,尽可能鼓励自己去做,做实事的人总是让人敬佩的,而且由于我们在做事,所以总会遇到失败,这时候那些口诵大悲咒“我早就说过”的 Hater 是完全可以忽视的,因为所有人都是在试错中成长,那些不犯错的人充满了各种幻觉,其实是因为他不再成长了。
  • 沉默的坚持和沉没的成本
    • 谢天笑、鲍家街 43 号、左小、声音碎片、超级市场的歌
    • 你一直坚持着最后失败了,就是固执不懂变通。中途转向失败了,就是没有再坚持最后一公里。相反,如果你一直坚持着最后成事了,那就是无所畏惧一往无前;转向成功了,那就是灵活柔性随需应变。
  • 克隆高手
    • 说到直觉,我觉得这是高手的一个特征。虽然自己不是高手,但有时候帮助别人解决问题时往往靠直觉行事,有时候还会觉得,这么简单的解决方法对方怎么想不到呢?这就是直觉吧。你有可能说不清楚为什么会想到这个方法,但是知道,那是正确的。
    • 在技术公司,规则和秩序,更多适合那些不知进取或不思进取的新手和胜任者,人一旦在某个领域达到一定的高度,就有了自己的做法和直觉,方向没问题就行了,复杂的制度反而会抑制他们的创造性
    • 自信往往来自于无知而不是知识,一个人一旦成为高手,就会痛苦地意识到自己知道的是多么少,人生苦短学问太多,这样的人是不需要去鞭策的,给空间和鼓励就好。
    • 高手不可培养,只能独自成长
  • 老兵不死,只能自我提升
    • 在判断一个人或一件事或一句话的时候,已经根据以往的经验教训进行了预判,为不同的人和事设立了不同的准则,我们只相信那些愿意相信 相信的东西。
    • 大部分人都在相信自己原来相信的东西,只有那些一直积极思考并且愿意接受 新思想的人才有可能改变,这部分人的比例是极少的,
  • 明天的科技
    • 一个产品从无到有是困难的,从有到精是艰难的,而当你站上一个巅峰之后,哪怕是做最微小的改进和提升,都需要花费大量的人力物力,同时还要承受失败的风险。
  • 是旅行还是长跑?
    • 只要你没有一个强悍的爹,就要先忘掉那些小鱼小蟹还有珊瑚丛,那些暂时还不属于你,踏踏实实的练习和提升才是正道,为自己规划 规划一个十年的长跑,可以时不时停下来休息一下,低下头汗水就落入尘埃,抬起头就看看夕阳西下,你抹去疲惫,然后继续前行。十年看似很长,但实在很短,十年以后你回头看看,你究竟是成了人中龙凤,还是小鱼小虾,是你认知了世界,还是世界抛弃了你。
  • 遗失的访谈——岁月无声
    • 很多时候我们初入江湖,不知深浅,不知道什么事能做,怎么做,为什么要这么做,即使怯生生问了,得到的答复往往是,that’s just the way it’s done(我们向来这么做),于是我们慢慢也变得成熟、圆滑和懒惰,不再去从深层次思考“为什么要这么做?”因为别人也这么做。慢慢的,这些东西就成为了 folklore(陈规陋习)。
    • 财富应该是一种资源,允许你去做自己想做的事情,让你去实现那些短期内看不到效益的事情。
    • 优秀的人才是那些一心想着产品的人,而不是关注管理和流程本身。
    • 人活着是为了追求极致并分享美好的东西给人类
  • 重读黑客与画家
    • 可以说本书是我近年来读过的最优秀的人文类技术图书,个人非常喜欢,所以在去年在图灵推出多看电子书后,又购买了电子版《黑客与画家》,放到手机和 Pad 上随翻随看,最近又开始重读。
    • 好书的特点是常读常新,一本好书往往沉淀了作者几十年的岁月,绝不是你草草翻上一遍就可以理解和掌握的。虽然是同样的文字,在不同的时间和环境阅读,往往给你带来不同的启示和感悟。
    • Paul Graham 在黑客的第十四章-梦寐以求的编程语言里,写了一节关于 Redesign 的随笔。什么是好的文字?好的文字来自于不停的修改,好的编程语言和软件产品同样如此,在个人的工作生涯里,我的体会是,再多的修改也不过分。可以说没什么软件产品是完美的,完美主义者都是不断打磨产品以趋近完美。
    • 如果你想不断的调整自己的设计和实现,那你就需要保证你的工作在某个特定阶段是可持续的。我的建议是无论选择公司,还是在公司内部选择工作,尽可能选择能够长期投入和完善的事情做,如果你半年做一个项目,之后又换成另一个,然后再换,除了积累了一大堆项目经验之外,1、你个人能力没有得到提升,2、你永远无法完成一个优秀的产品。
    • 找一家程序员被当做天才和宝贝的公司,去做可持续的产品。
    • 正在流行的东西并不一定值得投入
    • 每个人进入一个行业,有必然性也有偶然性
    • 为什么做技术,技术是什么?我的观点是:

      1. 与其他工种一样,技术可以谋生。
        1. 技术是一种手段和做事方式。
        1. 做技术需要终身学习,如果你是个学习狂,恭喜你找到了一份完美的工作。
        1. 作技术可以最大化你的价值。
    • 无论是做软件还是做互联网服务,其实终极意义就是你做出来的东西能否解决用户的问题,如果这是一个容易解决的问题,那么很多人早已经解决了;如果这是个困难的问题,那就意味着很多坑等着要埋你。咋选呢,似乎怎么选都是炮灰,权衡一下,选择前者基本是无用功,那我们只好选择后者,我们本身也是爱挖坑的人,况且困难面前人人平等么。
    • JetBrains 是一家捷克的软件公司,他们做的事情就是为 Java,Objective-C,Python,Ruby,JS 等语言写开发 IDE,给程序员写工具可不是闹着玩的,他们对 IDE 的挑剔基本比肩女性对化妆品,但 JetBrains 开发出来的工具深受程序员喜爱,各种智能,各种效率,他们获得了极大的成功,为啥,因为做着别人很难做成的事。
    • 没有人学新东西的时候非常舒服,一旦经历过从新人到老鸟的过程,再让你进入陌生的领域,那种痛苦会让你自发的去抗拒。但是一个人不可能永远躲在舒适区里,逃离舒适区会有助于你从不同的角度看问题,视野会更加开阔。人总要往前走的。
    • 有时候做很多事就是为了挠自己痒处,避免在舒适区待太久。
    • 很多人在某个地方待久了就会非常懈怠,没退休就像在养老,这时候我就知道,他们在舒适区太久了,与在哪个地方无关。
  • 传统的黑客——史蒂夫·沃兹
    • 沃兹是一个充满人文关怀的艺术家、技术天才,遵循了传统的黑客文化。沃兹的最初给自己的定位就是去做一些酷的东西,成为一个伟大的工程师,写出匪夷所思的代码,并且跟每个人都成为朋友。
  • 从汇编到太空——保罗·艾伦
    • 有时候看看这些技术天才的所作所为所想所言,会让人感慨万千,文艺的说法就是“感受生命的恢宏与奇迹”,通俗的说法就是“人比人得死,货比货得扔”,
    • “等你长大了,要做喜欢做的事情,无论做什么,喜欢就好”
    • 《我用微软改变世界》
    • 要想人前显贵,人后必须受罪,人后若不受罪,人前就要遭罪
  • 敬畏之心
    • 一个人学了十年再工作十年,以为学了一点文和术,但你了解愈多,会发现自己仅仅是大海之一滴水、沙漠之一粒石,永远有无数优秀和卓越的人在你前方奔跑,你只能看到他们奔跑中的一缕尘埃!