左耳朵耗子:软件开发这些年,我学会的道理和教训
Posted landesk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了左耳朵耗子:软件开发这些年,我学会的道理和教训相关的知识,希望对你有一定的参考价值。
猫宁!!!
参考:https://mp.weixin.qq.com/s/-Gus3fGHXcRBvuKjrwQStA
1-那些年,我犯过的错误
从业 20 年,98 年到 18 年,一共 20 年,98 年毕业,我学这么多东西整个过程也不是速成的,也是一点一点来的。今天我想先跟大家说一下,我之前犯过的一些错误,犯过最惨的一次错误。
今天我们也能听到很多的这种什么删了库,跑路的,或者说是不小心把生产系统给搞挂了,我以前也经常干这样的事,而且干的还是银行,把银行的一些数据库搞乱了。
我印象比较深的一次,是在银行工作,银行都是晚上上线,因为白天要生产,所以要加班。以前用 C 语言写程序,够变态的。C 语言出 Bug 的概率高的多的多,所以就很容易出这种问题,出了问题以后,要去把 Bug 改了,改完以后,又得把数据给订正回来,数据订正回来的时候脑子一晕,y 条件写错了,就把数据库给毁了,毁了怎么办呢?就只能把头天的备库拿出来,重新恢复一下,那今天的数据怎么办呢?那就让储蓄所关门,还好有纸质的,然后就把那个网点的数据重新补录一遍,然后银行方面就说,这分明就是搞破坏。
当然我犯过的错误还有好多,以前在国际化的公司工作,尤其是在路透,最痛苦的事情就是代码没写好出问题。然后晚上被叫起来,是凌晨三点钟或者凌晨四点钟被叫起来,在迷迷糊糊中进入到一个电话会议室里面,然后跟着世界各地的人在非常嘈杂的环境下说英语,解决故障。
在路透的时候,有一个 Bug 上线了,其实这个是在我们测试时已经测出来,但是上线的时候疏忽了,没有把修复这个 Bug 的那个代码给发布出去,而是发布了包含这个 Bug 的代码,结果造成生产线上数据丢失。你想那是金融数据,这个事可大了,凌晨四点钟被叫起来。想了想,脑补一下,好像是之前犯过的那个 Bug,就总觉得应该是发上线了,结果那个补丁没跟着一起上线,这事把我急坏了。然后就听见国外那些老板们就在那边那种骂,用的都是一些非常重的一些话来骂,后面故障处理还需要批斗,要找人负责。
所以这是这种人在江湖漂,哪能不挨刀。你做得越多,出的故障越多。除非你啥也不做,但是出的故障越多,你的成长才会越大。所以我还是跟大家说,趁着年轻,多犯错误。因为你现在犯的错误都还好,只有人犯过错误了,你才会有那种深刻的理解,对这个东西,你会有更深的理解,不犯错误的人你是不会成长的。把人送到那个月球上那个阿波罗,那个死了多少人?出了多少事?才上了去,所以这个东西,很多东西都是这种经验教训就这么来的,所以大家一定要珍惜犯过错误的这个事。
实现一个小的目标,犯一个大的错误。犯一个大的错误,一般来说你要么就被打垮掉了,你就平庸下去了,要么你就知耻而后勇,你就越来越牛了。所以为什么在拼命的学习?就是因为以前犯过这些已经严重的错误,对我来说,说好听点是一种忧患意识,说的不好听点,是一种心理阴影,这种心理阴影导致了你必须得不断的去学习,不断的去总结,所以这导致了我今天会一点一滴的走到今天这个样子,所以,把这些东西都当成自己的好事,如果你害怕失去你不敢去犯错,你就不会去做更多的事情,当你畏手畏脚的时候,是你失去更多东西的时候。
2-我自认为做过最牛逼的事情和最傻逼的事情
最牛逼的事情是这样的,我永远记得我离开银行的时候,那个时候是 2000 年 9 月份的时候,我递交我的辞职报告,我上面写了:本人对现有工作毫无兴趣,申请辞职。就那么一句话。但是我当时已经在银行干了两年了,这个辞职单还放在云南省工商银行的那个档案库里,那边的人事中心还在整天叫我赶快把档案调走,到今天还被以前的前同事拿出来说事,说你当年那么年轻,写了这么一个辞职信,房子也不要了。
为什么我觉得这是最牛逼的事?因为这个决定真的不好做。首先第一个事情是所有人都反对。因为我父母都是下岗工人,父母两人加起来一个月工资不到两百块钱作为生活费。在 2000 年,老实说是不可能生活下去的。我大学的时候,因为银行需要做信息化改造,正好赶上了这个时代需要动手能力强的学生,而不是像以前一样的靠关系才去了工商银行,所以当时我是由老师推荐过去的,说我动手能力比较强一点。这份工作对我来说是有点来之不易的,因为还分房,所以整整做了两年。
所以离开银行的决定是很难的,做完了以后,你才会觉得自己牛逼,如果简单的东西就不会觉得自己牛逼了。那时候出去的时候,同学,同事,父母,家人,全部反对,差点还跟我父亲断绝父子关系。当时我的处长说:“你的辞职信可以这么写,但是请你在后面加一句话,经劝说无效申请辞职类,那分给你的房子也就收回了?” 我说行,那就收回。然后有人问我为什么?我说一套房子换不了我的人生,你永远看不到第三次工业革命。
我每天都在看微软怎么样了,甲骨文又怎么样了,雅虎又怎么样了,IBM 又怎么样了,惠普又怎么样了,看到这些,我总觉得自己选对了一个专业,呆在一个正确的时间,但是却呆在了一个错误的地方,所以就决定离开了。但是我跟大家说,我出去是为了一个更好的经历,因为整个世界有这样的变化,所以要出去。
3-出去了以后,牛逼过去就是个傻逼,为什么?
因为出去的时候马上遇到的是互联网泡沫。互联网泡沫当时一下就倒闭了好多公司,所有公司全部冻结。本来还想信誓旦旦的出去就有不一样的天地,结果一出去马上就傻逼了。这个事情,有同学可能不知道互联网泡沫,当年的 Dotcom,只要你申请一个 Dotcom 域名,放一个网站里,你就可以融钱了。区块链泡沫也是差不多。所以那时候也是说,用互联网就可以颠覆世界。一会儿我再跟大家说颠覆世界的事,这是下半场的事。
出去后,我就找不到工作,找不到工作就只能去做外包,那时候银行需要外包,外包公司又缺人,所以我就进入了一个系统集成商。系统集成商把我外包进了一个银行,在银行里面做封闭开发,从早上九点到晚上十点,礼拜一到礼拜六,今天所谓的九九六。2001 年到 2002 年,就这么干了一年。
反正,自己觉得自己挺牛的,出去以后,就马上傻逼掉了,发现这个差距还是挺大的。后来我从昆明到了上海,发现这个一线城市与昆明差距巨大无比,就是过高的预估了自己的能力。去面试的时候啥也不懂,面试问我 C 语言几个问题:C 语言的宏定义是啥?C 语言的对内存和栈内存是什么意思?这两个问题我都答不出来。又问我第三个问题,你要是有不知道的,你怎么办?我也答不出来,因为不知道的我也不知道怎么办。人家就说你不会问人啊?你不会看书啊?你不会上网查啊?我说谢谢指导,我当时就那么傻逼,真的,面试的时候就是那么傻,今天还敢在这做直播。那时候,连正眼都不敢看那个面试官。
后面还有更傻的事,我在上海呆了一段时间以后,我就记得有个人就跟我说,让我一定要去外企。我本来也要去外国公司。那个时候国内还没有像 BAT 这样的公司,所以那时候还是想去国外的公司。然后面试的时候,一说英文就傻了,就说了两分钟,对面那个老外跟我说算了,我们还是找个会说普通话的来跟你说吧,然后就让他同事和我聊,所以很尴尬。但是还是被招进去了,招进去就写代码,试用期写了三个月的代码。
4-从上海到北京
再后来,我就从上海来北京了,是 2002 年的冬天,我还记得是 12 月 2 号我到北京,试用期三个月,三个月差点就被辞退了,因为代码写的巨乱无比。写 C 语言,不是写业务代码,是写那种分布式计算的代码。然后公司说你这个不行啊。这个写代码不行怎么办呢?要不你去做测试去吧?我就去做测试去了。测试的时候,有 KPI,每天至少要找到三个 Bug。
我懂代码,我会写代码,我看得懂代码。一般做测试的都是做黑盒测试,我可以做白盒测试。到最后,我就开始看着那个代码来做测试。比如说,它这个数组是 15 位的,它分配了 15 位,我就给它弄个 16 位的,让它溢出,就这么来搞,一下子找好多,找完以后,我还解 bug,给一些建议,然后一下子那些开发人员,就是国外那些开发人员发现,这人找的 Bug 跟一般测试人员找的 Bug 完全不一样,这人完全是做开发的料,怎么来做测试了?然后,搞的中国区经理里外不是人,到底你们想要怎么办?这人写代码不行,做测试你们也觉得他又像做开发的。
就这样,如果你做过一些测试,玩儿这些事情,你大概会了解,你从一个不同的角度看不同的软件的质量,会让你有更多的感触,大概是三个月的样子,我又被调回来,调回来就不做开发了,做什么呢?让我做维护。维护什么?Bug Fix。我要修复线上的那些问题,大概是这个样子。
后来让我做三线开发。一线是接电话的,二线是做调查的,三线是解决技术问题。解决技术问题过程当中用户会抱怨,用户就说你们这个一线的太慢了,我一个问题报告给你们公司,一直要等一到两个月我才能拿到这个问题的一个解。这个事公司一调查,发现是一线技术支持不好,那时候公司就说谁愿意去一线做技术支持?我说我去,因为想学英语,我就去做一线接电话。我一开始接不了电话,一开始就是处理邮件。我在亚洲这地方,主要一个跟日本,一个就是跟亚洲区,还有欧洲那边有一个上班的,跟欧洲那边德国、巴黎。那个时候学英语这个比较好一点,我觉得我英语够烂了,日本人比我更烂,德国人,巴黎都不咋的,跟着一堆母语都不是英语的人说英语,觉得这个自信心还是很强的,我也不发怵。尤其是跟那个德国人,德国人说英文是一个单词一个单词的说,这事让我觉得很慢,但是他力图把这个单词说清楚,我觉得他说这么慢,我也跟他说的慢,他慢我也慢,本来正常话速聊个五分钟就能聊完,我们可能要聊 15 分钟。但是没事,这是一个让我觉得练英语口语就是一定要说慢,不要图快,一定要慢,把每个英语单词音发准。
我那个时候对我帮助最大的不单单是英文,帮助最大的就是跟用户打交道,了解到用户的一些诉求,用户来问你一个问题,你不能直接告诉他这个问题的原因是什么,这没用。你要告诉他怎么解,你要告诉他一个解决方案,一个 Solution,在技术支持我学到了一些。因为我在一线解决技术问题动作很快,用户好评不断,后来不做了,用户还找我。
这是我人生当中觉得,做开发从来没有得到这种荣誉,这么高赞扬的荣誉。为什么?因为你总是出 Bug 的,一出 Bug,你就一定会被人批的。好像是做开发总是被人骂,做技术支持不一样,当你为用户解决完问题,用户会表扬你的,用户表扬你,有时候用户一高兴,他还会到 CEO 面前表扬你,老露脸了,这是做一线支持事。我做过开发,做过测试,做过一线的技术支持,经历还是比较丰富的。
以上是关于左耳朵耗子:软件开发这些年,我学会的道理和教训的主要内容,如果未能解决你的问题,请参考以下文章