Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lietoumai opened this issue Sep 24, 2017 · 0 comments
Open

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

lietoumai opened this issue Sep 24, 2017 · 0 comments

Comments

@lietoumai
Copy link
Owner

lietoumai commented Sep 24, 2017

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@lietoumai lietoumai changed the title 待翻(来自终身程序员的编程者头条教训)Lessons From A Lifetime Of Being A Programmer 一些来自于老程序员的教训 Sep 24, 2017
@lietoumai lietoumai changed the title 一些来自于老程序员的教训 一些来自于老程序员的人生经验 Sep 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant