漫画:程序员每天的6场战斗
Mart Virkus@toggl.com
读完需要
5分钟速读仅需 2 分钟
作者丨Will Oremus译者丨大白
策划丨中生代技术社区
程序员的生活很难!
我并不是说其他工作很容易。但程序员以写代码谋生需要扎实的努力和持续的专注力。程序员与市场,设计,经理,内容创建者以及许多其他人员一起工作。但是,我们古怪的(有益的)生活方式常常被误解。
下面是程序员希望同事们了解我们的工作:
尽管其他人可能无法“了解”我们的工作,但我们喜欢它!
我们深入参与我们的工作 – 正常的工作流程并不总是适用。
有时,我们会尝试用一些新技术修复,这些修复可能效果很好或效果很差。
某些令人沮丧的 Bug 修改可能需要花费数天的时间进行研究,而解决起来可能只需要数秒钟。
为了最终取得胜利,所有的努力是值得!
我们一直致力于支持同事和客户的工作生活 - 让我们知道我们将如何提供帮助!
在这篇博客文章中,我描述了程序员在工作流中各个点所经历的许多心情。如果您是程序员,那么您可能对这些方面很熟悉。如果您与程序员一起工作,请花点时间微笑并更好地了解我们的世界。
我们是一个不同的物种,但我们有一个共同的目标 – 为我们的客户和同事提供应有的支持和创新!
1
兴奋
就像西部的牛仔一样,您的“触发”手指开始发痒。等待着无穷无尽的可能性会给您带来健康的嗡嗡声 – 您会受到一个神奇想法的启发。
面对现实吧 – 您知道您将放弃所有计划,并投入每一点滴精力在该项目。您将整日整夜不眠。
迟早,您都会抓紧一切,放下所有东西,然后开始将这个令人兴奋的新想法变成现实,一次一行代码。
在大多数情况下,这种动力是一件好事。它像油箱内的一滴硝基一样起着催化作用。您会专注并以闪电般的速度完成任务。
但有时您会对低优先级事项感到兴奋和激动,您很难满足于解决这个问题的好奇心。
2
场域
在《社交网络》中,贾斯汀·汀布莱克(Justin Timberlake)饰演的的角色试图跟一群黑客招呼。饰演扎克伯格的角色说:“不要打扰他们,他们正在场域里。”
有时,您的球滚动得如此之快,以至于其他所有事物都成为地平线。您推迟了数小时的午休时间。您的眼球开始变累,因为您无法停下来,甚至无法留出一分钟去洗手间。
您不断的编码编码再编码,每次执行代码和解决每个 Bug 时,您都将感受到解决方案在等待您 - 指日可待。
“如果我能解决此 Bug,我可以提交代码并休息一下。”
听起来有点熟?您脑海中的声音会让您继续吗?要修复……又一个Bug……Bug?
此阶段可以持续一整天。下班后,您感到饥饿和疲倦,但您很开心。因为您杀死了又一个“bug 巨兽”或到达了又一座“功能山”的顶峰。
3
重构
您随时会有顿悟。
当您发现一种新技术或做某事的更好方法时会感到渴望和兴奋。您知道这正是使代码更快,更清洁和更优化所需要的。您会感到抽筋,难以进行挖掘。
但是,此阶段通常不会顺利结束。
您伟大的想法不一定是错的。但是,认为这只是一个很小的调整的想法就没有了。经过一周的重构,您将意识到以下两件事之一:
一口吃不成胖子。
要么
这个想法只是无法在当前的代码库中解决。
但是,这些解决方案有时会奏效。您的奇迹确实可以实现您想像的一切。这是个赌博游戏,即使重构失败,但在您梦想成真时的那种感觉是值得的。
4
定制
构建定制的软件通常不是一个好主意。因为对主库的更新几乎肯定会破坏它。
但是,诱惑总是存在的。即使您决定不在软件中包含自定义元素,您最终也会违反该规则
只是因为没在主库里构建很酷的部分。我的错是您的产品没有弹出火球的弹出窗口吗?如果您的设计师将此功能卖给了产品负责人,那么您就必须把功能实现 - 故事结束!
5
驼峰
卡在某个开发环节上的时间(和天数)太多让人很不愉快。。不停地拖拉……直到你找到那枚魔术子弹。
您可能正在开发新的组件,或准备消除一个特别讨厌的 Bug。
不管是什么,您现在没法法直接上手。您只能搜索 Internet,阅读相关文档,并查找有关如何进行下一步开发的任何提示。
一天工作结束后,只有苦劳没有功劳。您可能花了整天的时间破解代码并尝试了几种不同的版本,但都无济于事。最后,您的提交代码次数约为零。您没有比早上上班时有更多可用代码行。
但当您最终顿悟时,会感到难以置信。您找到一个简单直接的解决方案。
为什么最开始没有想到这种方案 - 而不是浪费大量时间破解代码来查找它。
经过两个工作日才发现,其实一小段代码即可解决所有问题。
6
编程不易-客户第一
在 Toggl,我们的程序员有个口号:
“它能有多难?!”
当某些事情看起来很简单时,可能很难执行。例如,我们最近处理了 Cocoa 中的限制。我们需要做的就是在运行时更改某些元素的限制。这似乎很容易:如果单击此处,则可以更改限制。
但是,我们不知道 Cocoa 文档对于限制这块儿很模糊。我们在互联网上发现了一段宝贵的例子。经过反复试验,我们最终使它运行起来。但这个看似“简单”的任务比乍看起来要困难得多。
7
软件开发的超现实世界
每天,我们的程序员都要与这些(以及其他)场景进行战斗。其中一些功能比其他的更难,但是每一个功能都是创建客户喜欢的产品的必要组成部分!
参考信息:https://toggl.com/blog/life-of-a-programmer
技术人素质三连,「在看、评论加转发」