在说程序员提升自己前,先说些不好的提升方法。
1 漫无目的地看书和运行代码,或者看网上的资料。这总比不学习要好,但漫无目的地学,对实际工作中的帮忙很有限。
2 到处找人帮忙,但不复盘,这样以后遇到同样的问题照样不会。
3 有了进步,但仅仅局限于在当前公司里干好。其实程序员通过跳槽后,涨工资的幅度会超出最初的想象。
4 仅仅做技术方面的提升,不想着如何通过面试跳槽变现,或者是仅提升技术,而忽略变现技术的最要紧方面:面试。
在下文里,就将围绕短期中期长期提升这三个方面,说说程序员自我提升之道。
比如在当前工作里,不会用技术开发业务,或者出了问题不知道怎么解决,或者关键技术不会。
1 首先是要应急,即在规定的时间内按质量完成开发。遇到不会,问别人时注意技巧,别直接说xx模块该怎么做,而可以问,我可以参考哪些模块的代码来开发这个模块?
一般代码都抄来抄去,要找到类似的代码不难,然后再根据业务,稍做修改,如果在你开发的业务里有你不会的api,你可以问,要实现xx技术,我可以用什么类什么方法?这个方法我可以从网上什么地方找到用法介绍?或从现有代码的什么地方找到用法?
总之在技术薄弱的情况下,可以问从哪里可以抄?抄到一半不会抄时再去问别人,这样你总写了点东西,有代码的基础上问别人,总比什么不写问别人要好很多。
但是通过问别人解决实际问题以后,你要注意,不仅需要维护人际关系,别人帮你了,你请人吃顿饭也应该,但还要积累技术,比如别人告诉你jpa的用法以及流程以后,你需要从头到尾看一遍。同时,你更要掌握解决问题的能力,比如知道可以从哪里找资料,可以从哪里抄到代码.
当然你态度要好,比如早去公司晚走,别人解决问题时你在一边看。这样估计你开发了3,4个业务模块后,就能知道本项目组里做开发的方式,而且还能自己解决一些基本的问题。
2 然后是提升解决问题的能力,同时扩展技术面。对程序员来说,提升能力的最好方法是解决问题,而解决问题离不开看日志和debug。
比如你的程序出了问题,你可以通过在本机debug,打断点逐步分析找到问题。至于debug的方法和技巧,哪怕不会,问别人一两次应该也能掌握。
再如测试系统或线上系统出了问题,你需要用linux相关命令去看日志(系统一般部署在linux上),你首先得掌握看日志的步骤,不过这也是能熟能生巧的事情。
会debug和看日志以后,项目组有任何问题,你尽量参与,小到空指针,大到组件调试,当前哪怕你不熟悉,你或者问人,或者查资料,把这个问题所在的技术点全过一下,然后学会怎么从日志里分析问题,这样不用1个月,你就直接能从中受益,而且还能熟悉项目的业务流程,这是一举两得的事情。
3 当你不仅会开发业务,而且能排查基本的问题后,你扩展看下其他技术,比如可以看maven打包部署项目的流程,数据库配置的技能,分布式组件的用法,以及项目运维的技能。
这块你如果不知道该继续怎么看,就看你后面一份工作的面试要求,比如你要转资深开发岗,你就看人家公司的招聘要求,从中一定能看到要求的技术,以及要掌握到什么程度。
在这种情况下,你一方面去网上看相关概念,另一方面在你项目里看看这个技术怎么用到。就拿dubbo举例。一方面你可以到网上看dubbo的概念,组件以及底层源码,另一方,你可以看你项目里怎么用的,最好再解决些相关问题。这样日积月累,不用半年,也就3个月,估计技术上就能突飞猛进了。
4 但是,在这个阶段,你别停留,需要找个更好的平台发展。相关地,你要掌握简历和面试相关技巧,这块和主题无关,但你可以参靠我的如下文章。
程序员简历应该怎么写?本人在互联网大厂和外企做过技术面试官,也有过校招和招聘应届毕业生的经验,所以自认为在这个问题上有一定的发言权