我觉得这篇文章也写的蛮有意思,所以搬运翻译,如若侵权请告知
原文链接:My Everyday Struggles as a Senior Developer | Better Programming
高级开发者的每一天也并不都是鲜花与阳光
我目前在世界上最大的软件公司之一工作了十多年了。我已经经历过职业的多个阶段,看到了业务的许多方面,从初级开发人员到收购竞争对手和初创公司的影响力。
1. 会议
我认识的大多数开发人员都喜欢他们自己的工作。他们喜欢开发,喜欢编写代码,喜欢创建软件,喜欢和世界分享自己所维护的开源项目。
这意味着他们通常需要专注于他们正在做的事情,而这大概也是降噪耳机和 AirPods 在日常生活中流行的原因之一。
而会议通常是专注的敌人。我已经记不清有多少次被我的日程安排告知我必须在 15 分布在以后参加一个会议,而我正在集中注意力试图解决我不久前遇到的一个难以理解的概念。但是,我知道要开会了。当我尝试在周一检查我的日程表,来确定我本周究竟有多少时间可以花在写代码的这件事的时候,毫无疑问的,我会发现我的日子都被会议安排的明明白白。
你在一个项目工作的时间越长,随着时间的推移,你和你的同事会慢慢的熟悉然后做的更好,你获得的知识就越多,有价值的知识,或者有些人可能称之为经验。
然而你猜怎么着?很多信息主要都是在会议期间传递的。这本身是一件好事,不要误会我的意思。
大梅沙,当我集中精神在尽力的写好我的代码的时候(至少我做梦的时候我是这样的),我最不想看到的就是我屏幕上的小弹窗,告诉我,该走了。
会议又开始了。
2.巨大的机器
能够在一家大型企业公司工作。我为此非常感激。
但是或许也是因为这个,让我把这个话题可能讲述的会有点极端。但是我们每一个人,在职业生涯中,以这样或那样的方式,都是一个巨大机器的一部分。我们公司的主要目标并不是写出很酷的代码。
“但是你们晚上都不需要良好的休息吗?”我有时会在某个会议中小声的说,
然而目标比这重要多了。我们需要提高产品和服务,让我们的客户们满意。最后,赚点钱维持生计。
然后有时候,开发者也会与其产生冲突。很多时候,我知道,或者至少我认为我知道,解决方案 B 在性能,用户体验,代码质量都比计划 A 更好。但是上级领导或者客户却选择不那么做。而其理由有时让我感到困惑。
而你总得越过他。但是你无法改变结果,尽管你在无数次的会议中试图说服他们。你将会被简单的告知结果,通过一个内部消息,或者一个电话会议。但有的时候人们会听取你的论点,这很好,因为这会让你觉得你被重视,让你觉得你是巨大机器的一部分。
世间安得双全法,一方面想进去大型企业工作,一方面有时候又觉得他的规则不尽人意。
3. 代码质量和交付时间
如果你已经看到了文章的这个地方,你或许会注意到我很关注代码质量的我呢提。从字面上来说,好的代码于我象是我的面包和黄油。或许我们应该讨论关于如何编写完美的代码(当然我知道,实际上并不存在完美),但是至少我们应该把做的更好,作为我们前进的目标。
但是,当你全身心灌注与如何编写更好的代码的时候,听听谁又来敲门啦?比如出现在你屏幕上面的消息通知。
交付时间,最后期限。
所以不难理解,代码质量和交付时间通常都是死敌。
但是通常必须说明的是,尽管代码没有达到我们想要的质量,最后期限可能还会被提前。这经常发生,并且有的时候,可能代码未必达到你的团队在日常工作时候所追求的质量,他依然会被提交发布。
因为上层更希望可以尽早看到结果。
4. 代码审查
老实说我个人认为,这是每个开发部门的一个关键部分:代码审查。
但公平地说,看那些在概念上与我脑海中乌托邦式的想法有很大偏差的代码和解决方案,我确实学到了很多。希望其他人也能从我的代码涂鸦中学习到一些东西。
作为一名高级开发工程师,他人经常会向你寻求意见。当然,通常是在做代码审查的时候,当然也可能是在咖啡机旁边,或者会议中,或者在会议的咖啡机旁边搞事的时候(对不起,皮一下)
很多时候,这都让我感到荣幸,因为这意味着你的想法和意见得到了尊重和重视,为此我十分感谢,真的。
但是如果是在我私人时间的时候呢?或者个人工作时间呢?其实我并不喜欢看那么么多他人的作品,除非我想学习的时候,或者因为好奇心。
但通常没得选择,因为资历越深,你就越多的要关注并参与他人的工作。
无论你喜欢与否。
5.同事
现在这个对我们所有人都很重要,无论处于什么职位。除非你家里有矿,否则你在工作中总有面对你的同事。
他们中的一些人很了不起。甚至有的人可能变成最好的朋友。但是,事物都是多面性的,有让人欣赏的人,也有这样的人的对立面。这很正常,我们总会喜欢一些人,然后不喜欢另一些人。
那些我们不喜欢的,或者“不怎么联系的”(我的同事可能有一天会看到我的文章,并且他们很聪明,可以知道我是在说他们,所以让我们放缓一点)也可能会写出非常漂亮的好代码。而我的一些好朋友或许也并不是最好的开发者。
但是身处社会,总得学会与人打交道,这是不可避免地。
并且,正如我们在讨论代码审查的那部分里面所说的,与他人打交道会成为你日常工作的一部分,并且你的经验会越来越多。
或许外向的人会因此欢呼。
但我不是外向的人。
最后
在许多的同事中,我有一位同事,他叫 Larry。
他经常独自坐在一个角落里,日复一日。他非常聪明,比我聪明多了。他不只是看起来是一个人。他选择的就是一个人。
这是他与世界的对抗。Larry 对抗 The Big Machine。
他时不时的在会议上出现(当然,通常都一言不发),但是大部分的时间里,他都在看着他的屏幕,狠狠的敲击键盘,制造商会哭的那种。当他的上级问他在做什么时,他平静的,不慌不忙的回应道:“你知道我在做什么”。目光并没有从他的编辑器上面离开。
上级并不经常问他在做什么。
他经常提出令人难以置信的解决方案和算法。一个又一个精彩的解决方案。
有时,我也想变成他。在这世界中,只有我和我的笔记本。
感谢阅读!
Gerard