每周分享第 27 期【上篇】
地上本没有路,走得多了便成了路,人生的路也是如此,让我们一同探索出一条活出自己的路,每周一发布。
这周把把很多“上了年纪”的博客都翻了一遍,发现很多博客真的上了年纪了,要么是不更了,要么内容都是偏向于人文思想上,而一旦涉及这些内容,博客的价值就大打折扣了,因为这些内容都有专门的人去做了,所以博客显得就很鸡肋,或者说对于有一定积累的人来说没有看的必要了,这是在思想上的;而博客过去的技术文章呢,我觉得也是同样的,一旦后续专门内容做出来,博客技术文章基本就该消亡、灭绝了,这是一个很可怕的事情,它意味着个人几十年的努力,也许并没有产生多大的价值,如果考虑成本,他们把时间花在享受家庭、生活、人生上,或许在其它方面还能有些收获。
当然,会有一部份例外,就是那些本身就是头部的内容,这些个人专栏和博客是由持续影响力的,但这些就太少太珍贵了。
那有用功是什么呢,或者说未来的有价值有意义有影响力的道路是什么呢?或许就是把一件事情做到极致,只做头部内容,这样一个西瓜是芝麻的一百万倍,这是人生策略和思维的被动转换,这是环境向我们发出的信号和挑战,避免我们一生碌碌无为。
我之前的策略是通识,只要是好的增量,我就吸收进来,很长一段时间内,我确实成长不少,但渐渐地我发现,我心中像鸣人练螺旋丸的球一样,到处乱窜,这种感觉真不好受,太杂、太乱、没有规律、也没有力量,虽然有“小”的收获,而且各方面都不算太差,但是走着走着就显得鸡肋了,或者说没有什么突出的地方了。这也引发了一些毛病,一是对知识的要求,如果太lower就会马上又反应,对lower内容有洁癖,而且也不善于从“小处”学习;然后是,在各个方向的精进上不能同步,也就是时间不够,到最后就是开了很多头,但是没有结几个尾,对自己而言收获和投入不成比例,在没有条件支撑的情况下,就会陷入被动的局面;更为重要的是,习惯从别人那里收获,自己的摸索、研究的能力就下降了,自己创造的动力和习惯没有养成,就会活成他人,而不是自己。
我现在把时间精力都集中了起来,在精神和行为准则上跟吴军静修,另外在技术和写作领域内深造。其他的,就是关注自己的生活和人脉网络,更多地享受生活享受人生,不必要、没有太大价值的事情能不做就不做了,最好是能培养素质和审美,学一些音乐、绘画等艺术类的东西来丰富余后的人生,多亲身体验,最好有自己的兴趣爱好并形成自己的生活方式,给自己仪式感和“传统”,形成自己的文化,或许这会是一件幸福的事呢。
阮一峰
1、阮一峰:为什么写博客?(图灵访谈)-图灵社区
写作博客的正确做法,那就是为读者创造价值。如果有人想要建立一个受欢迎的、有影响力的博客,那么这一点是他必须牢记的。只有你的文章对他人有价值,你才会有读者。
写作帮助我们整理自己的思想。
博客就好像一个人在自说自话,但是随着年龄的增大,我想要说出自己见解的意愿不是那么强烈了,也不是那么在乎,能不能获得外界的承认了。如果有一天,我觉得自己想说的东西,都已经说完了,可能就不写博客了。冯友兰《中国哲学简史》的结束语,我印象很深。他说:"人必须先说很多话,然后保持静默。"不过,我的这一天,还要等很久才会到来。
2、阮一峰·荒诞世界的生存方法(译文)
你要明白,自由思考比畅所欲言更重要。
如果你感到,一定要跟那些人辩个明白,绝不咽下这口气,一定要把话说清楚,结果很可能是从此你再也无法自由理性地思考了。
问题在于,社会是不理性的,各种各样的忌讳多得数不清。如果口无遮拦,你就没时间做正事了。为了与他人论战,你不得不把这当成专职工作,变成一个语言学家。
你想这样用光人生吗?
3、阮一峰 - 每周分享第 27 期
这本书提出,热情不是凭空产生的,它跟自主权有关。如果你在某个职位上的自主权越大,能够掌控的东西越多,就越容易对当前的职业产生热情。与其强调跟随内心的热情,不如强调如何在某种职业里面获得自主权。你必须使自己变得优秀,让别人无法忽视你,同意让你掌控更多的资源,这就是书名的含义。
最早,我们做的是一个地理位置应用,人们到了一个地点,可以签到和发照片。我们发现,人们对位置不太在乎,只是希望将照片放在那里。
后来,由于发展得不好,我们决定简化功能,只保留照片、评论,以及给照片标识位置,应用的名字改成了 Instagram。
-- 《Instagram 的故事》
4、《优秀到无法忽略》
1、 不应该相信激情假设,而应该采用纽波特所谓的“工匠心态”。工匠的心态是你应该专注于获得稀有和有价值的技能,因为这是导致良好职业成果的原因。
2、 自治是“梦想”工作中最重要的组成部分。纽波特认为,在两个工作岗位之间进行选择时,有一个令人信服的理由“总是”选择具有较高自主权的工作,而不是自主权较低的工作。
为了激励超出基本任务的员工,给他们这三个因素来提高绩效和满意度:
-
自治 - 我们渴望自我导向。它增加了对合规性的参与。
**被收割、做代孕、做炮灰的感受是很痛苦的。**
-
掌握 - 获得更好技能的冲动。
-
目的 - 渴望做有意义且重要的事情。只关注利润而不重视目标的企业最终会得到糟糕的客户服务和不满意的员工。
3、 纽波特断言激情假说是导致工作满意度下降的原因。基本上,如果你认为你需要追随自己的热情,然后找到一份适合这种激情的工作,你就会为自己的失败做好准备。对职业生涯中的激情抱有不切实际期望的人会发现自己长期跳槽,并且不断对自己的工作不满意。
自我决定理论是指你的快乐与以下事物有关:
-
自主:感觉你可以掌控自己的一天,并且你的行为很重要。
-
能力:你擅长做什么的感觉。
-
相关性:与其他人联系的感觉。
纽波特断言,建立能力需要时间并获得产生享受所必需的自主权。换句话说,激情源于掌握。
好事源于掌握,而非激情。纽波特认为,更好的方法是采用他所谓的“工匠心态”。工匠的心态是把你的工作视为一种工艺:即专注于获得稀有和有价值的技能,直到你变得如此优秀,他们不能忽视你。
4、 纽波特定义了他所谓的“伟大工作的职业资本理论”:
-
定义伟大工作的特征是罕见且有价值的。具体而言,理想的工作具有创造性,可以让您创造巨大的影响力,并让您控制自己的工作和生活。
-
因此,供需表明您需要提供稀有和有价值的技能作为回报。这些稀有而宝贵的技能是纽波特所称的职业资本。
-
工匠的心态,无情地专注于变得“如此优秀,他们不能忽视你”,从定义上讲是追求获得稀有和有价值的技能。这就是为什么如果你的目标是创造你喜欢的工作,它就胜过激情思维。
如果你从事任何这些特质的工作,你获得稀有和宝贵技能的能力将受到阻碍。所以最好离开。
-
你的工作几乎没有机会通过培养稀有和有价值的相关技能来区分自己。
-
你的工作重点放在你认为对世界无用甚至可能不利的事情上。
-
你的工作迫使你与你真正不喜欢的人一起工作。
纽波特比这更多地考虑了两个关于寻求更多自治的观察:
-
如果您在获得足够的职业资本之前寻求当前职位的自主权,那么您将无法获得所寻求的自主权。简单地说:控制需要资金。
-
一旦你获得足够的职业资本来寻求控制,宇宙就会合谋阻止你获得控制权。简单地说:只有你控制好处。
控制需要资金,因为如果不为雇主创造足够的价值,就不能要求特殊待遇。即使你自己罢工,你也必须拥有人们愿意支付的技能,否则你控制自己未来的努力将因缺钱而陷入困境。
控制权益只有你意味着雇主会试图阻止你获得控制权。这适用于受薪工作的个人以及寻求自己创业的个人。这是合乎逻辑的:当你拥有需要更多控制所需的稀有和宝贵的职业技能时,人们会想要为了自己的利益而利用这些技能 - 并且会为你的特权付出丰厚的代价。因此,试图寻求控制是一种抵抗的邀请。学会期待它。
要取得成功,良好的使命应该服从塞思戈丁的“紫牛”营销法则:它们应该如此引人注目,以迫使人们与他人分享。让自己的所有任务必须是非凡的,可销售的。
“为了使任务驱动的项目取得成功,它应该以两种不同的方式表现出色。首先,它必须迫使遇到它的人向其他人发表评论。其次,它必须在支持这种评论的场所推出。
6、 追求掌握和自主,强迫自己获得稀有而有价值的技能——职业护城河的定义——让自己沉浸在知识之中,你将会因这些技能而获得丰厚的报酬。忽略任务,你可能会很好。
司徒正美
1、美国只有两样东西比中国贵 - 司徒正美
一个良好的社会鼓励两种人,勤劳的人和富有创造力的人,这就是美国先进的秘诀。
2、杜君立:作为美国精神的乔布斯 - 司徒正美
暴力与财富都建立在掠夺之上,知识经济则消除了掠夺。
据统计,目前世界64%的财富依赖于人力或智力资本,知识性的无形财富已经成为人类的主要财富,世界经济由劳动密集型转向知识密集型,软件比硬件更加可贵。正如德鲁克所说,“后资本主义社会”最根本的经济资源不再是资本或自然资源,也不再是劳动力,而是知识(技术不是知识);知识将成为唯一重要的资本,从而将人类带入一个“个人主义时代”。
知识权力下的第三次浪潮是一个创造的时代,一切守旧和重复都将重新落入第二次浪潮的陷阱,沦为先进国家的奴仆和奴隶。
乔布斯曾经对斯坦福大学的学生们说:“你们的时间有限,所以不要把时间浪费在别人的生活里。不要被条条框框束缚,否则你就生活在他人思考的结果里。不要让他人的观点所发出的噪音淹没你内心的声音。最为重要的是,要有遵从你的内心和直觉的勇气,它们可能已知道你其实想成为一个什么样的人。其他事物都是次要的。”
创新的背后,是一个健全的人格对智慧的崇拜,和对特权的反抗。
3、被迫才是进步的原动力(转) - 司徒正美
很多人以为「自己有选择想练什么武功的自由」,才能让自己的 power 开到最大。
但上班领钱,才有限时被交出成果的压力。而且那个压力能造成的动力是远比自己下定决心要练什么技能的动力还要可怕的。
4、怎样花两年时间去面试一个人 - 司徒正美
一上来就招到靠谱的人太难了,但找一块靠谱的璞玉然后雕琢雕琢相对就简单很多。 好书和坏书的差别,从本质上,就是学习效率和大方向的差别。 “书单计划”
-
清晰、明确。完全可度量。
-
防伪:读没读过,随便一问便知。而正因为应聘者也知道这事不像实习经验可以忽悠,所以也不敢乱往简历上捅词。
-
不在乎是否“泄题”:书单完全公开的,无所谓,本来就是要你去读的。想背题?背书吧。真能背下来说明认真看了。
-
管你用心不用心读,只要读了,读完了,就有区别。真正的好书,你想不被吸引都难。据我观察很多人就是不知道该去读什么书。
-
不存在“怎么做”的障碍:所有人都知道怎么读书——一页一页读。
-
不需要招聘者投入精力:书单在此,就这么简单,您看着办。
-
评估的负担很大程度转移到了应聘者的身上:是不是认真看完了,有没有心得体会,您自己掂量。没看完别来找我们。
“GitHub计划”,最好足够大到能够锻炼到方方面面,偏大一点倒是无所谓的,因为一个尚未完成的项目完全可以作为简历。
-
清晰、明确,完全可度量。
-
防伪:同样不担心“泄题”。你伪造不了GitHub历史,伪造不了check-in历史,review comments,文档,交流记录…
-
它不但是招聘,也是不花精力的培养。善哉善哉。
-
评估的责任很大程度上交给了应聘者自己。
面试微软前必须要读的十本书:
-
Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
-
Computer System: A Programmer’s Approach (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
-
Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
-
Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
-
The C Programming Language
-
The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
-
The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
-
Clean Code / Implementation Patterns
-
Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
-
Refactoring (《重构》)
其他
-
程序员修炼之道
-
代码大全
-
设计模式
-
深入理解计算机系统
-
TCP/IP 详解
冯大辉(丁香园CTO,贝塔咖啡创始人):
-
软件随想录
-
黑客与画家
-
重来
-
UNIX编程艺术
-
编程人生 洪强宁(豆瓣技术总监): StackOverflow上有一个程序员必读书单帖子,这里仅列出top10,更多参考这里。
-
Code Complete 2
-
The Mythical Man-Month (《人月神话》)
-
Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
-
TAOCP (不解释)
-
The Pragmatic Programmer (《程序员修炼之道》)
-
Design Patterns (《设计模式》)
-
The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
-
Refactoring (《重构》)
-
The C Programming Language
-
Introduction to Algorithms (《算法导论》)
justjavac(迷渡)
「把自己当作一家公司来经营」
1、justjavac(迷渡) - 我的编程之路:「懒惰」是程序员最大的美德
程序其实是给人看的,只是机器恰好可以运行它。
有一些程序员很懒,懒到任何事情都交给机器去做。
「学历代表过去,能力代表现在,学习能力代表未来」
2、justjavac(迷渡) - 屌丝应该知道的 6 个残酷人生事实(血泪翻译)
你要么选择学习某种技能担当某样角色满足他人的需要,要么就选择被社会抛弃。
「好人?关我屁事!慈父?去你妈的!回你的家和你孩子玩去!如果你想在这里工作,给我敲定手上的单子」
非常残酷、粗鲁、甚至有点疯狂。 可是,这恰恰是这个社会对你期望的最诚实的写照。不同的是,在现实世界里,人们认为那样讲话太粗鲁了对你不礼貌,于是他们干脆什么都不说眼看着你失败。
你的职责和你为公司的服务不是一回事请,但其实你只不过是你所有有用技能经验的综合体罢了。 技能是某一个个体能为社会中其他人提供的有用服务。 但别搞错了,你的「职责」——你为他人提供的有用服务——就是你的全部。
「但是为什么我不能就去找一个喜欢原本的我的人呢?」答案很简单:人是有需求的。别忘记我们的例子:伤者在流血,而你所做的只是抱怨找不到会自动愈合的伤口?
自己扳手指算一下:你有多少时间是在消费别人创造的东西(电视,音乐,电玩,网站)而不是生产你自己的东西?只有你的「产出」才能为你添加作为人的价值。
你的内在只有通过所做的事情才能表现出来。
给我去真正帮助他们才是真的。
【痛苦是会让人感到舒坦的】。许多人选择拥抱痛苦。幸福是需要努力的。
言,甚至拍一部A pian,做蝙蝠侠打击犯罪……
关键在于:我不希望你把眼光放在某个过高的目标上,我希望你专注于获得一样新的,【对其他人有用】的技能和经验。
「我没钱参加烹饪班」。那就 TMD 给我在 Google 上搜索:「如何烹饪」。我的天,拜托你戒掉这些借口,否则这些借口就要你命了。(You have to kill those excuses, or they will kill you)(要么你干掉那些借口,要么让那些借口干掉你)
3、justjavac(迷渡) - 老生常谈:面试算法有必要吗?
可以看应聘者解决问题的能力。
很多毕业生都把计算机学成了文科,他们不是在学习理论知识,而是被动接受/背诵记忆这些知识。 他们来公司,编程只是他们的工作而已,聘用他们的真正目的是解决问题,用程序解决很多人共性的问题。
4、justjavac(迷渡) - 少走弯路的10条忠告
如果你不喜欢现在的工作, 要么辞职不干, 要么就闭嘴不言
5、justjavac(迷渡) - 开发者如何提升和推销自己
怎么样才算成功?
看看你的左右,如果他们在和你做同样的工作,说明你还没有到达这一地步。如果你坐在他们中间,他们都在看着你,告诉你你的演讲很棒,并很重视你的意见,恭喜你,你已经做到了。
6、 justjavac(迷渡)- 你为什么薪水那么低(一)
我觉得升薪的关键在于『你可以做别人做不了的事』。
当然了, 你比别人做的快也行(也许你有N年工作经验), 别人做完用一个小时, 你用半个小时就做完了, 那么你就算是codeing行业的熟练工, 薪水也比新手高. 『所以有工作经验的薪水比新手高, 但是高多少呢, 就看你自己了, 工作N年以后同学们的差距就是这么拉开的』。
因为你在使用工具而不是技术, 说的不好听点, 你就是一个操作工而不是技术工, 你薪水高, 是因为你工具使用的熟练, 但是你可以完成的活儿, 别人只要愿意付出更多的时间, 也一样可以完成(以前我一宿舍哥们告诉我, 他想找个可以加班的工作, 给加班费的那种)。
7、justjavac(迷渡)- 你为什么薪水那么低(二)
作为程序员, 你与普通用户是不同的:其它人只是简单地“启动”程序,而你完全可以动用自己的专业知识,“驱使/调度”那些程序。
尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势——他人眼中的普通工具,是程序员手里的有利武器。
The Productive Programmer则会“教导”你:
-
多用宏吧,启动它,你就可以迅速完成大量重复的工作;
-
多用脚本吧,你可以提高运行的效率,避免变数和误差;
-
多用自动化测试吧,你可以迅速定位问题,保证质量;
-
多用管道吧,这样多个程序就可以“无缝结合”成一条生产线;
身为技术人员,了解技术,学习技术,运用技术,正是你的职业,你的优势,也是你的责任,你的生产力(所谓productive)所在。
“简单重复劳动是低效的(程序员不应该这么干)”。
8、justjavac(迷渡) - 程序员之路——一个老程序员对刚上大学的学弟学妹的忠告
所谓《原理》,即是需要掌握它为什么这样做,学习why,而不是how(怎样做)。
一个并未进入到行业竞争中来的初学者最大的资本便是他有足够的时间沉下心来学习基础性的东西,学习why而不是how。因为越容易掌握的东西,学习的人越多,而且淘汰得越快。
下面有一个不很恰当的比方:假设学习VB编程需要 4个月,学习基础课程和VC的程序设计需要1年。那么如果你先学VB,再来学习后者,时间不会减少,还是1年,而反过来,如果先学习后者,再来学VB,也许你只需要1个星期就能学得非常熟练。
不要花太多的时间去记条条框框,看不懂就跳过去。在每次自己完成了一个软件设计任务(不管是练习还是工作)以后再来回顾回顾,每次都会有收获。
一定要在每天晚上想想自己学了些什么,还有些什么相关的东西需要掌握,自己对什么最感兴趣,在一本书上花的时间太长还是不够等等。同时也应该多想想未来最有可能出现的应用,这样能够让你不是追赶技术潮流而是引领技术潮流。
9、justjavac(迷渡) - 写更少的代码
一个程序员的工作的本质是写尽可能少的代码。其实我没有说出真相。你的真正的工作是思考。你的工作是思考要解决的问题,设计一个优雅的解决方案,然后把这个方案变成软件。 而开发软体的一个副产品是,你需要通过写代码来解决问题。
作为一个程序员,你的绝大部分时间将用来维护你写的可怕的代码这一事实的时候,你就会觉得“写更少的代码,不要让自己写的代码给自己更来更大的工作量”这一原则是一个非常不错的主意。
10、justjavac(迷渡) - 关于编程学习的七点思索
对大多数人来说, 坐在教室里听课远非学习编程的理想途径。 辅以阅读介绍编程概念的书籍可能会有所助益, 但无法与通过有效阅读并思考其他人的源代码直至理解所获得的实践技巧相比。但是, 真的没有什么方法比喜欢自己动手写程序更能积累编程技巧。
11、justjavac(迷渡) - 一条很有价值的编程建议
面向对象编程的精髓在于将操作绑定在数据上,我们将数据绑定在行为上。
我们需要设计出可以描述的对象,然后将行为绑定在它上面,而不是聚焦在对象做什么,为此它们还需要哪些数据。
12、justjavac(迷渡) - 高效编程的秘诀
我的生活中有太多的各种各样的打搅我的事情,邮件,聊天工具,电话短信。 你的方法对我不管用。我有个原则:在我的工作时间里不允许有分心的东西。当我休息完后,我会花几分钟把这种分心的事情处理掉:检查邮件,回复聊天软件里的消息,回电话。当把这些事情全做完后我才开始启动定时器。
我不由的开始把工作细化成更小的模块,催促自己看是否能在这时间段里完成这个模块。
做一种活动,让你大脑闲置的活动。越是特意的停止工作,你越更多的投入到问题中,你把思想带离工作越远,思想会越想回去。这比起你死盯着 电脑屏幕/敲出一堆垃圾代码来,你的大脑会更有效率的多。
我最近也是这样的感觉,对于休息,重要的是“给自己充足的休息”,即使洗澡的时候多冲几分钟的水,放空的时候,不妨什么都不要管,让自己沉浸进去,放心不会浪费时间的,你会从中收获很多灵感和感悟。
陈浩
1、十条不错的编程观点 | | 酷 壳 - CoolShell
如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,无论是编程,还是运动,还是去旅游,那么你只不过是在应付你的工作。
注释应该是注释Why。
世界因为不同而精彩,只知道事物的一面是有害的。
2、程序员的谎谬之言还是至理名言? | | 酷 壳 - CoolShell
我有更好的沟通能力,这就是为什么我可以做得更好。这是相当重要的,但是,如果我们用软能力而不是用技术能力来区分程序员的好坏 – 是不是有那么点反常和变态。
大家缺少的是热情而不是知识。
对于那些你集中精力深度研究过的东西——并伴随着你的兴趣的东西——你会收获到扎实的知识(那是你大脑里实际存下的不会忘的东西)。
因为每一个人只会去学那些“需要”被学的东西,所以没有人能教给你任何有意思的东西。
不要只寄望于在工作中学习,工作没有覆盖的地方你就不学了。真正的高手在工作之余都会花很多时间去自己研究点东西的。
3、从Code Review 谈如何做技术 | | 酷 壳 - CoolShell
要到“做漂亮”这个级别,这就是“山寨”和“工业”的差别。而只以“做出来”为目的标准,我只能以为,这样的做法只不过是“按部就班”的堆砌代码罢了,和劳动密集型的“装配生产线”和“砌砖头”没有什么差别,在这种环境里呆着还不如离开。
总结一下,
1)你有没有去Review业务部门给你的这么多的需求,哪些是合理的,哪些是不合理的。在Amazon,开发工程师都会被教育拿到需求后一定要问——“为什么要做?业务影响度有多大?有多少用户受益?”,回答不清这个问题,没有数据的支持,就不做。所以,产品经理要做很多数据挖拙和用户调研的工作,而不是拍拍脑袋,听极少数的用户抱怨就要开需求了。
2)产品经理也要管理和教育的。你要告诉你的产品经理:“你是一个好的产品经理,因为你不但对用户把握得很好,也会对软件工艺把握得很好。你不但会开出外在的功能性需求,也同样会开出内在的让软件系统更完善的非功能性需求。你不是在迁就用户,而是引导用户。你不会无限制地加功能,而是把握产品灵魂控制并简化功能。你会为自己要做的和不做东西的感到同样的自豪。”你要告诉你的产品经理:“做一个半成品不如做好半年产品”(更多这样的观点请参看《Rework摘录和感想》)
3)做事情是要讲效率的。Amazon里喜欢使用一种叫T-Shirt Size Estimation的评估方法来优先做投入小产出大的“Happy Case”。关于什么是效率,什么是T-Shirt Size Estimation,你可以看看《加班与效率》一文 。
4)需求总是会变化的,不要抱怨需求变化太快。你应该抱怨的是为什么我们没有把握好方向?老变?这个事就像踢足球一样,你要去的地方是球将要去的地方,而不是球现在的地方。你要知道球要去哪里,你就知道球之前是怎么动的,找到了运动轨迹后,你才知道球要去像何方。如果你都不知道球要去向何方,那你就是一只无头苍蝇一样,东一下西一下。
当你忙得跟牲口一样,你应该停下来,问一下自己,自己成为牲口的原因,是不是就是因为自己做事时候像就牲口一样思考?
我在给阿里今年新入职的毕业生的“技塑人生”的分享中,我给他们布置了5、6个Homework,分享几个给大家:
1)重构或写一个模块,把他做成真正的Elegant级别。
2)与大家分享一篇或几篇技术文章 ,并收获10-30个赞。
3)降低现有至少20%的重复工作或维护工作
4)拒绝或简化一个需求(需要项目中所有的Stakeholders都同意)
4、Code Review中的几个提示 | | 酷 壳 - CoolShell
1)经常进行Code Review 1、Code reviews 不应该承担发现代码错误的职责。Code Review主要是审核代码的质量,如可读性,可维护性,以及程序的逻辑和对需求和设计的实现。 2、Code reviews 不应该成为保证代码风格和编码标准的手段。
千万不要等大厦都盖好了再去Reivew,而且当有了地基,有了框架,有了房顶,有了门窗,有了装修,的各个时候循序渐进地进行Review,这样反而会更有效率,也更有帮助。
下面是一些观点,千万要铭记:
-
要Review的代码越多,那么要重构,重写的代码就会越多。而越不被程序作者接受的建议也会越多,唾沫口水战也会越多。
-
程序员代码写得时候越长,程序员就会在代码中加入越来越多的个人的东西。 程序员最大的问题就是“自负”,无论什么时候,什么情况下,有太多的机会会让这种“自负”澎涨开来,并开始影响团队影响整个项目,以至于听不见别人的建议,从而让Code Review变成了口水战。
-
越接近软件发布的最终期限,代码也就不能改得太多。
先Review设计实现思路,然后Review设计模式,接着Review成形的骨干代码,最后Review完成的代码。
2)Code Review不要太正式,而且要短
-
只有在Checklist上存在的东西才会被Review。
-
Code Reviews 变成了一种礼节性的东西,你的同事会装做很关心你的代码,但其实他心里想着尽快地离开你。
只有不正式的Code Review才会让你和评审者放轻松,人只有放松了,才会表现得很真实,很真诚。记住Review只不过是一种形式,而只有在相互信任中通过相互的讨论得到了有意义和有建设性的建议和意见,那才是最实在的。不然,作者和评审者的关系就会变成小偷和警察的关系。
5、对程序员职业的一些建议 | | 酷 壳 - CoolShell
兴趣和热情只能让你很执着,但并不一定能让你走好这条路,只有你的能力和你的强项才能让你走好这条路。
当然,如果你发现你不适合,你无法坚持,那么我建议你还是想清楚,别的行业你能坚持吗?我们不害怕转行,害怕的是自己对自己缺乏认识,害怕的是小猫钓鱼,害怕的是一山望比一山高。
比如你的职位,薪水,福利,等,我从来都不是很关心这些东西,这些都是次要的(其次重要的),最重要的是你的能力和经历,是那些可以写在你简历上的,让你引以自豪的经历和能力。
6、十个让你变成糟糕的程序员的行为 | | 酷 壳 - CoolShell
如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。
聪明的工作,好的程序可能会花双倍的时间来准备一个有效的开发环境,工具,以及在开发的时候花双倍甚至10倍的时间来避免一些错误。好的程序员总是会利用一切工具或手段来让自己的工作变得更有效率,总是为在开发的时候尽可能得不出错。
“丑女多作怪”,意思是说如果一个自己没有真实的能力的话,那么他一定会在其它方面作文章。
7、22条经典的编程引言 | | 酷 壳 - CoolShell
过早的优化是万恶之源。
“一件事情总是会花费比你预期更多的时间,就算是你已经考虑过本条Hofstadter 定理”。
8、不要拯救那些职场上的"无可救药" | | 酷 壳 - CoolShell
四类不可coach的人:
-
自己并没意识到有任何问题的人
-
其努力方向和公司战略相左的人
-
入错行的人(也许我们应该引导他们去发现自己才能所属的领域)
-
怨天尤人的人(老认为别人有问题的人)
9、结对编程的利与弊 | | 酷 壳 - CoolShell
请记住,人是一种非常复杂的动物,他们的缺点和内心的阴暗面可能会比你想像得还要糟糕,而这些东西是可以让一切事物失败的。
10、软件公司的两种管理方式 | | 酷 壳 - CoolShell
Film Crews 。这种公司认为人是有相当高的智力和创造力的,是自己可以激发自己的(陈皓注:即使没有外界的压力和处罚的威胁,他们一样会努力工作以期达到目的——人们具有自我调节和自我监督的能力),人们努力工作,并且可以享受工作(人们愿意为集体的目标而努力,在工作上会尽最大的努力,以发挥创造力,才智),就像孩子喜欢玩一样。 Film Crews 认为,每一个个体的自已专业能力,要远远优于那种被组织和协调出来的能力。
PM 和 BA 努力工作来维护他们的权位,他们通常不会让你能得到项目的原始信息。因为团队拿不到项目的原始信息,所以团队就要拼命地制造各种理由来让他们的方案变得有价值,程序员成为了只会从PM和BA那边听从命令的工人。而这种情况反而让Widget Factory 公司放大了他们的那种想法——程序员都是差不多的,就像车间里的工人一样,他们只不过在机械地干一些很复杂的但是很标准的事情。
Film Crew 更主张的是平等的工作职能,每个成员都可以不受限制地获得主要的和原始的信息,其鼓励所有人形成自己的价值判断,并且可以自由地选择不同的方式来达到团队的构想。Leadership领导力结构基于人的能力而不是工作角色。
在这种环境里,PM的工作显得并不突出,他也许也不太可能是一个有创造力的领导者,工作角色被弱化成了一种行政管理上的支持者,以及团队外部的联系者。BA的部分工作直接被团队取代(在项目早期被Director取代)。
成功的软件公司都会趋于采用 Film Crew 的方式,任何其它的东西都会妨碍他们吸引牛人的能力,因为只有吸引了牛人,你才能创造出伟大的软件。
11、加班与效率 | | 酷 壳 - CoolShell
靠堆功能没有灵魂的产品的价值就只剩下比谁跑得快了。
在《Rework》摘录及感想 中提到过两点
-
条件受限是好事,因为条件受限可以让你小材大用,让你没有办法再用蛮力来完成工作,让你必需去思考使用知识密集型的解决方案来更聪明的解决问题。
-
工作狂往往不得要领。他们花大把大把的时间去解决问题,他们以为能靠蛮力来弥补思维上的惰性,其结果就是折腾出一堆粗糙无用的解决方案。
另外,我还要多说几种情况: 1)如果你的员工就像在《软件公司的两种管理》中所说的,像Widget Factories那样,净是些X型的人的话,那么,你也只有使用加班和加人这种方式,就像长城和金字塔的建设过程一样,就像富士康一样,你的团队本质是不会思考只能用鞭子去抽他们的方式去管理。于是,你也只能用“狼性”来呼唤你的员工像那些低智商的野兽一样的行事。
有的人工作就是生活,生活就是工作,所以,对他来说,这不是一种工作,而是一种事业。我认可这样的精神和热情,但是,我还是想让这样的人反思一下自己,有没有用一种更为聪明的方式来从事自己的事业?而不是用蛮力。 效率不是比谁干的活多,而是比谁干得活有更大的价值。
1)增加有用功
-
你得多问问你的需求方,为什么要加这个需求?干这个事到底有多大的价值?能让多少人受益?
-
你得多问问你的需求方,能不能稍微简化一下需求,这样可以让我付出的努力更少一些?
-
你得要多去思考一下,你是在干一个建筑队的活呢?还是在干一个装修队的活?
-
你得要多去思考一下,业务上和用户的最大的痛点是什么?
关于增加有用功,再说两点:
-
像乔布斯那样,告诉你的产品经理或是业务方,你现在提的10需求,我只能做3个,会是哪3个?为什么是这3个?有用功的来源不是拼命做需求,而是砍需求。
-
关于创造价值,我们要干的不是像百度的“竞价排名”那样,把钱从别人口袋里搬运到自己的口袋里,而是要像“英国工业革命”或是“硅谷”那样,把价值真正的创造出来。
2)降低总功
-
你得多问问自己,你有多少时间是在干一些支持性而不是产出性的工作?
-
你得多问问自己,有没有残酷无情地减少重复劳动的劳动密集型的工作?
-
你得多问问自己,自己的管理者和员工的能力和素质有没有在降低你的团队执行的成本?
3)形成合力 有一个很不错的产品经理对我说,他看了南京那两个小女孩被饿死的消息,感到很震惊。与之有关联的每一方都说自己尽力,但是最终结果人还是饿死了,你几乎不敢相信这是真的。
所以说,效率不是每个团队各自的效率,而是整个团队对整个产品负责的共同使命,这样才会现整体的效率。没有整体的效率,只有个体的效率,最终也等于没有效率。
12、挑战无处不在 | | 酷 壳 - CoolShell
因为没有去做,所以就没有去了解,等做的时候再了解。他们都会告诉我,不好意思,因为没有做过相关的事情,所以就不懂了,所以,他需要一个像我们这样的项目来学习和锻炼。 关于热情和态度,说白了就是不要给自己找借口。
对于某些事情,如果以前没有在你身上发生过,那么这个事情在未来也不会发生。如果你以前没有对你接触过的东西去学习,去深挖,去思考,去改善,那么我不会相信你会在未来面对新的东西的时候也会有这样的态度;如果你以前没有用业余时间学习一些项目之外的东西,那么我也不会相信你会在未来会这样做;如果你以前没有把你的热情和态度转换成你的知识,经验和成果,那么我也不会相信你会在未来能做到。
优秀的程序员都是相似的,当他们还在是一个菜鸟的时候,就已经有各种成为高手的苗头了,这些苗头就是——他们热爱思考,喜欢解决难题,对新鲜事物非常好奇,总是找人讨论,可以用自己的业余时间狠命研究很多和工作无关的技术,会在业余的时间里写些有趣的小程序,或是会把自己的思路书写下来,等等,等等。
13、《Rework》摘录及感想 | | 酷 壳 - CoolShell
1)现实世界
这个“现实世界”听起来如此令人沮丧,……只有人耳熟能详,习以为常的事情才会胜利,即使是这些事情已经漏洞百出陈腐低效。
揭开“现实世界”这个锅盖,你会发现居住在里的人都充斥着悲观主义和失望的情绪。更糟的是,他们想将别人拖进他们的坟墓。如果你是充满希望和野心的人,他们会试着说服你,你的想法是不可能的。他们会说你在浪费时间。
如果你和大多数人的想法一样,你必然会和大多数人一样的平庸。
2)被高估的“从错误中学习”
逗留在过去的失败中是无法进化的,进化是建立在成功的基础上的。
我见过和很多人都在抱怨这不好那不好,但是他们其实并不知道什么是好的,因为——没有见过好的,你将永远不知道什么是好的。就好像你没有见过什么是汽车,你就只会整天在抱怨为什么骑自行车太累。
所以,你一定要去看看那些优秀人干是怎么想的,怎么干的,去那些成功的公司开开眼界。另外,你应该多想想你过去做成功过什么事?那些才是你的长处,才是让你进化的前提。
3)计划就是瞎猜
你有职业规划吗?如果你有的话,那么你就一定就错了。职业规划是一件很扯淡的事情。我和一些高手都交流过,其实这些人在当初都并不有什么职业规划的,要说有的话,也就是想把技术搞透搞精。
4)拒绝壮大
规模越大你就得承受更大压力、需要更专业、拥有更强的能力。
有没有注意到,一个小公司希望自己变大时,大公司却想要变得灵活变通。记住,一旦你变大了就很难在不解雇人、不破坏士气、不改变你的整个商业路线的情况下收缩规模。
扩张不必成为你的目标。我们也不是仅在讨论你已有员工数。 还有花费、租金、IT 基础结构、设备等
我就管个十人不到的团队时。
人多可能恰恰说明你可能在干一个劳动密集型的事情,这并没有什么可自豪的。真正自豪的不是在战争中用人海战术让大量的人去当炮灰,而是用一个小分队端掉敌军的军火库或指挥部。所以,关键不是你有多少人,关键是你做的事是不是有非凡的意义,而且你用了最小当量的资源。这就好像建立一个高性能的网站一样,用成百上千的服务器不算本事,谁用的少才是本事。
5)工作狂
工作狂的行为不但没有必要,而且愚蠢至极。过多的工作并不代表你对项目更关注,也不代表你作了更多的贡献,这仅仅意味着你干了更多的活而已。工作狂制造的麻烦比解决的麻烦多。
工作狂往往不得要领。他们花大把大把的时间去解决问题,他们以为能靠蛮力来弥补思维上的惰性,其结果就是折腾出一堆粗糙无用的解决方案。
如果你只是为了工作而工作,那么你就会丧失判断力。你的价值 观和决策方式都是扭曲。你没有能力去判断哪些工作值得做,哪些工作该放弃,最后搞得自己筋疲力尽,而一个筋疲力尽的人是无法作出明智的决定的。
工作狂不是英雄。他们不是在节约时间而是在浪费生命。真正的英雄早已想出了办法,搞定一切,然后回家了。
他们生生地把一种技术密集型的工作变成了劳动密集型。他们其实就是在拼命地训练客户需要的那匹“更快的马”,而从来没有想过要去造个更快的交通工具。我们超时工作是在使用蛮力呢?还是在使用热情和兴趣呢?
6)挠自己的痒处
想要创造一款伟大的产品或者是某项卓越的服务,最直接、最简单的方法就是去做你自己想用的东西。
最棒的是,“解决你实际遇到的问题”会让你爱上你做的事情。
这些人明明想活得更有激情,但最终在现实面前认命妥协。我说既然有痒处,还比较痒,那就应该毫不犹豫革自己的命,轰轰烈烈地活一次。别等老了后悔当年没有勇气。“挠自己痒处”就是挑战自己,革自己的命,既然想了,就做吧,生命只有一次,值得我们轰轰烈烈地去为之付出。
如果你只能在万事俱备的情况下才能做事,那么,你还有什么价值呢?人的价值和竞争力就是在条件并不完美的时候还能搞定事情。
7)画沙为界,立场明确
强大的主见,也是要付出代价的,在这个过程中,会有人诋毁你,说像傲慢,冷漠。
我喜欢有鲜明的观点,因为鲜明的观点和立场能不但能让文章鲜活起来,而且还能迎来更多的不同意见和更多的思考(而不只是“顶”“赞”之类无意义的回复)。我并不希望我的观点是正确的,我只希望能和更多的人加入我一同思考,而思考最佳的催化剂就是争论。我从这个行为中收益到了很多很多。
8)找好退路无异于失败
你要考虑的是你的项目怎样发展和成功,而不是怎样撤退。
如果你以为用试一试的态度就可以把一个事情搞成功,那么你让这世上那些Full Time全天候从事这个事情的并有一些积累的人情何以堪?如果你创业时都想好了失败,那就说你你对这个事没有必胜的信心,也说明连你自己都不相信这个事,你还干个什么劲啊?你与其把时间用在思考如果创业没成功你会怎么办上,你还如去思考一下如何做才有更大的胜算。
9)与其做个半成品,不如做好半个产品
同时做N件事的结果就是:一大把绝妙的点子最后被转化成一个蹩脚的产品。
“中国的学生只是去记忆东西而不是真正的理解。他们从来不花时间去思考,而只是贪婪地去获取更多的信息”。
一个半成品会让人绝望,而半个好产品会让人有所期望,这就是其中的不同。
10)关注不变因素
你的事业的核心应该建立在不变的基础之上。你应该投资于那些人们现在需要,并且十年后仍然需要的事物上。
11)会议有毒
如果只是带一个或几个问题来开会,简直是就是扯谈,如果对于问题没有几个备选的解决方案和各方案的评估,完全没有必要开会。
12)人人都得干活
如果你不想滋生办公室政治,那么你需要干两个事,第一个是最好不要变成大公司,第一个是让每个人都在实干。
13)拒绝照搬 & 将你的产品去商品化
如果你着眼短期,你无疑会面对众多的抄袭和模仿者让你万劫不复,但是,如果你着眼长期,做一个3-5年需要花费大量精力才会成熟的产品,那么,那些急功近利的抄袭者会知难而退的,因为长期并不符合抄袭者的价值观。
14)做得比对手少
让自己去解决简单的问题,把那些纠结的、麻烦的、艰难的、讨厌的难题留给竞对手去解决。不要总想着去胜人一筹、去超过别人,试试相反的做法。
15)谁在乎他们在干什么
不管怎样,终究是不值得过于关注你的竞争者。为什么?因为关注别人太多会让自己受到困扰。
不要在乎别人干了什么,你应该多看看自己的长处是什么,每个人都有每个人的路,你要做的是按照自己的节奏和自己擅长的方式行事,而不是小猫钓鱼。
16)养成对客户说“不”的习惯
说“好的”很容易。我们很容易接受同意一个新功能、同意一个过于乐观的截止日期、笑纳一个平庸的设计。很快,一大堆你曾经说“yes”的事情就发生连锁反应,很多你不想要的东西越堆越高,甚至你都看不出原来想要的东西。
电子节目那万恶的KPI是收视率,而互联网的万恶KPI是流量。于是很多公司为了流量开始不择手段,就像电视节目用庸俗化来提高收视率一样,我们的一些互联网产品也使用庸俗化的东西来提高流量。我们要做的是一个让人称道的有品质的产品,而不是一个只有访问量的产品。
17)不要攀客户的高枝
公司要对某一类型的客户全情投入,而不是对某个善变的客户唯唯诺诺。
你永远要找到自己的定位,你不可能满足所有的人。
18)一夜成名只是传说
很多事情都不是偶然的,都是有前兆的,还是我以前说过的那句话,“如果一件事情以前没有发生过,未来也不会发生”,比如:如果你在学校里,在工作里,你的同学和同事并不经常来向你请教询问你的意见,那么你基本上很难成为一个Leader。
19)员工不是13岁
当你把员工当孩子看时,人们就会像孩子一样行事。
当公司里事事都要上报审批时,你就创造出了一种无脑文化。你成功地制造出了老板和员工之间的对立关系。这种关系在咆哮着:“我不相信你!”
20)对员工的不信任才是最大的开销。
最有效的管理就是自己管理自己,而不是还要专们的人来管你。不然的话,你一定会很难受的。如果你能管理好你的工作和任务,我们就不需要项目经理。如果你能管理得好你的做事的方法和流程,就不需要那些搞流程的。如果你能管理得好你的程序质量,我们就不需要QA来监管你…… 等等。其实,你们如果能管理得好自己,并能自我进化。你们甚至不需要一个经理。但是,你们可能会需要一个为你们跑腿打杂的人,其实,那个人就是经理。
欢迎订阅
微信搜索“连明堂的网络日志”或者扫描二维码,即可订阅。