提高编码效率的简单诀窍

软件发行商中出现了一种奇怪的现象。 人们似乎倾向于忽视他们对优质产品的理解,或者至少在营销方面做到这一点。 它有点类似:“他们的产品有一百万行代码,但是我们的产品有200万行,因此我们的产品必须更好。”

没有人知道这种“更多更多”的想法来自哪里,当时每个人都在努力创造一种“少即是多”的理念。 可能它始于消费者级新闻,因为许多作家试图通过引用大数字来打动观众。 对于大多数情况来说,这种方法很有用 - 这个微型闪存驱动器可以容纳200 TB的数据,CPU每秒可以处理48十亿条指令 - 而且编写者并不总是精通技术,无法理解这同样适用于源代码。

但编码效率不仅仅是创建严密的算法。 它也是关于减少浪费。 这意味着浪费在你花费多少时间来解决问题,浪费在消耗太多计算机资源方面,甚至浪费你的团队在本周末在办公室周围堆积了多少披萨盒。 理想情况下,您希望减少所有这些事情。

因此,我们将在本文中介绍的是您可以采取的措施,以提高效率和提高生产力。

1。 营造有利的工作环境

每个编码人员都在独特的环境中工作,我们的读者群体非常多样化,因此实施这些建议比其他人更容易。

如果你是一名自由职业者,恭喜你,因为你已经掌握了自己的工作环境。 当然,当你去拜访一个客户并且必须在现场工作时,这种情况会发生变化,但如果能够取得成功,它仍然是一个很好的位置。

如果您是开发团队的经理,这些建议也可以帮助您的团队实现最高效率。 或者,如果您是开发团队的工作人员,您可能希望向您的经理建议其中一些想法,或者至少向他或她发送一个指向此页面的链接,并希望获得最佳效果。

考虑允许团队成员远程办公

编程部分是一种逻辑练习,但它更像是一种创造性的挑战。 最好的程序员可以同等地使用他们大脑的任何一方来完成任务。 科学长期以来一直承认,有创意的人会在晚上做最好的工作,而这正是我们所经历过的。 那么为什么大多数经理坚持传统的9到5例程?

实际上,我们已经知道了答案。 这部分是关于控制,部分是从业务角度(或至少是管理层)使事情变得更加方便。 但是,对日常和地点的坚持正在损害团队的效率和生产力。

你需要意识到的是,你的程序员可能整晚都在尝试最新游戏,或者他们可能参加派对,或者只是与家人交往。 这意味着当他们在星期一早上上班时,你不仅没有达到他们的最高生产力水平,而且他们已经耗费精力并且已经厌倦了。

让工人在工作时做出选择 - 理想情况也是在哪里 - 是提高生产力和士气的绝佳方法。 只要他们完成工作并获得优质的成绩,您就不应该关心他们何时,何地或如何实现这一目标。

例外情况是当你需要密切合作时,但实际上大多数编码员在以自己的方式做事情时会做得更好,而且很少需要密切合作。 进入办公室的选择应该仍然存在,但除非你正在进行绝密的军事项目,否则没有理由说明为什么要这样做。

作为一名自由职业者,您还可以看到这里的关键点是,如果您在晚上完成大部分实际编码工作,您可能会完成更多工作。 深夜分散注意力较少,它更安静,你会觉得更有创意。

避免音乐

我们都看到了那些疯狂的电影刻板印象,其中一些超级低俗的überhacker佩戴耳机和卡纸以及死亡金属,同时毫不费力地制作屏幕代码甚至没有停止呼吸。 我们所有真正在现实世界中编码的人都知道图像是多么荒谬。

但如果你在工作时听音乐,请小心。 很容易发现自己在考虑音乐而不是工作,而某些类型的音乐可能会产生催眠效果。 当你去健身房锻炼身体时,正确的音乐可能会激励你推出额外的几个代表。 但是,没有人设法创造音乐,激发你找到缺少分号的行,或者在使用for循环或while循环之间做出正确的选择。 我们最接近的是电动梦想。

尽量保持整洁

杂乱可能是奇怪的安慰,但它也可以减慢你的速度。 你可以很容易地失去20分钟,寻找在混乱中丢失的东西,然后忘记你为什么想要它。

因此,由于它造成的所有不便,为什么我们 - 至少我们中的一些人 - 如此沉迷于混乱? 组织专家和作家Julie Morgenstern声称,这是因为这些东西将我们与过去联系起来,并在定义我们的身份方面发挥作用。 纽约市教师和舞台导演马库斯·盖杜尔德(Marcus Geduld)表示,这是因为杂乱比“无菌”环境更可取,并将混乱的混乱比作对自由和创造力的肯定。

然而,毫无疑问,减少混乱将帮助您避免分心和混乱。 因此,这是一个值得实现的目标。 无论如何,保持一些神圣的物体,让你感觉更好,压力更小,但不要过度。 对于大多数人来说,整理是最困难的事情之一,而且不仅仅是我们的物理桌面需要整理,而且通常也是我们的计算机桌面。 如果你真的很挣扎,你可以尝试使用极简主义的DTE,比如Fluxbox,它实际上不会让你有任何混乱。

但是在所有这些整理过程中,不要过火。 有很多好的科学表明,环境中的一些混乱实际上可能有助于创造力。 最常被引用的研究之一是由Vohs,Redden和Rahinel为明尼苏达大学命名的心理科学杂志 身体秩序产生健康的选择,慷慨和传统,而紊乱产生创造力。 也许纸质记者坚持的原因可能是它清楚地得出结论:“......无序房间的参与者比有序房间的参与者更具创造性。”

不太受欢迎的是不同意见,例如 环境紊乱导致自我监管失败 (Chaye&Zhu,2014),发表在“消费者研究杂志”上。 这项研究发现,在无序环境中工作的人的执行任务能力受损。

那么这会让你离开? 你应该在混乱或不育中工作吗? 答案似乎是找到一个平衡,它只是混乱到足以让你受到启发,但不是太多,你会分心或找不到东西。

在你身后留出一些空间来踱步你的想法

当你在商议时,有足够的空间去游荡是个好主意。 历史上许多最优秀的海军上将和将军都因为他们在策划战斗策略时花费了大量时间而着名。

不仅战斗男人遵循这种做法。 许多佛教僧侣也提倡“行走冥想”,并相信它有助于提高心灵的清晰度。 每当你有一个特别棘手的编程问题需要解决时,你可能会发现在甲板周围冥想一下,伸展双腿会有所帮助。 显然,在这里,缺乏混乱将帮助你做到这一点,而不会在医院结束。

作为老板,采取谨慎态度批评创造性的努力

建设性批评没有错,但你需要选择正确的时机并以正确的方式处理它,否则你的员工将来的工作效率会降低,这可能会适得其反。 你可能实际上让他们害怕冒险,而不是激励他们并提供洞察力,这是一种消除创造力的好方法。 Marieke Roskes,in 有助于或阻碍创造性绩效的制约因素:一种激励方法,提供了如何处理创意工作者的动机的框架,特别是如何避免无意中失去动力(创意与创新管理,Vol 24,Iss 2,2015)。

2。 建立一个良好的SOP

在业务管理和编程过程中有很多吸引人的趋势,理论上听起来比实际上更合理。 特定方法是否适合您取决于您​​的目标,以及您个人认为成功的结果。

我工作过的公司尝试过的方法的一个例子 - 就像快速删除一样 - 是结对编程(不要与PEAR编程混淆)。 虽然有些人真的很欣赏这种工作方法,并赞扬其在敏捷开发范式中的地位,但我们发现它非常低效。 首先,它需要为每个工作站配备两个程序员,因此您支付的费用是实际开发工作量的两倍。 我们还发现,由于频繁的停止/启动流程以及不必要的对话倾向,以这种方式工作要慢得多。

结对编程的优点在于它确实产生了更自然的文档和更严格的文档。 它还允许更容易发现错误,并提出有关收紧算法的建议。 然而,与此同时,同样的优势也产生了问题,因为有时调整和调整并非真正必要。

这种方法的另一个风险是你可以获得Roskes所确定的效果,程序员可能会犹豫不决,因为他们不想被纠正。 在一个开发人员非常迂腐和传统的情况下,你可能会发现个性冲突,但另一个更具创造性和自发性。

程序员经常说他们更喜欢结对编程。 这可能是因为他们喜欢它所提供的社交互动,但这对生产效率没有任何贡献,除非作为士气助推器。

因此,您需要建立的是实际上适合您的开发人员,什么不适合。 对于那些不起作用的东西,最好丢弃它们,即使它们是一个热门的趋势练习。 无论是什么帮助团队快速取得进步都是一件好事。 但如果他们用一种不适合自己风格的方法来衡量,最终会导致问题。

3。 鼓励详细的文档

虽然冗长可能会增加效率低下,但是在评论中提供更多细节和精确度所花费的时间很少,这可以在项目滚动或进行修订时节省很多麻烦。

4。 劝阻不必要的文件

编写良好的代码通常是自我记录的。 如果一个函数从你给它的名称(它应该几乎总是如此)中做什么是非常明显的,那么添加更多描述是多余的。 变量命名和返回值也是如此。 从名称中应该清楚它们的作用,在那些不可能这样做的情况下,你应该在评论中包含它们的描述。

5。 白色空间是你的朋友

在代码中适当地使用空格对于帮助使代码更易于阅读,查看和理解非常有用。 它与良好的文档编写和编写自我记录代码密切相关。 任何有经验的程序员 - 甚至可能是非程序员 - 都应该可以获取源代码的副本,并立即了解每个函数的用途及其工作原理。 理想情况下,有人应该能够学习编程,而不仅仅是学习编写良好的代码。

6。 更喜欢简单而不复杂

您制作代码越复杂,解开代码就越困难。 具有讽刺意味的是,这适用于编程快捷方式,例如使用速记条件而不是完全写出来。 它节省了写作的时间,但是一个经验不足的程序员以后审查您的代码可能无法理解您的意图。

7。 彻底测试

应逐步且经常地测试代码。 在部署任何内容之前,您应该尽可能多地进行内部测试,即使您的第一个版本将被指定为Alpha。

8。 使用版本控制

你不得不疯狂不要在一个主要项目上使用版本控制。 没有它,你就不会受到自己的小错误的保护,而且另一个团队成员通过用不喜欢你的东西覆盖它来意外(或故意)破坏你的代码也很容易。

通过考虑这八个关键建议,您将能够制定自己的策略,为您和您合作的任何团队成员提取最高效率。 你不一定要全部应用它们,当然有些甚至可能对你不实用,但它们的任何组合都可能导致你以更少的麻烦完成你的工作。 随着时间的推移,更高效的工作流程将为自己付出代价,即使它只是在减轻压力方面并为您提供更多时间。 这是一个值得努力的目标。

波格丹兰萨

Bogdan是Inspired Mag的创始成员,在此期间积累了近6年的经验。 在业余时间,他喜欢学习古典音乐和探索视觉艺术。 他也非常着迷于修复工具。 他已拥有5。