您是否应该因重大且昂贵的错误而开除开发人员?我认为不是,但是管理层要血





英格兰的每个人都痴迷于足球。很多业余球队和大量体育场。通过一些熟人,一个英国人走近找了我一个想法和一些钱的人-他要求我提出一个应用程序,使人们可以管理自己的业余足球队。将人们放在球场上,进行换人,寻找球员,预定体育场和聊天。



那时,我的生活经历了一个奇怪的时期-我完全不知道自己如何生存。白天上大学,晚上在后台工作直到早上,以及介于android开发课程之间的某个地方。而且,我有足够的精力和热情去那儿表演,而不是去发火。



所以我同意工作。而这只是我从事后端开发工作之后的一个出路。



在我学校的数学教室里,有一个标有铭文的标语立即引起我的兴趣。然后我不止一次地相信这些话的正确性:



该程序不会执行您想要的操作,但是会写什么



当我进入大学时,在与老师的会议上,我说,他们说,我想成为一名程序员。我向你保证-你会的。没错,他们补充说,要成为一名程序员,您必须学习一生。用我自己的方式以某种方式解释了这一点,我并没有花一辈子的时间进行训练,而是全力以赴:大学夫妇,晚上的课程,晚上的自由职业者。



寻找一份兼职工作使我进入了一个有趣的项目:从正面开发语音识别引擎。我们与团队一道为获得认可率而奋斗:我真的希望将赛车的抽水率提高到100%!



这是完美主义者的真正痛苦。我想出了自己的解决方案,采用了其他人的开源引擎,将它们分解成齿轮,然后重新组装。我自定义代码,晚上不睡觉,成对啄。我在终点线解开了几公里的代码。



什么都没有。直到几年后,我才发现这是无法实现的。我得到的消息是,Facebook的神经网络识别面部的概率不超过95%。我对Facebook表示同情:即使是这样的大公司也未能达到100家。此外,文章中还附有出色的后记,一个人认出面孔的概率为93%。认真吗



所以我第一次对开发感到有些失望



我尝试了前端,但是我对它们的了解都落在``他们制作网站''的刻板印象中。即使那样也听起来很无聊。我想要一些更有趣的东西。为了寻找新的地区,我搬到了斯科尔科沃。



斯科尔科沃治安法官获得了很好的奖学金。但是,如果您想在莫斯科大规模居住,请多加钉子。我遇到了一家来自金融部门的公司的空缺。有必要用python写回,有时在晚上值班。



在面试中,我被多线程,一张纸上的加号(完全很难手动编写代码)所彻底驱使。他们询问了有关python的一些基本知识,最后他们接受了它。



在这家公司之前,我只在小团队中工作。在语音识别的情况下,我们工作了五个,但在这里苹果无处可逃。他们都比我了解更多。当我的工作得到反馈时,我遭到了问题的轰炸,并大为高兴。前三周,我掌握了这项技术。每次代码审查都以“错误”答案结尾。我重做了所有事情,但是并没有得到任何改善。我的代码必须至少由4个人批准。有时,三个人说“规范”,而第四个人仍然发现一些值得抱怨的地方。



他们还向我展示了一种有趣的审阅方式-我将代码赋予领导,在某些地方标了出来,但没有说明问题是什么,我必须自己弄清楚。您真的开始思考-这非常激动。



但是,即使是如此严格的质量控制也未能免于麻烦。



这项工作与数据库有关。该公司的服务器存储了大量的客户财务信息(银行卡,交易历史记录)。每隔5天,有一个晚上我不得不在工作上度过。我确保一切正常,回答了邮件和电话。我喜欢夜班。对于退出,他们甚至没有支付两倍的费用,而是支付了三倍的费用。我从晚上九点到早上六点一直在值班-3天后就得到了报酬。学生还需要什么?



除了钱,学生还需要充足的睡眠



在我们公司中,所有工作流程均完美无缺地构建。检查,测试,评论。再次检查,测试和审查。但是,即使是这样的系统也可能发生故障,因此您必须做好准备,像征兵士兵一样,将在早晨警惕起来。



有一天我下班回来。我刚摔下来。我去了大学-描绘了一个学生。晚上我昏死了,甚至还不到八点。我想永恒地睡觉。



但是在凌晨4点,负责整个公司支持的人把我叫醒了-他有史以来第一次给我打电话。



-昨天基地有什么事吗?

-不,没什么特别的。

-起床并紧急进入计算机。



我当然是一个早起的人,但是我仍然不知所措。我的手表在事故发生前夕。



当然,我首先想到的是



原来,整个用户群都被削减了。她不在商店里。但是她一直在这里,她跌倒在哪里?我开始寻找。查看了启动的日志。我开始抽这些日志(前半小时花在唤醒上,另外半小时用于预热日志并了解启动了哪些脚本)。我为自己下载了脚本,看了看它们在做什么,挖了其中的哪个爬进了这个特定的地方。我发现了一个错误。



在测试环境中启动它-测试用户发现了问题。嗯,看这东西是如何测试的。由于某种原因,这次,即使我们有三个拥护者,也错过了第一个和第二个,而第三个甚至没有倒下。没有人为此编写测试(我打勾要写,以免再次发生)。



与我同时,很多人坐在那里寻找问题,不断地打电话。最终,早上6点,我们意识到有人写了一个脚本,在测试中检查了它,但是没有考虑到一个重要的案例。结果,用户属于那些将被删除的用户。



因此,我们在一夜之间猛击了约一百万用户



我们还原了数据库,进行了备份。在我们知道这个问题之前,用户整个晚上都输入了越来越多的数据。我们写信给每个人介绍一个技术问题,关闭了入口,以便没有新的信息流。必须在7小时内冻结数据库,将其汇总为零,然后返回所有用户。对于那些尝试进入但未能进入的人,公司注销了单独的道歉,并收取奖金。



我们在上午7点之前解决了所有问题。该公司于8点解雇了酿造这一切的人。



那家伙工作得很好,他总是检查一切。有几次他甚至对我进行了评论,并提出了一些很酷的建议。但这就像开车。在方向盘行驶的第一年,您会害怕一切,在正确的车道上苦苦跋涉。然后您放松一下,这时您出了事故!



我会因为一个错误而解雇一个人吗? “该程序执行您编写的内容。”但是我们很发达,我们不断犯错误。想象一下那个家伙那天早上有多糟糕。以及为什么要建立一个现在将验证其代码中每个字符的人?但是管理层想要补血,在接下来的几周中,又有几名涉嫌此案。



我在那里工作了几周,但是我已经意识到我想离开后端。



在Skolkovo中,我注意到我对使用Android开发的项目非常感兴趣。我们开发了一个应用程序并将其链接到arduino。任务非常简单:您必须通过手机的蓝牙或wifi连接到arduino并发送命令。该应用程序有几个带有按钮的屏幕。按照设想,arduino与智能家居的布局相关联,这些按钮应该用于打开和关闭窗口。



有太多的理由一见钟情就爱上了Android



我真的很喜欢有一个用户界面。我喜欢做动画的能力(现在在Android开发中,我最喜欢这一点)。 Google的文档比我以前见过的要好得多。 Java已经超越了python和C ++。当我在游标上学习android的课程时,我意识到了一件事:



立即查看结果对我来说很重要。



这也使解释我在做什么变得更加容易。尝试告诉对方后端工作是什么。为什么需要这样做,依此类推。使用Android,您只需拿出手机说-我做了这个应用程序。



关于足球的案例-我得到了印第安人写的草稿。老实说,他们做得不好。他们没有复制代码到函数中,而是再次复制了700行。重构花了两个星期。



而且我无论如何都完成了,并且变得非常高。我意识到我想继续这样做,并开始寻找可以合作的公司。我经历了android学校的电子竞技团,做了测试,找到了工作-现在我要在这里进行Android开发。



我非常高兴,在凌晨四点,他们不会举起我来拯救燃烧的基地,然后他们也不会强迫我草拟执行清单。



All Articles