专栏首页Crossin的编程教室成为优秀程序员的10个有效方法

成为优秀程序员的10个有效方法

一个优秀的程序员就是那种即使是过单行道都要往两边看的人。 ——Doug Linder

作为一个在IT行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激情。但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员。

当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的。这只是从我的经验角度出发提供的一些捷径。对于优秀程序员的定义,此处可以理解为能开发出超棒的IT解决方案并且能促进行业整体发展的程序员。

1.掌握基础知识

不管任何行业和任何工作,概念的理解都是成功的关键。除非你有强大的概念基础,否则就不可能成为一名优秀的程序员。核心概念的理解有助于你用最佳的方式设计和实施解决方案。如果你觉得你现在还没有好好掌握关于核心计算机科学和编程语言的特定概念,那么现在回过头去重新学习这些基础知识犹未晚矣。

2.给自己写的每个代码集都贴上标签(how,what)

我发现区分程序员优劣的一条很明显的分割线就是,是否有这个热情去知道“what and how”。有的程序员对于自己的代码是如何执行的以及执行结果等知道得一清二楚。我也理解有时候因为时间紧迫,我们不得不在只知道这些代码可以完成工作的情况下就立刻进行下一步。虽然这对解决问题而言,似乎是另一个方向的话题,但是作为一个程序员,我们应该尽可能地深入研究问题以达到最高水平。相信我,随着时间的推移,你会在不知不觉中养成这个好习惯,然后受益无穷。。

3.通过帮助他人从而学到更多

可能我们中的大多数人只有在自己需要帮助的时候才会上论坛和群。有一条区别程序员是否优秀的分割线就是,优秀者经常会去这些地方以帮助他人。而且他们在帮助别人的同时,自己也能学到很多东西。如果是在一个团队中,也应该互相帮助。相信我,理解别人的问题背景、研究并提出解决方案会让你学到的更多,成长的更快。

4.代码要写得简单、易懂、有逻辑

正如在生活中其他方面一样,KISS(Keep it simple and short)规则同样适用于编程领域。代码要有逻辑,避免过于复杂。有些人之所以要将代码写得那么复杂只是为了证明自己有写复杂代码的能力。但是我的经验告诉我,简单且逻辑化的代码才能有效工作,不但问题少而且更易扩展。我记得有这么一句话:

好的代码本身就是最好的文档。在你要添加注释之前,先问问自己,“我怎么改进代码,才能不需要写这个注释?” ——Steve McConnell

5.多花时间分析问题,后面就可以少花时间去修复

多花点时间用来理解和分析问题,设计出最优的解决方案,然后你会发现接下来的工作将事半功倍。设计过程并不意味着一定要使用建模语言和工具,也可以很简单,例如抬头仰望天空,然后在脑子里来一场头脑风暴。那些一拿到问题就习惯性去噼里啪啦写代码的程序员,最后拿出来的成果往往会与要求的不同。

你如果在洗澡的时候脑子里还没有程序的整体结构,那就意味着还没有做好开工写代码的准备。 ——Richard Pattis

6.第一个分析审核自己的代码

虽然有点困难,但是在其他人发现之前自己先知道问题的所在,能让你学会如何写出“接近于无bug”的代码。自己对自己的代码审核要公正严谨,也要能毫无犹豫地接受他人的审核。近朱者赤,与优秀的程序员一起工作,积极听取他们的反馈,必然也会帮助你成为一名优秀的程序员。

7.面对日新月异的技术千万不要沮丧

最近一段时间在IT行业里,我碰到的很多人——要么念叨着对他们的工作失望了,要么甚至于已经辞职在找新工作了——都一致表示,他们想要学习并使用最新的技术。对于这个愿望我认为可以理解,但是这个词“最新的”,我觉得不甚正确。我们每天都能听到有人在说“现在又出来什么新的工具、API、框架和其他方法等”可以使得编程工作更加的简捷。这在技术领域其实一直在发生。真正需要我们去关注和理解的是核心和基本技术的转变,在这个基础上再去看新的框架、工具和API。举个例子,在很多Java公司可能每隔一周就会换上新的web框架,但是其基于客户端—服务端通信模式的需求方式、MVC模式、filters/servlets/JSP、资源绑定、XML解析等核心概念依然是相同的。所以,与其时刻担心框架和工具的变化,还不如花点时间好好学习这些核心概念。相信我,在理解这些核心概念的基础上,我们才可以更快地掌握新的框架、工具和API。

8.应急措施并不能长久有效

很多时候,软件程序员可能会采取应急和变通的解决方案(或因为时间紧迫,或缺乏对问题的深刻认识,或技术经验不足)。但是,这些应急方案会破坏代码,导致其后期很难扩展和维护。我能理解,有的时候这种情况真的很难避免,但是就像我们都应该讲实话一样,你讲了谎话,那就得知道谎言总有戳穿的那一天。

9.阅读文档

优秀程序员的基本习惯之一就是阅读大量的文档,技术指标、JSR、API文档、教程等等。阅读文档为我们用最好的方式编程打下了必需的基石。

10.学习他人的代码

我非常喜欢与那些在IDE里有java源代码的优秀程序员交流互动,阅读/参考他们的代码。因为这么做不但能了解基本知识,还可以学会写项目的新方法。阅读和参考一些可靠和已知的开放源码或者自己的高级代码,也有助于我们更好地编程。

最后一点,前面没有列进去的:不要和别人比

俗话说,人比人,气死人,拿自己与别人作比较只会导致负面情绪,并演变成不良竞争。尺有所短寸有所长,每个人都有自己的长处和短处。我看到过很多次一些所谓的特别牛叉的程序员也会犯一些很愚蠢的错误。所以,剖析自己,列出不足之处,努力改进自己,才是正途。

编程是一种真正的乐趣,欢迎乐在其中。

“任何一个傻瓜,都写得出能让计算机理解的代码,但是,优秀程序员写出来的代码,能让全人类理解。” ——Martin Fowler

原文链接:http://ashisharya2003.blogspot.com/2010/12/10-effective-ways-to-become-good.html

译文链接:http://www.codeceo.com/article/10-effective-way-good-programmer.html


本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:小峰

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-03-01

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我们一直谈论“写代码”,但你会“读代码”吗?

    编程,又被称作“写代码”。这个说法有可能会带来一点点误解,让人觉得如何“写”是学习编程要解决的主要问题。但事实并非如此。尽管最终代码要在键盘上敲出来,但这个过程...

    Crossin先生
  • 我在想,究竟是什么让编程“隔行如隔山”

    重要的事情说前面。如果你没有时间读完整篇文章,那么也可以只看下面几句话: 成为程序员有不低的门槛,但学点编程没那么难入门。学不会可能只是你选错了教程,打开的方式...

    Crossin先生
  • 替换文件中的敏感信息

    Long long time no see.『每日一坑』栏目又来啦! 今天我们来做一个现实中有可能会碰到的问题: 替换文件中的敏感信息 问题描述 假设我们有一份...

    Crossin先生
  • 糟糕程序员和优秀程序员的区别?

    壹 实验是本能 作为一个优秀的程序员,独立永远是你自己最重要的武器。在遇到困难的时候多问问自己为什么,多进行实验来进行测试,这远比你直接去问更牛叉的老大哥们好不...

    企鹅号小编
  • 十个让你成为优秀程序员的有效方法

    作为一个IT行业的软件程序员,每天驱使我们日复一日的辛勤工作的,是来自我们对编程的兴趣和激情。但是要让编程变得始终有趣,我们必须学会坚持某些成为优秀程序员的基本...

    用户4962466
  • 糟糕程序员和优秀程序员的区别?

    软件蚕食一切,未来属于程序员。所以人人都想当程序员。但是并不是每个人都能当好程序员。在你做出决定前还是先看看自己能不能当好程序员吧。

    蜻蜓队长
  • 为什么有些领导要用代码的行数来衡量员工的工作量?

    计科专业在软件行业做过项目玩过产品,个人觉得如果一个领导能通过代码的行数来衡量一个程序员的工作量还算不错的,如果遇到一个不懂技术在意识里觉得技术都是一锤子买卖,...

    程序员互动联盟
  • 新手程序员必须要知道的10个秘密

    初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威。这样的故事实在是司空见惯,编程工作也不例外。 没有几个...

    小小科
  • 【编程指导】新程序员必须具备的十个基本技能

    没有几个学生能100%为自己的第一份真正的工作做好准备。如果你不想成为其中之一,请学学以下这10项无需手把手指导就能学会的基本技能吧! 1、版本控制系统(VCS...

    程序员互动联盟
  • 程序员编程障碍

    ? 编程效率障碍No.1:会议 最常见的抱怨是打断开发人员编码思绪的会议。如果老板信任该程序员,就会要求他们时不时地去那间数周甚至数年昏昏暗暗的会议室闲聊有关...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券