成为更好程序员的8种途径

是时候开始认真考虑一下如何升级你的开发技术了。让我们来认真地学习一下吧。

给自己设定一个提高开发技术的目标很容易,但是“想成为一名伟大的程序员”却不是一个容易实现的目标。首先,说“我想变得更好”,是简历在你认识到“更好”的样子基础之上。另外,有太多的人追求进步而不知道如何去实现。

因此,让我分享八个可实际操作的知道方针,你可以把他们作为提高变成技能的流程图。这些指挥都是伴随着计算机35年的发展沉淀下来的。

1.时刻提醒自己:学习

        学习某件事的第一步是承认你不知道。这听起来很正常,但经验丰富的程序员还记得要真正让自己承认这一点需要花多长时间。很多计算机科学专业的学生毕业的时候,都有一种很傲慢的态度,就是“我知道最好的”,但其实这只是一种虚张声势,他们不知道从哪里来的自信,就好像他们什么都知道,并且需要向每一位新同事强烈的证明这一点。换句话说:你所谓的“我知道我在做什么!”这种态度会妨碍你学习新的东西。

 2.不要试图证明自己是正确的

要想成为优秀的人,你必须学会吃一堑长一智。但是千万小心,经验也可能教会我们重复一些不良行为,甚至也教会我们养成一些不好的习惯。我们都遇到过有8年经验的程序员。对于他们来说,同样的经理,重复了8次。为了避免这种综合症,看看你做的每一种事情,然后问自己:“我怎样才能让它变得更好?”

新手(以及很多经验丰富的开发人员)会看着他们自己写的代码,欣赏它的奇妙。他们编写测试来证明他们写的代码时可以运行的,而不是试图让它运行失败。真正优秀的程序员会积极地需找他们的错误在哪里,因为他们知道最终用户会发现这些一楼的bug。

3.“代码可以运行了”这个目标不是终点,而是起点

是的,你的第一步总是想写出质量很高的代码,而且代码上面都写满了注释。但是一般的程序员在这一点上就退出,然后继续下一件事。

但是一旦“完成”就停止了这种思想就想是拍一张快照,然后期待它是一件艺术品一样。伟大的程序员都知道第一次迭代只是一次迭代。它运行起来了,恭喜你!但你的工作还有很多。现在,使它变得更好。

其实这个过程就是在定义“更好”的含义。让它变得更快能有什么价值吗?可重用更高有什么好处吗?更可靠吗?答案随着每个应用程序的不同而不同,但是过程都是一样的。

4.写三次代码

好的程序员目标是写出可以运行的软件就可以了。伟大的程序员写出来的软件目标是运行得非常好。通过一次编写这种情况几乎不可能发生。最好的软件通常被写三次:

  • 首先,编写软件以向你自己(或客户)证明解决方案是可行的。其他人可能没有意识到这只是一个概念雅正,但你确实这么做了。
  • 第二次可以让他正常地运行。
  • 第三次你能够让他凭我那的运行。

当你看到最优秀的开发人员的工作时,这种级别的工作可能并不明显。他们所做的一切看起来都很出色,但你没有看到的是,即使是开发界的大腕儿,也可能在向其他人展示他们的软件之前就已经抛弃了第一个和第二个版本。抛弃之前的代码并开始编写另一个版本是一种强大的方式,可以将“更好地”融入到您的个人工作流程中。

如果没有其它情况,通过“写三次代码”可以告诉你解决问题的方法有多少种。而且它可以防止你陷入停滞不前的状态。

5.阅读大量的代码

你可能希望我能够引导这个建议,实际上,这也是提高编程技能的最常见和最有价值的建议。阅读他人代码的原因也很重要,只是不是很明显而已。

当阅读其他人的代码时,你会看到其他人是如何解决编程问题的。但不要把它当问文学作品,而是把它当成一种教训和一种挑战。想要变得更好,问问自己:

  • 那块代码我该怎么写呢?既然你已经看到了别人的解决方案,那你会有什么思路呢?
  • 我学到了什么?我如何将这种技术应用到我过去编写的代码中?(“我从来没有想过可以使用递归下降处理那块的逻辑”)。
  • 我如何改进这段代码?如果这是一个开源项目,你对自己的解决方案更有信心,那就去做吧!
  • 以作者的风格编写代码。联系这个可以帮助你进入作者的思维,这可以提高你的同情心。

不要只是漫不经心地思考这些步骤。写下你自己的答案,  无论是在个人日志、博客、审查代码的过程中,还是与其他开发人员交流的论坛中。就像向朋友解释问题可以帮助你解决问题一样,记录和分享你的分析可以帮助你理解为什么你会以一种特定的方式对别人的代码做出反应。这是我之前提到的自省的一部分,帮助你冷静地判断你自己的优点和缺点。

警告:在不需要成为一名优秀程序员的情况下,很容易阅读大量的代码,就像一个想要成为作家的人可以再不提高自己散文的情况下阅读伟大的文学作品一样。很多开发人员都在寻找开源或其他软件来“找到答案”,而且很可能是复制和粘贴代码来解决类似的问题。这样做实际上会让你成为一个更糟糕的程序员,因为你盲目地接受别人的智慧而不去审视它。(另外,他可能比夏季野餐还要麻烦,但因为你没有花时间去理解它,你永远不会意识到你就像是大自然的搬运工一样,只是在做体力劳动。)

6.不要把编写代码仅仅看作是任务

从事个人变成项目有很多优势。首先,它为你提供了一种学习工具以及学习技术的方法,而这些工具和技术在你当前的工作中是用不到的,但是这将使你在下一份工作中更有市场。无论你是为开源项目做贡献,还是为当地社区组织做公益工作,你都能获得技术技能和自信。(此外,你的个人项目向潜在雇主证明,你是一个从不停止学习的人。)

编写代码的另一个好处是它强迫你自己去解决问题。你不能把这些难啃的问题留给别人,所以它会让你过早地寻求帮助。

专业提示:不要只选择哪些你永远不会失败的个人项目。你需要失败!但是你可能不想在工作中失败,或者给你限定期限时你也不想失败。

 7.尽一切可能做到与其他开发人员面对面的工作

倾听别人的一件事很有帮助的。这可能以为着结队编程,或者参加黑客马拉松,或者加入一个编程用户组(比如Vermont Coders Connection)。当你为一个开源项目做贡献时,要关注一下你从用户和其他开发者得到的反馈意见。你在他们的批评中看到了什么共同点?

这样做你可能会很幸运地认识了以为可以完全信任的导师,无论是编码技术还是职业决策,你都可以完全信任他。所以不要浪费这些几回。

8.你是在学习技术,而不是在学如何使用工具

编程语言、工具和方法这些都只是一时的。这就是为什么需要你在这么多的语言和框架中尽可能多的获得经验。终点关注变成基础。如果你觉得做某件事只是一种正确的方式,那可能是时候进行现实核查了。条条框框的限制会妨碍你学习新事物的能力,也会使你很难适应变化。

我可以继续前进,但自我提升的关键原则是知道何时停止。

原文链接:https://blog.newrelic.com/2016/02/22/8-ways-become-a-better-coder/

时间: 2024-10-11 15:59:02

成为更好程序员的8种途径的相关文章

2014,成为更好程序员的7个方法

本文由 伯乐在线 - haofly 翻译.未经许可,禁止转载!英文出处:Amy Jollymore.欢迎加入翻译小组. 程序员总是有很多的决定,不是吗?如果你的新年待办事项还是空白的话,那么可以考虑使用下面这些程序员的想法.即使是最聪明的人,也还有成长空间.以下内容摘录自 Kevlin Henney 的<程序员应该知道的97件事>. 1.在怪罪其他东西之前先检查自己的代码 质疑一下你自己和他人的预设情况.来自不同供应商的工具,可能内置有不同的预设,也有可能相同的供应商提供不同的工具. 当有人想

可以使你成为更优秀程序员的5个好习惯

我们都希望能够在我们所做的事情中得到成长,在WEB开发领域,我们花费时间最多的就是编写代码.这可能包括HTML, CSS, JavaScript, PHP, Python, ActionScript或者任何其他你构建WEB站点时选用的语言. 这篇文章中,我们将分享一些实际的步骤,使你可以扩充技能,成为一个更优秀的程序员.我们提出五个不同的生活习惯,它们可以使你在你所从事的领域变得更加优秀. 1. 一个时间段内只专注于一种类型的语言 如果你正在设计或开发网站,你将需要同时熟悉多种不同的语言.你可能

你是哪种层次的程序员?程序员的四种类型

http://www.nowamagic.net/librarys/news/detail/1370不是每一个写代码的都是程序员.这里,我把程序员定义为以编程为生的人.我认为世界上存在四类程序员:科学家.码农.专家和工匠.下面我一一介绍自己的观点. 科学家,与其说他们是程序员,不如说他们是数学家.他们发明了各种理论.算法和术语,教科书上那冗长的证明和计算也出自他们之手,其他的程序员都或多或少受益于他们的成果.有时,他们的一篇论文能改变整个业界的思维方式,但他们通常不会也不喜欢把那惊世骇俗的理论商

程序员的8种好习惯

转自强哥: 1.时刻提醒自己:学习 学习某件事的第一步是承认你不知道.这听起来很正常,但经验丰富的程序员还记得要真正让自己承认这一点需要花多长时间.很多计算机科学专业的学生毕业的时候,都有一种很傲慢的态度,就是"我知道最好的",但其实这只是一种虚张声势,他们不知道从哪里来的自信,就好像他们什么都知道,并且需要向每一位新同事强烈的证明这一点.换句话说:你所谓的"我知道我在做什么!"这种态度会妨碍你学习新的东西. 2.不要试图证明自己是正确的 要想成为优秀的人,你必须学

嫁给程序员是一种什么体验

我曾经跟朋友开玩笑说,这个时代,有两种人的妻子应该要受人尊敬,第一种是军嫂,这是毫无争议的,第二种就是像我这样的,程序员的老婆.当然,这个玩笑半分自嘲半分真.我的本科是穿着大白褂在各种挂着植物.动物.有机化学.无机化学的门牌的实验室里度过的,在显微镜下给三段生的夹竹桃画过横切片图,在大头针和解剖剪子的辅助下找过蚯蚓的三条神经,闻过带有臭鸡蛋味的硫化氢气体-- 是的,你们都猜对了,我确实是相貌平平,不修边幅,素面朝天的理科女.见了人就开始习惯性地科普:蝴跟蝶,蜻跟蜓,其实是不一样的,还有,白菜跟萝

在香港当程序员是一种什么样的体验

前年获得机会派去香港工作,历时两年,如今已回深圳,一直想抽个时间好好写篇文章记录下. 香港,让人容易想到的就是一片繁荣,经济发达,在登陆这片土地前,我对于香港的印象都是来自于那些从港剧,新闻的一些片段. 实际上到了这里工作,这里只是金融行业发达,其他行业都相对内地落后. 香港的IT行业比内地要落后十年以上,主要是香港不重视,也无法重视科技的原因导致.香港的人才都往金融,医生方向挤,而计算机这些资讯科技类专业则是非常少人去考虑的.2000年的时候,香港的互联网信息走在内地前列,但受困于在自身土壤,

黑马程序员【两种Ajax方法】

两种Ajax方法 Ajax是一种用于快速创建动态网页的技术,他通过在后台与服务器进行少量的数据交换,可以实现网页的异步更新,不需要像传统网页那样重新加载页面也可以做到对网页的某部分作出更新,现在这项技术已经被人们广泛应用,而对于一些对Web的了解还不是很深入的初学者,Ajax依然带着一层神秘的难懂的色彩,今天就在这里给大家以简单的方式解读一下Ajax的实现步骤和原理,并且给大家两种实现Ajax的方法,js和jquery. 首先ajax其实就是js+xml的技术,前端的表现就是一段js代码.要使用

程序员的五种状态

1.不爱,但是迫于生计  2.无感,反正亦步亦趋  3.热爱,但却身心俱疲  4.狂热,打了鸡血一般  5.欢喜,毕竟乐在其中   你是属于哪一种呢?  如果要我来选,我一定会选5,因为唯其如此才能获得程序人生的个中真昧,才能拥有彼此交融的内在完满.而其他的几种状态在不同程度上都是残缺的.         也许我们写程序总是不可避免的为了各种外在的目的,但是写程序时的那份小确幸的欢喜,却始终是我们精神飞鸟的栖息地. 正如孔子赞颜回——子曰∶“贤哉回也,一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改

优秀程序员的10种习惯

1.如何你不知道你在讨论什么,那要求做到精确就成了苛求. 要问为什么需要做这个 3.简约(Simplicity is beauty) *软件的本质:解决复杂度 *做减法 *核心+精炼 *表达业务逻辑 *分层机制 *简约且有生命力的代码 4.及时修复问题,莫等问题变大到难以修复 5.不要重复造轮子. 6.设计是把变化和不变的东西分离.