程序员技术提升之道

在说程序员提升自己前,先说些不好的提升方法。

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 但是,在这个阶段,你别停留,需要找个更好的平台发展。相关地,你要掌握简历和面试相关技巧,这块和主题无关,但你可以参靠我的如下文章。

程序员简历应该怎么写?本人在互联网大厂和外企做过技术面试官,也有过校招和招聘应届毕业生的经验,所以自认为在这个问题上有一定的发言权程序员技术提升之道https://mp.weixin.qq.com/s?__biz=MzIxODcxMzE1Nw==&mid=2247484165&idx=1&sn=ca62d5127b7d4fba0c90bffdd5caa2ad&chksm=97e71e2fa09097396638500422b8260e032b0c4484287d0dc1b4addb4a23b37dafbcea24cf52&token=1014513393&lang=zh_CN#rd作为一个Java面试官,面试中我会问哪些问题先自我介绍一波。1 在大厂和外企,有9年(12年开始的,到现在快10年了)java技术官经验。2 出过Jav程序员技术提升之道https://mp.weixin.qq.com/s?__biz=MzIxODcxMzE1Nw==&mid=2247484132&idx=1&sn=5407c280b61c3b88337c0b7b0be007b6&chksm=97e71fcea09096d81eae0abb5134579746ba1325cc4dcbc3082c2db9b99ae2fc115973629b09&token=1014513393&lang=zh_CN#rd

当你进到一个能提供高级技能实践机会的公司后,又可以重复上述流程,继续提升自己的技能和薪资了。

下面就以我自己举例,说下我是怎么适应大厂技术开发岗的。

1 我当时是从一家外企进入到一家互联网大厂,在外企的时候,我的java技能仅限于单机版的增删改查,连Spring boot也用不熟悉,spring boot里的aop,ioc,logback等组件,也仅仅是知道而已,一些分布式组件,比如redis,dubbo,Kafka等,只是听说,linux上基本没操作过,项目运维能力聊胜于无。

2 进入互联网大厂后,在平时开发中就直接要用分布式组件,而且需要直接面对高并发的需求。所以刚进大厂时,我只能是咬牙硬撑,不过幸好我遇到了一个很好的人,就我师傅。

刚进大厂的时候,在接需求时,大多数时候我只能硬着头皮接下来,因为里面的redis等技术我不熟悉,更别提限流集群等开发要点了。

3 在哪个时候我只能到处找可参考的代码,或者到处装笑脸找人问。这样过了2个月,我至少能保证能开发好交给的任务了,但分布式这块,我依然不熟。

这个时候,只要有线上问题,我都会去关心一下,人家解决后,我会看日志复盘下,这样做了1,2个月,我好歹能知道排查基本的问题了。然后再看相关的代码,我就知道分布式技术怎么实现高并发业务了。

4 然后我就趁着做开发和业务上线时,多和运维组打交到,熟悉各种linux部署和排查问题的技能。当然中间也比较苦,各种加班就不说了,遇到不熟的技能还得到处查。

这样过了半年,我就感觉自己的能力有了显著的提升,至少能从高级开发升级到资深开发,后来我就凭借从大厂学到的分布式高并发等技能,成功地应聘上外企的架构师岗位。

最后在做个总结,如果感觉自己不知道怎么提升,可以直接从如下方面找到方向。

1 明确可以从哪里找到可以抄的代码,当然不能直接抄,但如果有可供参考的代码,改写起来或者再问人,总有一定基础了,这样也能提出明确问题,明确改怎么继续做了。

2 一定要在机器上搭建好环境,包括本地环境和连接到远端数据库服务器的环境,这样就能通过运行知道问题,从而能根据问题的提示继续开发下去,而不会一头雾水不知道后面怎么做了。

3 一定要熟悉本地debug,看产线日志等方法,这些方法本身不难,但熟悉了debug,知道怎么看日志,外加搭建好环境,这样就能通过不断尝试来解决问题了。

4 一定多参与各种问题的解决,参与后通过复盘提升。

上述做法不难,都是体力活。方法得当,程序员就可以通过加班,多尝试等笨办法来提升了,这要比能力差而且不知道怎么做的程度,不知道要好多少了。

如果大家想进一步了解写简历和面试方面的文章,可以关注我。

 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年12月23日
下一篇 2023年12月23日

相关推荐