8个方法让你成为更优秀的程序员

8个方法让你成为更优秀的程序员

现在是时候认真考虑提高你的编程技能了! 这是给自己设定的一个简单的职业生涯提升目标,但是“成为一个高薪程序员”不是一个简单的目标。一方面,“我要变得更优秀”意味着你知道“更优秀”是什么样的。另一方面,太多立志改善的人却不知道怎么做。

下面我要分享8个可操作的,可提高编程技能的行为准则。 1.提醒自己得学习 学习的第一步是要认识到,你不懂。因为不懂,所以才需要学习。这听上去很明显,但有经验的程序员肯定记得自己用了多长时间才能做好这个心理建设。太多的计算机科学学生带着一种傲慢毕业:“我懂得最多”,自以为是地认为他们知道一切,并且有一种想要证明给每一个新同事看的强烈欲望。换句话说:这样一种“我知道我懂我了解!”的态度会成为阻碍你学习新东西的拦路虎。

2.不要竭力证明自己是对的 要成就伟大——而不只是优秀——你必须从经验中学习。但要小心,经验会让我们重复错误的行为,养成坏习惯。我们都遇到过有着8年经验的程序员……不断说自己的经验丰富,倚老卖老。为了避免一叶障目,你应该回顾自己所做的一切,问问自己,“怎样才能做得更好?” 新手软件开发人员(以及很多有经验的开发人员)观看他们自己的代码是为了欣赏它的精彩。他们编写测试是为了证明其代码可工作,而不是为了让它失败。真正伟大的程序员会积极寻找他们错误的地方——因为他们知道,最终用户必将会发现他们遗漏的缺陷。 3.“代码可工作”不是你止步的标志;而是你开始的地方 是的,第一步是写出高质量的软件,满足规格说明。普通的程序员往往在这里就放弃了,直接跳到下一件事。 但是就此当作是“已经完成”而止步,就像是拍了张照片就希望它成为一件艺术品一样荒诞可笑。伟大的程序员知道第一次迭代就只是第一次迭代而已。可以工作——那么恭喜你!——但是这不是结束。你还需要让代码变得更好。 一些流程定义了何为“更好”。有没有价值使其更快?文档更简单?更可重用?更可靠?对于不同的应用程序,这些问题的答案也各不相同,但是这个流程是不变的。 4.写三遍 好的程序员编写可工作的软件。而那些伟大的程序员编写的软件运行起来极为出色。这很少是能够一蹴而就的。最好的软件通常要写三次:

  1. 首先,你写软件是为了证明给自己(或客户)看该解决方案是可能的。其他人可能不会意识到这仅仅是一个证明型的概念,但是你知道。
  2. 第二,让它工作起来。
  3. 第三,让它正确工作。

这种程度的工作可能并不明显,如果你去看那些最佳开发人员的工作的话。他们做的一切都显得如此才华横溢,但你没有看到的是,即使是明星开发者,在将自己的软件展示给别人看之前,可能也扔掉过第一次和第二次的版本。抛弃代码重新开始是一个能将“力求完美”纳入个人工作流程的好方法。 如果不出意外,“写三遍”会告诉你很多解决问题的方法。它可以避免你陷入困境。 5.阅读代码,阅读很多代码 你可能已经听过这个建议,实际上这是提高编程技巧最常见也是最有价值的建议。但是很多人不知道阅读别人的代码之所以如此重要的原因。

当你阅读别人的代码时,你要去看别人是如何解决问题的。但不要把它当作文学来看;把它当做一个教训,一个挑战。为了变得更好,你得问自己:

  • 我会怎么写那样的代码块?在你看到另一种解决方法之后,你有什么不同的做法?
  • 我学到了什么?怎么应用那个技术到我以前写的代码? (“我从来没有想过在那里使用递归下降……”)。
  • 我要如何改进这个代码?如果它是一个开源项目,而且你相信自己有一个更好的解决方案,那么就去做!
  • 用作者的风格写代码。练习这个可以帮助你了解写软件的那个人的思维。

不要光想不做。写下你的答案,无论是在个人日记,博客,代码审查过程中,还是在开发者社区论坛上。就像给朋友解释问题可以帮助你理清解决方案,写下并分享你的分析也可以帮助你了解为什么你对别人的代码会有这样一种既定方式的反应。这就是我前面提到的自省,自省可以帮助你冷静地判断自己的长处和短处。 警告:阅读大量的代码很容易,但要凭此就成为一个伟大的程序员未免异想天开。许多开发人员会通过开源代码或其他软件来“找寻答案”,而大多数人的做法是,复制和粘贴恰巧出现的可解决类似问题的代码。这样做实际上是在让你变成一个更差的程序员,因为你只是盲目地接受别人的智慧,而没有消化吸收。 6.写代码,而不仅仅是作为分配的任务 工作于个人编程项目有很多优势。首先,它提供了一个学习工具和技术的途径,而这些工具和技术在你当前的工作中是学不到的,但是这能让你在找下一份工作时更有竞争力。无论你是致力于开源项目,还是为当地的社区组织提供无偿的劳动,都可以让你增加技术技能和自信。 为了好玩而写代码的另一个优点是,它迫使你靠自己去搞清楚这些事情。你不能将难的那部分留给别人去做,所以它可以避免你太快地向别人寻求帮助。 小贴士:不要选择那些你永远不会失败的个人项目。你需要失败!但你不会希望在工作中失败,或者当项目有时间期限的时候。 7.尽可能一对一地和其他开发人员合作 这有助于仔细倾听别人的思路和想法。方法可以是结对编程,可以是去参加编程马拉松,也可以是加入一个编程用户群。当你致力于一个开源项目时,要注意你从用户和其他开发人员那里得到的反馈。在他们的批评建议中有没有什么共同点? 你或许会很幸运地找到一个可以信任的个人导师,他会指导你从编码技术到职业决定的所有东西。不要浪费这些机会。

8.学习技术,而不是工具 编程语言、工具和方法变化不定。这就是为什么我们要积累尽可能多的经验,使用尽可能多的语言和框架。专注于编程基础,因为基础知识永远不会改变:要更注重结构,而不是编程。如果你觉得只有一种做事的正确方法,那么可能是时候实战检验了。教条会阻碍你学习新事物的能力,同时要试着让自己慢慢适应变化。 还有很多,但是自我提高的一个关键原则是知道何时停止。

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

原文发表时间:2016-03-04

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏爱原型爱设计

2018年交互设计旅程中的7个设计趋势

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具。

42517
来自专栏我是攻城师

如何成为一名优秀的全栈工程师

4016
来自专栏人称T客

公有云与私有云优劣对比分析

T客汇官网:tikehui 撰文 |Felix 选择公有云或私有云并不是一个二选一的问题。行业分析师指出大部分的公司使用了多云战略,也就是说明他们至少使用了两种...

4.5K5
来自专栏知晓程序

微信小程序的再思考:什么才是正确的打开方式?

1272
来自专栏华章科技

【Gartner 最新报告】2016 年十大战略科技趋势

2016 年是变革的一年,AlphaGo 战胜李世石,给我们带来了很大的震撼。Gartner 的这篇最新报告,所提出的 2016 年的十大趋势是今天数字业务的主...

1022
来自专栏云计算

如何利用云优化加快网站访问

云计算最近成为几乎所有行业的基本业务工具。大多数公司领导人已经注意到云计算及其作用,同时也注意到那些可以优化云计算的方法。总而言之,云计算,曾经的奢侈品如今已经...

24011
来自专栏云计算D1net

混合云迁移:长期多云战略的第一阶段

如今,每个采用云计算的企业平均有六个云,当遇到混合环境中的应用托管时,就会面临一些特殊的挑战和一些误解。 ? 在某个地方,仍然有使用拨号电话和通讯录的业务。这可...

3255
来自专栏京东技术

京东自建数据中心核心技术解密——运营管理篇

随着电子商务、云计算、大数据、人工智能、互联网金融等应用的快速发展,数据中心单体规模越来越大、系统越来越复杂,应对的挑战也越来越多。 一个好的数据中心需要通过科...

4498
来自专栏我是攻城师

8个方法让你成为更优秀的程序员

2946
来自专栏BestSDK

2017——国外SDK发展趋势

本文列出了 2017 年国外增长最快的移动应用 SDK,旨在帮助开发者了解技术的发展趋势。 ? 1. 更多开发者选择应用开发平台 开发者通常会面临这样的选择:是...

4876

扫码关注云+社区

领取腾讯云代金券