给新程序员的忠告
看起来我们的孩子们都不会成为程序员,我不会对他们浪费口舌,所以希望和大家一起分享。如果你刚刚启程成为一名程序员,这些会是忠告。这都是我经过了一番磨难后学到的东西。
持续学习: 阅读、参见会议、订阅期刊、上课。把任何可以让你保持学习的事情放在优先位置。花点时间学习一些新的框架、算法、技术、模型、方法。每一个都会给你的“工具箱”带来新的工具,每一个都会让你更容易地处理下一个编程问题。找一个导师,可以是比你优秀的某一个人,学习所有他们教给你的东西。不要停止学习。
学会沟通: 我经常开玩笑说作为一个程序员能学到的最重要的技能就是在白板上画一个长方形。沟通对程序员的工作至关重要。和客户、用户、同事、老板、副总裁、CEO、董事会、风投家的沟通都会在你职业生涯的某一节点变得很重要。学会如何在公共场合演说。学会如何写稿子。学会如何面对面沟通。学会如何在不大吼大叫、没有怒气和不垂头丧气的情况下说服对方。学会不用行话沟通。让人们知道你在做什么。学会将事情分解到简单、可以理解。学会通过比喻和象征手法沟通。总之就是学会沟通。
要有预见性: 了解你舒适编码的速度。直到你理解任务后再预测它的工期。考虑一些意外因素。为休假和请假做好准备。在将任务拆分成一个个不超过3天(通常小于一天)的子任务之前我是不相信自己对一个问题足够理解以至于可以预测它的工期。按照这个原则办事:少承诺、多交付。你承诺15天但实际用了10天才交付会比你承诺5天但实际用10天要好.尽量让它们准确这样你就会很惬意地完成,否者你会被要求独自面对糟糕的预测。你可能不需要一开始就做的很好,和一些有经验的人一起纠正、确认你的预测。学会做的更好。学会预见,其他人会依靠你。
承担自己的错误:你会犯错误。你如何处理错误会影响别人对你的评价。学会如何说“我错了”。如果你低估了完成某事所需要的时间,一旦意识到了就马上告诉相关人员。如果你使得编译无法通过,修复它。如果你制造了一个bug,修复它。不要否认错误,不要为错误编借口,不要想着如何掩盖错误,不要将错误推到别人身上,而应该采取些行动。承担错误,否者你就会重犯。
不放过糟糕代码离开你的工位: 你的工作是写可以运行的代码,不要让你不确信是否符合标准的代码离开你的工位。它不仅仅会损害你的形象,还会使得定位一个问题变得比之前变得更昂贵、更困难。学会喜欢单体测试。学会喜欢代码覆盖。学会比测试人员更好地测试你的代码。如果在签入代码后发现bug应该感到羞愧。不要依赖别人来发现你的bug,自己发现并修复它们。不要期待它会正确运行。测试它。不要假设它会正确运行,测试它。不要想其他,测试它。如果你没有测试过,你就应该确信它不会正确运行。但是即使你很努力测试,还会有bug缠着你。你会犯错误,但尽量不要。
编程很愉悦但交付是你的工作: 编程很有趣。这是一种发现的喜悦。这是一种创造的喜悦。这是一种达到的喜悦。这是一种学习的喜悦。看到自己的作品在屏幕上呈现很愉悦。看到同事为你的代码叫好很愉悦。看到自己的产品受到公众好评、被邻居使用以及在媒体中被讨论很愉悦。编程本应该很愉悦,如果不是就找出原因并解决它。但是,交付就不好玩了。我经常说交付产品时候感觉很好就像某人停止敲打你。你的工作是完成一个产品、修改bug并交付。如果bug需要修复就修复。如果文档需要补充就补充。如果代码需要测试就测试。所有都是交付的一部分。你不是雇佣来编码的,而是交付。努力改善你的工作。
记住如下几句简单的话:
• 不要停止学习。
• 沟通很关键。
• 少承诺,多交付。
• “我错了”
• 如果没有测试过就不会正确运行。
• 你的工作不是编程,是交付。
原文:http://www.removingalldoubt.com/PermaLink.aspx/a32977e2-cb7d-42ea-9d25-5e539423affd