成为优秀程序员的8种方法

成为优秀程序员的8种方法

是时候认真对待如何提高你的编程技能了。让我们开始吧!

“成为一个牛逼的程序员”是一个看似很容易实现的职业生涯改进目标,但其实这并非是一个简单的目标。一方面,对自己提出“我想变得更出色”,表明你已经有一个标准,认为什么样才是“更出色”。另一方面,大多数人谋求改进,却不知如何才能变得更出色。

无论做什么工作, 都希望能做到最好, 就像参与一款游戏, 每个人都希望能赢到最后. 工作自然也会有其”秘籍”, 让我们更快的实现目标. 有些工作五年的程序员仍然很平庸, 也有刚学一年就技术出众的天才.

因此,我来分享八条切实可行的指导方针,以作为你提高编程技能的路线图。这八条饱含智慧的经验,都是35年来计算机行业的精华。对于某些程序员来说,其中有许多条都未免见效缓慢。

1.提醒你自己还有多少知识不得不去学习

学习某样知识的第一步就是要承认你不了解它。听看起来理所当然,但经验丰富的程序员仍然记得他们花了多长时间才能克服这种个人假设。大多数计算机科学专业的学生,毕业后常常会带着自以为是的观点“我知道什么是最好的”来虚张声势,以及他们知道所有事情的这种无可争议的事实,并强烈需要将这些证明给每一个新同事。换句话说:“我知道我在做什么!”这种态度将会妨碍你学习任何新知识。

2.停止试图证明自己是正确的

你需要从过往的经验中学习,才能变得伟大而不仅仅只是不错而已。但需注意,经验也可以教唆我们重复不良行为和养成坏习惯。我们都曾遇到过拥有8年经验的程序员……每年相同的经历,重复八次,仅此而已。为了避免重蹈覆辙,审视你做的每一件事,并问自己:“我怎样才能做的更好?”

软件开发新手,以及拥有很多经验的程序员,在审视他们编写的代码时,会自我赞赏他们代码的优美。他们编写测试程序用来证明其代码运行良好,而不是试图使代码运行失效。然而真正伟大的程序员则积极寻找他们代码的错误所在,因为他们知道终端用户将会发现他们遗漏的代码缺陷。

3.“代码可以运行”不是终点,而是起点

你的第一步通常是写高质量的软件以满足需求说明书。大部分程序员此时结束该事,转而处理下一件事。

但是,代码一旦“完成”就停止,就如同拍完照,并期待它是一件艺术品。伟大的程序员知道第一次迭代仅是第一次迭代。如果代码能正常工作,那么祝贺你,但这还不算完成。现在,就让它更好。

部分的迭代过程可以定义何为“更好”。让编码更快,更容易形成文档,更容易复用,更可靠,这些是否有价值?针对每个应用程序都会有不同的答案,但过程都是相同的。

4.代码写三遍

优秀的程序员编写可以运行的软件。伟大的程序员编写运行非常好软件。这很少在第一次尝试编写就能实现。最好的软件通常要被编写三遍:

1.第一遍,你编写程序用来给自己(或客户)证明方案是可行的。其他程序员可能认识不到这只是一个概念验证,但你认识到了这点。

2.第二遍,你让程序运行起来。

3.第三遍,你让程序正确的运行。

当你思考顶级开发人员的作品时,这一级的工作可能表现的不是很明显。他们所做的一切看起来都是如此的杰出,但你没有看到的是,即便如摇滚明星般存在的开发者们,在把他们的软件展示给其他人之前,可能扔掉了第一个和第二个版本。扔掉代码和从头再来是把“使之更好”整合到你的个人工作流中的一个强有力的方法。

哪怕没有别的好处,“代码写三遍”也会让你明白,有多少种方法可以用来解决同一个问题。当然,“代码写三遍”也能阻止你陷入原地踏步。

5.读代码,读大量的代码

你可能希望我提出这个建议,这确实是提高编程能力的最普遍也是最有价值的建议。阅读别人的代码是如此重要,但其中缘由并非是显而易见的。

当你阅读别人的代码时,你会领悟到别人是如何解决编程问题的。但不要把它当作文学作品,而是把它当作教训和挑战。为了做的更好,要问你自己:

1、我怎么会写那段代码?既然你已经想到另一个解决方案,你会怎样做到不同?2、我学到了什么?我怎样才能将这种技术应用到我过去写的代码中呢?(“我从来没有想过在那里使用递归降序…”)。3、我如何改进这段代码?如果它是一个开源项目,你有信心提出一个更好的解决方案,去实现!4、用作者的风格写代码。这个训练能帮助你融入编写软件的程序员的思维,进而能够提高你的共鸣感。

不要只是漫不经心地思考这几个步骤。写下你的答案,无论是在个人日志、博客、代码审查过程中,或与其他开发人员共处的社区论坛。正如向朋友解释问题可以帮助你解决问题,写下和分享你的分析可以帮助你理解为什么你以特定的方式对别人的代码作出反应。我之前提到的自我反省的所有部分,可以帮助你冷静地判断自己的长处和弱点。

警告:阅读大量的代码很简单,但并不足以使你成为一个伟大的程序员;这就如同一个梦想成为作家的人,可以阅读伟大的文学作品,但丝毫没有提高自己的散文文笔。大量的开发人员查找开源或其他软件去“寻找答案”,并且很有可能通过复制和粘贴代码来解决类似的问题。这样做实际上会使你成为一个糟糕的程序员,因为你盲目地接受别人的智慧而不去审视它。另外,这可能比夏天的野餐拥有更多的bug,因为你没有花时间去了解它,你永远不会意识到你引入了一个生产bug的工厂。

6.写代码,不仅为了工作

为个人编程项目工作有许多优点。一方面,它为你提供了一种学习工具和技术的途径,而这些工具和技术在你目前的工作中是不可用的,但这会让你更适合下一份工作。不管你是否为开源的项目做过贡献,或承担当地社区组织的公益性工作,你都将会获得技术技能和自信。另外,你的个人项目也向潜在雇主证明了你是一个永不停止学习的自驱动的程序员。

为兴趣编写代码的另一个好处是,它强迫你自己去做一些事情。你不可能把很难做的事情留给别人做,所以它不会让你过早地去寻求帮助。

小贴士:不要只选择你从未失败的个人项目。你需要失败!即使你可能不想在工作中或者当你有最后期限时失败。

7.与其他开发人员以一对一的任何方式开展工作

这有助于倾听其他人的观点。这可能意味着结对编程,或参加编程马拉松,或者加入一个编程用户组(像Vermont Coders Connection)。当你对开源项目做出贡献时,注意用户和其他开发者的反馈.。在他们的批评中,你能发现它们的共性吗?

你可能会很幸运地找到一个你可以信任的个人导师,指导你无论是编码技术还是职业决策的所有事情。不要浪费这些机会。

8.学习技术,而不是工具

编程语言,工具和方法不断更迭。这就是为什么尽可能多地获得更多语言和框架方面的经验是值得的。专注于编程基础,因为基础永远不会改变,更注重架构而不是编程。如果你确信只有一个正确的方法去做某事,这可能是自我检查的时候了。教条会牵制你学习新事物的能力,使你适应变化更缓慢。

不是每个人都能成为高手,但是不努力,就算有再高的天分,也白痴一个!如果你想学习 Java 工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty 源码分析和大数据等知识点可以来找我。

而现在我就有一个平台可以提供给你们学习,让你在实践中积累经验掌握原理。主要方向是 JAVA 架构师。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,想进 BAT 但是有担心面试不过的。

工作一到五年的程序员朋友面对目前的技术无从下手,感到很迷茫可以加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl里面有阿里Java高级大牛直播讲解知识点,分享知识,课程内容都是各位老师多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容

  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,123评论 6 244
  • 1.什么是我真正热爱做的? 2.什么是我感到兴奋的? 3.什么事能够吸引并让我着迷? 4.这份深层的热爱和能量的感...
    Flora_ym阅读 142评论 0 0
  • 刘润在自己专栏里提出过一个概念,“人脉不是有多少人能帮助你,而是你能帮助多少人。那些或许能帮助到你的,不是你的人脉...
    苏思羽阅读 353评论 0 1
  • 文:傍水伐檀 协力:北村勇志 接连在日本国内引发话题的大热动画作品《阿松》,其风潮如今仍在继续。纵观整部作品,各方...
    AnimeTamashii阅读 884评论 1 3