在我30多年的程序员生计里,我学到了不少有用的东西。下面是我这些年堆集的经历精华。我常常想,假如曾经能有人在这些经历上点拨一二,我信任我现在会站得更高。
1.客户在接触到产品之后,才会真实了解自己的需求。
这是我在我的第一份作业上面学来的。只需当咱们给客户展现产品的时分,他们才会意识到哪些是有必要的。给出一个功用性原型规划远远比一张长长的文字表格要好。
2.只需有满足的时刻,一切安全防护体系都将失利。
安全防护现如今是全国际都在重视的大课题、大应战。咱们有必要时时刻刻活跃完善它,由于黑客只需有一次成功,就可以完全打败你。
3.安全防护是否失利取决于及早规划。
假设有黑客会完全损坏你的防护体系,那你就得提早做好预备。这样即便真的让他们侵入了体系,也盗取不了任何有价值的东西,由于你现已对服务器做了安全设置,比方对数据库中的内容进行了加密,而且对每台有或许遭受进犯的服务器进行了阻隔。
记住,再强壮的防护都会有它的单薄之处,要害是要未雨绸缪。
4.杰出的安全防护体系不要在乎它的费用,由于这是战略出资;不及格的安全防护才是被糟蹋的资源。
在我的职业生计中,常常听到有人诉苦说安全防护是多么多么的杂乱和贵重,他们没有意识到的是,假如防护失利,公司将丢失的或许不止几十亿美元。为了节省几块钱而导致企业破产,这种做法毋庸置疑是十分愚笨的。
5.将杂乱的东西整理成简略的,是很难的,可是要是把杂乱的捣鼓成愈加杂乱的,那就简略了。
这一条适用于编程、规划和简直一切的发明领域中。我一向以来都期望自己的代码能越易于了解越好。假如你的代码过于杂乱和不流畅,那十之**它正常作业的或许性很低。我曾十分有幸地才智到有些程序员费力含辛茹苦,反而让代码愈加难以捉摸了。
6.成功源自于失利中的学习;失利则是由于忍受过错的横行。
有许多程序员总是在辩解,说什么“程序这么难,犯过错很正常了,软件变得糟糕也在所难免了”。这种理由听得多了,所以,咱们也逐步接受了这些扯淡的托言。可是咱们作为程序员真的不应该让这些托言阻止咱们的行进,应该谨记,过错只能犯一次,要吸取教训。话说是程序员都会期望自己下一次就能一次性搞定代码。可是没有人是完美的,不过至少咱们是在朝着这个方向行进的路上。
7.仅有不变的是改动自身,这是谁都无法改动的规律。
方案永久赶不上改动,以为明日的国际和今日相同,这种主意自身便是愚不可及的。尤其是在编程国际里,没什么是永久的。人不能两次踏进同一条河里。
8.永久不要中止学习,一旦你停下来,技能的浪头就会狠狠将你拍死在沙滩上。
作为程序员立于不败之地仅有办法便是,不断学习、不断行进。由于一旦你松懈下来,你的一切优势都将随风而逝。
9.整个软件职业建立在“百家争鸣”的思想上。
在我的职业生计中,我看到过许多程序员会对各种事情较真:预估完结时刻上较真,规划巨细上面较真等等。而且有的人还屡错屡战。有些曾经被批判为“行不通”的技能,现在却现已牢牢占有了人们日子的一席之地,而且如今正向着另一个**冲刺。
10.合适你的不一定合适他。
在软件项目中咱们可做的挑选许多许多。有的英明,有的糟糕。可是合适你和你当前状况的挑选或许一点都不适用于其他人。咱们常常能听到他人说自己又在干什么巨大的壮举,可是假如他们说什么这是仅有的好办法时,我会对此不以为然。
11.在这个不断改动的国际中,点评是最为重要的技能。
这一点有些人或许并不知道。可是假如你乐意知道新事物,看得到他人的尽力,比较干事办法之后再择优运用,那么不可是你自己,还有你的团队、你的项目、你的公司,都将获益无量。可是许多人对此都不拿手,而许多负责人乃至在这方面体现得十分糟糕。照着他人说得做,以及看他人做什么自己也做什么,是十分简单的。可是假如要全方位地看问题然后再根据自己的需求挑选对应的最优方向,这就很难很难了。在软件职业中做挑选是有必要的,可是假如当你在不得不点评剖析的时分脑筋一片茫然,那终究的成果只能是随机挑一个或者是顺从随大流。
12.不论黑猫白猫,能抓到老鼠便是好猫。
只需你的软件能完成客户指定的功用,他们才不会关怀需求处理哪些问题。体系出问题了,异常状况产生了,硬件坏了,程序猿被女朋友甩了,黑客**了:用户永久不会对这些产生爱好。假如产生意外状况,最好能坦白说出来,可是你最好要能保证这种状况不会耐久,由于你总给将终究的产品交给客户。
13.客户的定见决议质量。
不管你设置了多少目标,查看过多少表单,审阅了多少代码,写了多少测验:这都不是要害,除非客户自己亲眼目睹软件运作正常。关于代码质量、功能、规划和可用性,客户的定见才是决议质量的仅有要素。
14.对某方面的无知或许会让你落花流水,由于你在这方面毫无经历。
即便到了今日我依旧在不断惊叹,有的同行居然依然没有搜集满足的日志、溃散陈述和运用信息来掌控自己的软件。那些对这方面信息嗤之以鼻的家伙,大多会高估产品的质量。由于假如你不采纳办法和记载成果,浑浑噩噩地混日子,终将会导致你对当前状况一窍不通,包含你的客户。我一向反复强调,具体而有用的日志记载、程序溃散盯梢、谈论和定见,横竖各种只需能让我赶快了解产生了什么问题的途径和办法,都是可行的。不过,我也知道有许多人以为“这种事和程序员有一毛钱的联系吗?”。
15.总有更好的办法,可是时刻不允许。
点评中最难掌握的节点是什么时分应该中止脑筋风暴开端开工。或许咱们会错失那个更好的办法,可是假如要消耗很长时刻,那就不值得了。可是这是很难界定的,不过有时分今日的一个小小的挑选或许会打败下一年那个更佳的选项。Who knows?
下面两点引证自一名出售人员,他是我很早曾经的搭档。有些东西我并不是完全同意,不过也能给予咱们不同的视点看问题。
16.客户要找愚笨的。
这是我最喜爱的一句话,这个出售人员上任于一家咨询公司。他以为,要找那种不明白技能可是有满足本钱浪费的金主。聪明的人总是会问许多问题;没钱的人无力购买咱们的服务。我很幸亏我是一名程序员,哈哈!
17.我的作业是诈骗客户,而你的作业则是支撑我。
第二句话来自于同一个出售人员。他总是喜爱不断地许诺一些不或许的使命,然后当咱们总算煞费苦心加班加点赶出来了,他就来收成咱们成功的果实。应战确实让人exciting,可是每次都是这种不或许的使命未免太苦楚。我的主张是,换一个更好的出售人员!【译者注:这不是传说中的PM和程序员之间的“调和”联系么?】