查看原文
其他

助力程序员成功的14个好习惯 你有几个?


算法数学之美

日期:2018年1月5日

正文共:2262字5图

预计阅读时间:6分钟    

来源:算法数学之美



成功的职业生涯通常是指规定时间内,发布高质量且被认可的工作。这对于IT开发人员也没什么不同。成功的开发人员能在预估范围内编写出高质量的代码,并通过发布伟大的产品让利益相关者满意。

那么开发人员如何才能做到这一点呢?有些人认为开发人员是魔术师,按几个按钮就能让计算机变魔法。现实情况则要复杂得多:我们得遵循一定的原则来编写可靠的代码,测试我们的工作,并不断更新到最新的技术。


1、编写可读性强的代码


作为开发者,可能会经常听到“代码首先是写给人看的”、“写可读的代码相当重要”等等。 当阅读代码时,开发者实际上是充当代码解释器的角色(虽比不上计算机)—— 在他们的头脑中执行代码,并试图记住当前执行状态。 这就是程序员在阅读代码过程中被打搅脾气暴躁的原因。


2、推理不快乐路径


在编程世界中,所谓的“快乐路径”提出了一种高度乐观的情景。沿着快乐路径行进,没有出错的地方,也没有错误发生。

在编写和测试代码时,学会广泛地去推理不快乐路径的场景。作为开发者的你能够因为在推理不快乐路径方面一次成功而出名,那么你对细节的注重将为你赚到更多的酬劳。


3、证明你的抉择


为什么你要在这里使用工厂模式?为什么你选择那个特定的Javascript框架?如果你在回答这类问题时使用“因为这是正确方法”诸如此类的答案,那么就不会给你带来任何好处。

这个世界在很大程度上依赖于软件和软件开发者的传递性。我们拥有经常使我们处于权威地位的专业知识,特别是在与非技术人员或不太有经验的利益相关者打交道的时候。因此,你会发现,你经常采取的是那种大家尝试的做法,“我说怎么做就怎么做”。


4、选择一款强大的编辑器


即使是经验最为丰富的程序员也需要良好编辑器的配合。他们喜欢用文本编辑器胜过IDE编辑器,因为这样可以学到更多东西。无论什么情况,尽量使用键盘快捷键。在选择编辑器时,认真考虑并挑选最好的(Emacs或Vim),因为它们是通用的。其次,挑选你的首选平台最支持的。


5、了解数据结构和算法



如果你不知道啥时候用快速排序、不懂辨认O(n2)程序、不会写递归函数,你的工作效率将会降低,尽可能去了解底层命令(plumbing),以便能够作出明智的决定(Web框架是怎么存储session状态的?Cookie到底是什么?)。


6、对项目要从一而终



尽管项目收尾阶段的工作确实强度极大且较为枯燥,但我仍然建议大家坚持到最后并始终抱以理想的工作热情,而且能够从一而终的程序员才是一位负责任、有担当的开发者。


7、整洁的代码胜过巧妙的代码


要想让其他人能够读懂你的代码,尽量使用最少的代码来完成任务。遵循DRY(Don’t repeat yourself)的原则,使用明确定义的对象和库,将任务分解成小而简单的代码段。


8、潜意识是强大的工具


离开10分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为10倍效率开发者的必要条件。

作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。


9、推动自身和团队进步


重视批评,以包容的态度接受批评并提升自己是非常重要的事情。没有这个基础,你不可能成为一个高效的开发者。一位智者曾经说过:“聪明的人善于从自己的错误中学习,而智慧的人善于从别人的错误中学习。”


10、使用在线社区和论坛


俗话说,共享的问题就是减半的问题。当你绞尽脑汁解决问题的时候,请注意不要浪费太多时间在孤军奋战上。很有可能你的问题,其他某个人已经经历过了,他的经验教训会对你产生极大的帮助。访问在线社区,例如Stackoverflow或TechNet寻求提示和技巧。


11、充分利用工具和实用程序


有大量的软件可用于帮助提升开发人员的构建速度。 除了Visual Studio——这款开发微软软件的必备工具现在已经是开箱即用的了——还有很多其他的工具和第三方插件可帮助开发人员做的更好。


12、通过注释来写逻辑


说到编码,我有坚持很多原则和想法。其中一个就是,代码中95%都是逻辑。另一个就是从人类语言到编程语言,逻辑并没有改变。

这也就是意味着,如果你能在代码中写出来,也就可以用英语或者其他语言写下来。


13、良好的时间管理


迟到对于任何一家公司都是个头痛的问题。作为一个程序员,有时候为了完成任务常常不得不熬夜,从而导致第二天上班就迟到了。但是我们忽略了这一点,我们的工作时间至关重要,因为在这段时间里我们要和客户同步,也要与团队其他成员一齐协作。


14、深入理解客户需求


仅仅了解单一用户的表面意思是远远不够的。一个伟大的程序员应该具备能把繁琐的要求理解并分解成项目的技术任务或子任务的能力,并且最后拿到的成果应精确满足客户的需求。


15、对职业的思考


擅长编程代表了职业生涯的其中一个方面,并且是一个重要的方面。建议大家多考虑许多其他的方面,并且有目的地去发展和培养那些习惯。在你自己的时间里,你应该通过一切手段,爱上这个职业。当然还要确保你可以为他人和为自己赚到钱。

- - End - -

更多精彩:

平凡而又神奇的贝叶斯方法

深度 | 机器的崛起:算法会超出我们的控制吗?

他曾是网瘾少年,却立志为人类智慧舔砖加瓦

怎样用数学找到一颗丢失的氢弹?

学界 | 清华女神颜宁今秋或将执教普林斯顿大

高等数学、线性代数、概率论与数理统计、几何学这些知识可以用来干什么?主要应用有哪些?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存