专栏首页Java架构师学习优秀程序员都具备的五点特性,这些你都有吗?一、 编程能力二、面向对象思维能力三、软实力(学习能力,沟通能力,表达能力)四、利用工具的能力五、创造力(解决问题的能力)

优秀程序员都具备的五点特性,这些你都有吗?一、 编程能力二、面向对象思维能力三、软实力(学习能力,沟通能力,表达能力)四、利用工具的能力五、创造力(解决问题的能力)

作为一个在it行业混的老鸟,一直有一个疑虑:自己究竟要做到什么程度才算得上优秀?一个优秀程序员(指工资比一般程序员高的那种)最重要的能力是什么?写代码的最高境界是什么样的?

带着这个疑虑,我总结了以下几点:

一、 编程能力

不用多说,作为Java程序员,精通Java基础是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。

我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首 字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这 个问题的严重性。随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,缺少最基本的职责素 养。我经常把代码必须成程序员的孩子,你就是是孩子他爹,孩子他妈,是有感情的。对你自己的孩子,你能不仔细呵护吗?你是称职的父母吗?

另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。

思维的条理性,写代码之前,先简单计划一下,用自然语言把流程写下来,用于整理实现思路。不要看了需求或设计之后,马上就敲代码了,敲完代码马上 就debug。花点时间思考,敲代码只是最后一个很简单的工作,不要把自己变成一个代码打字员,编写边想,写了删,删了写。安安静静把实现过程想清楚,在 脑子里先实现一遍。再去敲代码,水到渠成。

二、面向对象思维能力

如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如 对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模 式,策略模式,观察者模式,模板方法模式,命令模式等等。

优秀程序员都具备的五点特性,这些你都有吗?

三、软实力(学习能力,沟通能力,表达能力)

在IT也混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首 先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握 几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。

要想系统的学习一门技术或工具,看书是最好的方法。看完后,然后上网找相关资料,进行深入学习。学习要抓紧一切可以利用的时间,比如电脑启动要花1分多钟,旁边放一本书,可以看上几页了。公交车上,地铁上也可以看。

当然,不能只学习技术,要经常练习自己的软技能,比如沟通能力,表达能力。你可以把自己学到的东西,解释给自己的同事听,既加深了理解,又增进了同事之间的交流。学习的最高境界就是你能够把学到的东西解释给别人听,这才说明你理解了。在学习心理学上,称之为构成主义。

优秀程序员都具备的五点特性,这些你都有吗?

优秀程序员都具备的五点特性,这些你都有吗?

四、利用工具的能力

工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我 觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃 压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。

优秀程序员都具备的五点特性,这些你都有吗?

五、创造力(解决问题的能力)

大部分人认为东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都 没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员 经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。

打破这一思维定势的首先的一个办法就是在面临一个问题时,首先想到的是“没有不可能”,或是“一切皆有可能”,前面那个是阿迪的广告语,后面是李 宁的。只有这样去想,才能寻找解决问题的别的出路,即使最后我们试了很多种办法,还是只有着一种解决方案,但我们在这种寻找解决方案的过程中,常常会产生 很多好的想法,这样才会使我们真正深刻思考一个问题。

图文里的技术如何学习,有没有免费资料?

对Java技术,架构技术感兴趣的同学,欢迎加QQ群619881427,一起学习,相互讨论。

群内已经有小伙伴将知识体系整理好(源码,笔记,PPT,学习视频),欢迎加群免费领取。

分享给喜欢Java,喜欢编程,有梦想成为架构师的程序员们,希望能够帮助到你们。

不是Java程序员也没关系,帮忙转发给更多朋友!谢谢。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员的发展路线

    我见证过许多的程序员的成长,他们很多人在进入成熟期之后,技术上相对较高,一般项目开发起来比较自信,没有什么太大的困难,有的职位上也有所提升,成了项目经理、设计师...

    Java架构
  • 了解这些内容,就能完成程序员到架构师的转变题文章源码分析专题:45天高性能、高并发:60天高可用性、可扩展:45天性能优化:30天团队协作效率专题:30天双十一电商项目实战:30天

    当你点开这篇文章,也许正是你踌躇不前的时期,职场生涯正处于迷惘阶段,不上不下。你可以选择点击右上角,关上一扇窗,但上帝不会为你打开另一扇门,因为钥匙在自己手上。...

    Java架构
  • 一位阿里架构师给每个程序员的小建议

    1 想清楚,写清楚,说清楚,才是真正的清楚! 2 多花点时间沟通清楚需求,才能把握正确方向! 3 修复需求错误的成本是代码错误的几十倍! 4 程序员最大的坏习惯...

    Java架构
  • 别在看不起女程序媛了,一个高颜值女程序媛的日常

    今天这篇文,意义特殊,是我的一个迷妹程序媛-祈澈姑娘写的,她发给我后,我看了通篇,感觉写的很真实,而且又是记录女程序媛的日常,比较少见,所以我很有兴趣,相信大家...

    一个程序员的成长
  • 让程序员彻底疯狂的压力

    格子衬衫、粗框眼镜、浓重黑眼圈构成了程序员的群体印象。“IT男”单一标签的背后,是一个数量接近200万的从业者群体的工作日常和生活梦想,他们的生存状况如何?高压...

    java架构师
  • 程序员最讨厌的事

    Java小咖秀
  • 程序员的IDE到底是浅色主题好还是深色主题好?

    这完全是个人习惯问题了,单从健康的角度考虑没有过多的争论浅色主题对眼睛会好一些,这在科学研究上早已经有了定论。

    程序员互动联盟
  • 优秀程序员的七大特征,你具备几条?

    程序员的脾气通常很大,常常会和客户、同事,甚至老板在程序问题上发生争执。优秀的程序员能够站在对方的立场上想问题,能理解客户的无知、初级程序员的无能、老板的无奈,...

    华章科技
  • Java面试专题之一:面试官问你,为什么选择做一名程序员?

    首先,要明白面试官问你这个问题的目的是什么,他这么问,无非想了解你的技术功底和对技术热爱程度,想知道你是半路为了谋生不得已才选择呢,还是自己本身喜欢程序员这份工...

    用户1289394
  • 优秀的程序员,必须懒惰

    我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔。26 岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭、害怕...

    养码场

扫码关注云+社区

领取腾讯云代金券