A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


对于一个Java开发来说,编程技能毋庸置疑是很重要的。

但是,除了基本的编程开发能力,其他方面的能力也是体现一个程序员的能力的很重要因素。

单元测试

单元测试也涉及到很多技巧等,比如使用Mock进行单测、使用内存数据库进行单测等。

一个开发人员,要有写单测的习惯,也要掌握基本的单测写法技巧。这样可以尽早的发现问题。
版本管理

我相信基本上所有的公司的代码都会通过版本管理工具进行托管的,不管是Git还是SVN。

而且,现在很多技术都通过GitHub进行开源和共建的,版本管理工具的使用也是一个Java开发必备的基本技能。

版本管理也有很多学问在的,比如到底什么时候应该提交、提交的时候 Commit message 应该如何书写,如何解决代码冲突等都需要熟练掌握的。
构建工具

和版本管理一样,企业级开发的依赖管理也不再是那种原始的进行Jar包的导入导出。而是借助于像maven或者gradle等工具。

构建工具的使用同样重要,而且一个合格的开发人员,要掌握如何进行依赖冲突的检查、如何进行依赖仲裁等。
代码调试

有人调侃程序员,一半的时间在写bug,另外一半的时间在debug。这句话听起来挺扎心的,但是也恰恰说明了debug的重要性。

虽然说程序员花费一半的时间在写bug是有点过分的,但是,任何程序员的代码也不可能一气呵成,越大型的项目bug可能就会越多,在线下开发的时候,debug是最有效的问题发现和解决的手段。

代码调试其实比较简单,只要设置好端点,跟着程序一步一步的执行看效果就好了。只要学会运用IDE提供的工具就可以了。可以参考《Eclipse的Debug技巧》
问题排查与解决

关于问题排查,这个能力真的是非常非常重要的。

发生问题的时候,就是检验程序员能力的时候。这是最能区分程序员的水平的技能了。一个问题往往可能会涉及到很多个方面的知识。

阿里有一个神级人物,花名多隆。在淘宝初期,不管遇到什么问题,他基本都能解决。他之所以被称之为神,就是因为他的问题排查和解决能力。如果你能在两天内解决一个组两周都没解决的问题,那么你也会被称之为神。

很多时候,解决问题并不难,难的是定位问题。这会涉及到很多知识,知识储备很重要,但是,在知识储备还不够的情况下,至少可以从以下几个方面来提升自己的能力。

1、日志的查看

2、分析Java的堆栈信息

3、集群监控指标的查看
非开发技能

还有一类技能,可能就和开发完全没有关系的,我称之为非开发技能。这些技能往往决定着一个开发人员到底能够走多高。
目标导向

目标导向型的人,就是做事之前先明确目标,再寻找实现目标的方法,最后动用一切可以利用的资源通过各种方法来实现目标。

目标导向型的人,目标是明确的。

目标明确的人,做事的时候,不会轻易动摇或者放弃,为了目标能克服困难坚持到最后。

目标明确的人,做事的时候,会去思考、尝试实现目标的各种方法。

目标明确的人,做事的时候,会去发现、创造、借用一切能够实现目标的资源。

不断给自己设定目标,做一个目标导向的程序员吧。如果,你非要把目标导向理解为KPI导向我也不拦着。主要是有目标,为之而努力,我觉得就是OK的。
时间管理

对于任何人来说,时间管理都是很重要的,对于程序员来说,尤其重要,因为我们可支配的时间并不多。

如何正确的管理自己的时间,是一门很深的学问。有些人加班加点,甚至996的工作方式。但是最终还是得不到一个好的结果,这很大程度上是由于时间管理的不够好,大部分时间都在“瞎忙”。

很多时候,苦劳在功劳面前会略显沧桑。

一个程序员的一天会有很多事情要忙,在工作上,一天可能排了几个需求评审、设计评审、交互评审、TC评审等,还要排查问题,还要写代码,有的时候还要充当产品、运营、甚至客服的角色。在生活中,还要陪伴家人、充实自己,锻炼身体等。如何安排好自己的时间是十分重要的。

关于时间管理,我有个建议,那就是把自己的手上的事情排列好,一段时间只做一件事。
快速学习

在这个技术高速发展的时代,每天都有新技术在推出。一个好的开发人员要保证自己永远不会被淘汰,就需要不断的去学习。

而学习无疑是要花费很多的时间的。那么,快速的学习能力对于一个时间本就不多的程序员来说也是至关重要的。
英语能力

首先,我们的日常开发的代码都是基于英文的,目前很多技术也都是外国人发明的。也就是说很多技术刚出来的文档都是英文的。

拿最近最火的区块链举例,不管中本聪是不是日本人,他发布的区块链白皮书也是英文的,英语能力好的人可以马上学习到新的知识,英语能力不好的,可能看到的都是二手翻译资料了。

英语好的技术人员,靠翻译书籍也能赚很多钱。而英语不好的程序员,给变量命名都费劲。
科学上网

这一点我觉得对于开发人员来说是至关重要的。就像前面那条英语能力一样。很多资料都是发布在国外的网站上的。

无论是Google、维基百科这些都需要科学上网。而且很多国外的网站,如StackOverflow、GitHub等科学上网也能更快的访问到。

上面我列的这些技能,就是一个程序员木桶的各个木板,有短板没关系,只要你找到自己的长板,并且在自己的长板周围排列起来其他的相应长度的木板即可。
鸡汤时间

上面提到的技能,他们之所以被称之为技能,就是因为他们是可以锻炼出来的。包括理解能力、表达能力还有学习能力。都是可以锻炼的。

所以,开发者们,不要只顾着闷头撸代码。没事儿也要抬头看一看。补一补自己这块木桶中各个木板的长度吧。这样才能使你走的更远。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马