lietoumai/Awesome-offer

一些来自于老程序员的人生经验

lietoumai opened this issue · 0 comments

在我做程序员的30年里,我学到了一些东西。这里有一些我觉得还不错的干货来分享。

客户只知道他们想要的是什么.

我在我的第一份工作中学到这个.客户永远不知道什么才是必须的,直到你给他们看。功能原型总是能打败冗长的单词列表。

只要有足够的时间,所有的安全性就会失败.
当今世界的安全问题面临了难以置信的挑战。你必须一直要保持完美,但黑客可能只需要成功一次就能击垮你。

你的安全性会否经得起考验,取决于你是否提前准备好了.

如果你假设攻击者将会破坏你的防御,那么你最终需要计划接下来会发生什么。如果他们攻陷进去了,但他们不能使用任何数据,因为你使用了正确的安全措施,比如让数据库内容无法辨认,或者把服务器隔离。深度防御总是胜过一层薄薄的措施。

良好的安全性不是支出,而是战略资产;在资产中,糟糕的安全性会给带来打击.

在我的职业生涯中,我曾听到人们抱怨说,要保证安全是多么的复杂或昂贵,然而一旦失败,你就会损失数十亿美元。省下几块钱然后失去你的公司才是最愚蠢的。

把复杂的东西做的简单很困难,而把复杂的东西做的更复杂会很简单

这话在编程、设计和几乎任何创造性的行为中都是讲的通的。我一直在试着编写尽可能简单的代码让我(或者其他人)能够理解。如果您试图使代码过于复杂或过于聪明,那么它正确工作的可能性就很低。当然,我已经看到代码永远在程序员们努力的使事情变得高深莫测了。 。

错误是成功之母,源于思维错误的失败是正常的,是可以被容忍的。

我听过很多人说,因为编程是很困难的啦,不断犯错是正常的啦,所以产出一些糟糕的软件是不可避免的。而人们也学会容忍垃圾,因为他们已经反复听到这些。但是,作为一名程序员,你不应该接受这一点,并且应该尽量做到只在一个地方跌倒一次。希望最终你已经把该犯的错都犯了,那现在的你很可能只会做一些不蹩脚的软件。没有人会是完美的,但至少你已经在通往完美的这条路上了。

唯一不变的是变化本身,你必须得接受.

计划明天的世界,就像今天一样,是很愚蠢的。特别是在编程世界里,没有什么是永恒的。一种勒德分子式的态度,认为你可以随时改变,这几乎不可能。

永远不要停止学习,技术的蒸汽机就在你的身后跟着你,等着你停下来.

我最喜欢的比喻是,在你屁股后面的大滚筒总是在追赶着你。长久以来作为程序员的唯一生存之道,就是你必须不断前进。一旦你停下来休息并且自认为老子啥都懂,你就会在路上找到一个平坦的地方(然后等那个大滚筒把你压扁扁)。

整个软件行业都是建立在胡乱猜测的基础之上的.

我周围所有的职场人士都坚持要去估算做一件事要花多长时间,不管是小的还是大的,现在证明他们都是错的。很久以前,预言未来失败的先知会被石头砸了;而现在,他们只是会埋头进入下一个冲刺阶段。

只是因为它适用于你,所以它不一定适用于我或其他程序员。

在软件项目中你有无穷多的选择。有些很牛逼,有些可接受,有些很糟糕。但是哪些适合你、适合你的场景并不代表就可以适合别人。听别人怎么做总是好的,但是我不太喜欢,那些人总觉得他们的方法才是对于一些项目而言最好的方法。

在不断变化的世界中,最重要的技能是评估.

这对于一些人而言并不是很明显的,但是拥有去发现一些新东西,或者是看别人怎么做,或者是尽可能的多想一些处理问题的方法并且选择一个最合适你、你的团队、你的项目,甚至是你的公司的能力才是真正无价的。要从所有方面和你的需求中找出一些最好的东西,看上去会困难得多。当然,你必须做出一些决定,人们往往会因为不得不做出判断而陷入瘫痪,而这些往往会导致随机选择或随大流。

有不止一种方法来剥猫皮;从猫的角度来看,这并不重要.

客户才不会管你的问题出在哪,他们只想让你的软件帮他们去解决需求。如果你的系统崩了,发生了异常,你的硬件被破坏了,你的程序员水平很挫,黑客们正在进行黑客攻击:那么请问,这关客户什么事。当事情变得很糟糕的时候,诚实会很有帮助,因为他们有时候吃这一套,但最好是在客户看到你的工作之前,确保这些挫事不太可能发生。

客户是评价质量的最好标准.

不管你有多少度量标准,你检查了多少个清单,你审查了多少代码,你写了多少测试;这些都不重要,除非客户看到你的软件做了所有应该做的事情,并且从来没有做过不应该做的事情。客户对你的代码质量、性能、设计和可用性的看法是最终决定质量的唯一因素。

你不知道什么会杀了你,因为你没有记录任何东西.

让我一直感到惊讶的是,即使在今天,人们依然不收集足够的日志、崩溃报告和使用信息来了解他们的软件正在做什么。我一直坚持要详细和有用的日志记录、崩溃跟踪记录、阅读审查和评论,以及其他任何我能在遇到问题时得到的信息。然而,我认识一些人,他们认为这样的事情与做程序员毫无关系。

总有一些更好的方法来做任何事情,但时间不等人.

在评估要做什么时,最难去平衡的是什么时候停止。你可能会错过更好的方法,但如果时间过长,你就没有任何理由去做任何事情。这很难得到正确的答案,但是有时候,你今天做出一个较小的选择,会比你明年做个大选择更加重要。

这最后两句话是很久以前,我从一名共事的销售人员那得到的。反正我是不同意的,这是一个教训。

永远记得要去寻找有钱但是蠢蠢的客户.

我在一家咨询公司认识的一名销售人员最喜欢的一句话。从他的角度来看,找到那些不懂技术的人,但有很多钱可以烧的是才是王道。聪明的人会问太多问题;穷人付不起你的钱。我很高兴我是个程序员!

我的工作是对客户撒谎,你的工作是让我看起来想那么回事.

我最喜欢的第二句话出自同一名销售人员。他喜欢去承诺一些不可能的事情,然后在我们完工的时候收获回报。做一些有挑战性的事情是很酷的,但是每次做不可能的事就都太痛苦了。我的建议是找一个更好的销售人员!

原文出处:http://thecodist.com/article/lessons_from_a_lifetime_of_being_a_programmer