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

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

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

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

 1.时刻提醒自己:学习

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

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

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

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

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

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

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

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

 4.写三次代码

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

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

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

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

 5.阅读大量的代码

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原文发布于微信公众号 - Java学习网(javalearns)

原文发表时间:2017-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏斑斓

【敏捷实践】推行TDD的思考

目前来看,推行TDD的障碍大约有如下几点: 开发人员的质量意识; 分析需求并进行任务分解的能力; 将测试作为开发起点的开发习惯; 开发人员的重构能力,包括如何识...

32660
来自专栏速成应用小程序开发平台

微信小程序和APP的区别是什么?小程序和独立app到底哪个好?

小程序从2017年初上线,取得的成就是有目共睹,目前一年狂揽6亿用户、3亿的日活、上线100万个……不需要下载、不需要安装,背靠微信10亿的日活跃用户,有观点认...

20910
来自专栏Java技术交流群809340374

高级程序员到底强在哪里?

说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码...

33500
来自专栏云计算D1net

技术人观点:开发人员在处理云应用时该注意什么?

我们与28位分别来自23家企业的高管人员进行了交流,希望了解这些负责立足于云环境进行应用程序开发与部署的技术领导者如何看待相关议题。 ? 当被问及“开发人员需要...

38470
来自专栏IT大咖说

华为敏捷/DevOps实践:别再用Excel管理项目

内容来源:华为云 DevCloud 首席布道师 & 资深产品经理刘恒的技术干货分享。IT 大咖说(微信id:itdakashuo)经华为云和讲者授权发布,转载请...

42030

云计算类型介绍

高德纳公司(Gartner)所提出的“炒作周期”(hype cycle)着实了不起。这个周期包括“期望膨胀期”以及“幻觉破灭期”。所以,这本身就带有非常浓厚的娱...

422110
来自专栏CSDN技术头条

一名普通的程序员进阶成为伟大程序员有哪8种途径?

本文作者讲述了8种方式帮助你如何从一名普通的程序员进阶成为一名伟大的程序员,让我们就从此时此刻开始提高自己的开发技能吧。 是时候开始认真考虑一下如何升级你的开发...

32880
来自专栏腾讯云数据库(TencentDB)

一篇文章了解腾讯云数据库TencentDB

注:本文摘自2018年11月22日腾讯云数据库CynosDB新品发布会的演讲实录。随着互联网信息的发展,大家也对云这个词汇也不是特别陌生了,作为全球首选的云服务...

39460
来自专栏云计算D1net

云计算“双刃剑”如何影响企业IT架构

尽管云计算逐渐被行业所接受,但对于云计算的困惑,可能更多的还是围绕它对IT组织架构方面的影响。很多人都认为云计算仅仅是一种影响企业某些方面的技术进步。比如,CI...

30550
来自专栏企鹅号快讯

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

▲ 是时候开始认真考虑一下如何升级你的开发技术了。让我们来认真地学习一下吧。 给自己设定一个提高开发技术的目标很容易,但是“想成为一名伟大的程序员”却不是一个容...

19180

扫码关注云+社区

领取腾讯云代金券