如何成为一个优秀的软件开发人员
在这个快节奏的发展世界中,软件工程师被期望快速完成工作。
让我们坦率地说吧。这些天来有很多竞争。我们必须使自己脱颖而出。做到这一点的一个方法是生产高质量的工作。
始终如一地生产优质工作的一个方法是创建一个生产力系统,包括对你的任务进行优先排序和消除干扰,这样你就可以专注于你正在做的那件事,并把它做好。
然后,重复。
我想再次重申高质量。你因编写的代码行数而得到奖励的日子已经过去了。你能相信那是一件事吗?你必须做这件事,并且把它做好。
慢下来,你就会被甩在后面。
我怎么强调都不为过的是,你必须建立一个完成工作的系统。作为工程师,我们很幸运,在工作中拥有自主权,但有时这让我们很分散。每天早上可能很难知道从哪里开始。
当我们开始一天的工作时,有太多的分心和不同的方向可以去做。你可能已经在一天结束时追逐每一封电子邮件、信息、思想和想法 — 但实际上没有完成任何事情。
这里有一些硬性策略,可以提高你作为开发者的生产力。以此为准则,并建立一个适合你的系统。
用能使你充满活力的东西开始你的早晨。
走路,喝一大杯水,举重,做瑜伽,冥想,捶胸,任何适合你的方法。当我不拿起我的手机,跳上电子邮件,或在社交媒体上开始滚动时,我的工作效率会更高。这是一个让我陷入持续一整天的坏情绪的好方法。我知道这句话以前已经说过了,但你如何开始你的一天,为一天定下了基调。
只参加必要的会议。拒绝任何不需要的会议。
我授权我们团队中的工程师说不。
那个会议可以是一个电子邮件或信息吗?我真的有时间去做另一个项目吗?
即使是作为经理,我也会把下午的时间留给编码,并把会议强行安排在早上,以便把话说开,这样我就可以去做有趣的事情了。在这个国家,有一种会议文化的病毒,需要被阻止。
作为工程师,我们需要大量不受干扰的时间来获得我们项目的动力。虽然合作是必要的,但我不想整天与人交谈。我想做我最擅长的事情,那就是建造东西。
找到一个适合你的待办事项清单工具。
这可能是纸笔,但我建议使用一种工具,你可以用它来快速添加和记录需要完成的事情。然后,不断地修改它。我使用Todoist。
我把我正在做的主要项目高亮显示为收藏夹,在每个列表中,任务都以优先级突出显示。每天开始的时候,我都会浏览我的清单,并标明今天需要完成的事情。
我还会选择一些我想在当天做的事情 — 与朋友共进晚餐、去骑自行车、看电影或烤东西 — 我对自己的工作效率进行奖励。
计划你的一天。
我将Todoist与PomoDone同步,并按今天过滤。然后我开始计时。我以50分钟为一个工作区间,休息10分钟,然后在4小时后再休息一下。你必须决定什么时间间隔对你最有效。
推荐的25分钟对我来说永远不够长,无法进入编码的流程,但它可能对你有用。你可以阅读十亿篇关于使用波莫多罗方法来完成工作的文章,因为它很有效。
而且它还有两个超越生产力的好处。它迫使你在生活中获得更多的运动,而且有研究证明,经常休息可以巩固你刚刚学到的东西。你可以说它使你更健康、更聪明,同时帮助你实现你的目标。
关闭你的信息应用,将你的手机静音。
现在,我们都知道他们对分心的说法。只要我停止消费,开始创作,我的生产力就会直线上升。切断电源。
选择适合你心情的第一个任务。
这个想法是要开始做一些事情。
人们总是谈论 “吞下青蛙”。这意味着他们首先解决一天中最难的任务。这种方法确实能给你带来巨大的成就感,并为一天中的其他工作提供动力。
然而,有些时候,我并不觉得自己像吞下一只怪异的青蛙。也许我没有睡好或者不在状态,但我仍然需要完成工作。在这些日子里,我挑选了一个 “低悬的果实 “任务,我可以检查一下,希望能进入一个流程。
一次只做一件事,并做好它。
把这看作是对你的时间的单一责任原则。把你所有的注意力放在创造你正在做的任何事情的最佳版本上。
我说的不是追求完美;那可能会适得其反,而是花力气把它做对。
如果你在写代码,不要停留在 “它能用 “上。重新评估、重构,并从不同的角度来看待它。它是可读的、可重用的、可扩展的吗?如果是电子邮件,它是否可以更清晰或更简洁?我是否可以将项目加粗,使其更容易被浏览?
以每项任务为荣,迷失自我,你就会持续不断地产生出色的工作。这将帮助你在平庸的海洋中脱颖而出。
使用工具来组织你的屏幕以提高生产力。
当从事需要多个窗口的工作时,你应该有多个或大型显示器来工作。我使用一个弧形的戴尔显示器。
如果你买不起,可以让你的雇主买,如果你是自雇人士或刚开始工作,你可以买多个便宜的显示器。关键是有了不动产不必不断切换窗口。
此外,为了帮助快速组织屏幕上的窗口,可以尝试一个允许你使用键盘快捷键来组织窗口的应用程序。我使用Magnet for Mac。
当我开始做一项工作时,我会打开所有我需要的窗口。然后,在几秒钟内,我使用键盘快捷键,让它们整齐地排列在我的屏幕上。
当你需要专注于一件事时,使用一个小显示器来完成简单的任务。
另外,在写作或从事需要极度集中的任务时,我在笔记本电脑上工作,然后坐在外面,去咖啡店,或在办公室里找一个安静的角落。这样,我就不会分心去看太多的窗口了。
有一个强制休息时间。
我在纽约的一家公司工作,但住在科罗拉多州,所以我的关机时间是下午3点(东部时间下午5点)。我的手机上有一个闹钟,会在这个时间响起。除非我在做有硬性期限的工作,否则其余的都是明天的问题。我完成我正在做的事情,然后花几分钟时间重新安排工作的优先次序,并在Todoist中添加每个项目的下一个步骤。
然后我关闭我的笔记本电脑,走开。
这可以确保我不至于精疲力竭,并为下一个工作天保持新鲜感。你不需要通过加班来获得进步,如果你在一家提倡加班文化的公司工作,现在就出去吧。工作要更聪明,而不是更长。
结论
软件工程的世界正在飞速发展。这可能会让人感到不知所措,尤其是最近无处不在的人工智能的采用。
如果你没有一个系统来完成你的工作,并不断地重新评估首要任务,你就会落后于其他工程师。你会感到沮丧,这可能导致你的工作效率越来越低。有了一个健全的生产力系统,你可以使自己脱颖而出。
我希望我的一些技巧能够帮助你形成你自己的开发者生产力系统。作为一个开发者,你有什么技巧来完成事情?