金三银四的跳槽季终于结束了,这两个月里有许多的小伙伴(包括一些牛牛朋友),都在找工作,有的找到了自己喜欢的岗位,有的还在一直坚持找。但是,今天我不是和大家谈论跳槽的,我是想说说,我们应该具备什么能力,以便更高效的处理工作,更快的提升自己的能力。
编码能力
对程序员来说,编写代码的能力应该是最基本的一种能力了。这里说的编码能力不仅仅是说你会写代码而已,在工作中也遇到过形形色色的同事,自然而然的也看到许多同事“独有”的风格。看过同一个Java文件的多种命名方式(有下划线,有驼峰命名,有拼音,有全大写),到最后系统上线,回过头发现某个Java文件如同动物园一样有形形色色的动物存在。编码规范,是一个程序员最基本的要求。很多人还有一种误解,认为编码中的注释是可有可无的,往往忽略的地方确实阻碍你成长的致命要素。形成良好的规范,写出好的代码这才是好的开始!
学习能力
显然,目前的IT圈不好混了,假使你没有学习的能力,被淘汰是时间问题。古人云:逆水行舟,不进则退。确定自己的目标,然后才勇往直前,没有目标的学习,只是浪费时间罢了。其次,如何学习?现在不管学习哪一个技术点,成形的技术基本都有文档,正确的做法是去看这些文档,谷歌(必应or百度)对应的文档即可。而往往有的人喜欢去群里问,XXX会不会XXX?求大神指导XX?我想回答如下图:
调侃归调侃,个人认为真正的学习能力应该是,遇到问题,找到对应的文档或是博客,自己得到的是一种解决方案,而非问题解决了就觉得万事大吉了!往往遇到问题,在解决问题的过程中,就是你学习的一个过程。
英文能力
前段时间,有个朋友和我聊到最近在看英文版的Apache Ignite,我当时就说了一句,有中文版的,为什么要去看英文版的呢?我朋友回答我说:习惯了!当时,有点小惊讶,居然还有人喜欢阅读英文版的资料。之前在群里也看见很多人问及的一些问题,其实按照提示的英文即可得知是哪里出了问题,可无奈英文水平有限。所以,英文水平的高低,在一定程度上还是或多或少的影响你的工作进度。学习英语,花点时间,贵在坚持。
需求分析能力
对程序员来说,理解需求就可以完成合格的代码,实现客户真心想要的功能。一般来说,进行项目开发中,可能是客户提出需求,也可能是市场部或运营部提出的需求。但对于研发部来说,通常看到不是一个确切的完整的需求图,拿到的需求可能就是一些单一的功能点。客户由于非技术因素多一些,他们可能很难提出完整和清晰的需求,或者说专业性的性能需求。所以程序开发者必须正确理解用户需求所处的环境,并针对性做出需求的分析。
DRY原则
DRY是一种原则,意思是Don't Repeat Yourself。为什么要说这个原则呢?这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,此时写一个自动化脚本来将这些工作自动化,以提高工作效率。
写在最后:简要的说了4个能力加1个原则,本着共同进步的原则记录这些感悟,如有不足欢迎指点,善于总结才会走的更远,前路茫茫,不忘初心即可。
最代码伊成