成为优秀程序员的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高级大牛直播讲解知识点,分享知识,课程内容都是各位老师多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2019金融科技风往哪儿吹?蚂蚁金服联合20余家金融机构预测新年热点:5G、区块链上榜
2019年,金融科技的风向标在哪里?哪些板块成新宠,哪些科技成潮流? 1月4日,蚂蚁金服ATEC城市峰会在上海举行。大会上,蚂蚁金服与20余家金融机构一起预测了2019年金融科技的发展。 “未来金融会像自来水一样触手可及,无时无刻, 只要你打开水龙头,活水自然来。”蚂蚁金服董事长兼CEO井贤栋指出:技术和金融加速融合,正在经历一个从无到有、又从有到无的发展过程,后面这个“无”是无处不在的无。 科技与金融的深度融合促进新型业务形态的产生,开放银行成为2019备受银行业关注的创新方向。华夏银行信息技术部总经理吴永飞认为,开放银行加速客户到用户、封闭到开放、单打独斗到平台经济的转变;随着5G和万物互联时代的到来,开放银行发展会更加迅猛。 人工智能、大数据依旧是2019金融科技创新的关键领域。中国光大集团科技创新事业部总经理、光大科技有限公司总
- 下一篇
毕业五年程序员的现状:有人年薪百万,有人月薪一万
工作五年是个分水岭,大部分程序员从初级工程师成长为中高级工程师,薪资较刚毕业时翻几番。 同一个宿舍毕业的人有不同的发展轨道,有人年薪百万,有人仍在基层搬砖。小编采访几位工作五年的程序员,谈谈他们的现状。 李小军: 专注在一家公司里走技术管理路线,现不写代码专注撕逼,月薪2万 李小军毕业后入职某二线互联网公司,月薪不到一万。头两年和其他程序员一样,写些基础性的业务代码。 在大学身为班长的李小军有较好的领导能力,他开始在跨组合作的项目中主动承担起许多程序员不愿意去做的沟通联系工作。 后来部门结构调整,他TL离职,李小军便承担起组长的工作,开始边开发边管理的忙碌过渡期。他逐渐往技术管理方向转,互联网人流动性大,他在公司的第三年,经理岗位有空缺,他毫无意外地被任命。 现在李小军不用码代码,忙于面试招聘、开会、与各种人协调沟通的工作。 问及他往后是否有跳槽的打算。他摇头道,他目前工资两万+,比不上走技术方向的同学。可公司认可他的忠诚,给予一定量的股票,还有每年小幅度的涨薪。 何况每年校招回母校宣讲时,看着台下的学弟学妹,心里有着和编程不一样的成就感。李小军对现状满意,下一个晋升目标是高级经理。 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境