zoukankan      html  css  js  c++  java
  • 《转载》工作5年左右的程序员如何在职业瓶颈期内快速提升自己的身价?提升后如何有效变现自己的高质量技能?

    工作5年左右的程序员如何在职业瓶颈期内快速提升自己的身价?提升后如何有效变现自己的高质量技能?

      当一般的程序员工作5年左右后,往往会遇到事业上的一个瓶颈期:能力上已经达到高级开发,工资比上不足比下有余,而且至少能在所在城市站稳脚跟。

        不过根据行业现状,这类程序员再要向上提升,难度就不小了,具体表现为:不少人可能就在中小型公司间徘徊,工资或许有提升,但再也无法更高效地积累自己的经验和能力,或者就是,工作经验8年左右的程序员论能力和5年经验的没差多少。

        其实,大多数程序员都很勤奋,无法百尺竿头更进一步的原因不是因为懒惰,而是不知道方法,本文就将分享这方面的内容。正文开始。-------------------------------------------------------------

    1  在职业瓶颈期内的普遍表现,如果得过且过,或许就发展停滞了

       得过且过类型的程序员这里就不说了,相信大家都不是。

       不过我见到不少具有5年经验的程序员,他们都很勤奋,但他们在攀登事业更高峰时,或多或少地会有些迷失感。

        

        下面举些例子:

        1 小张当前处在一家规模不算大的公司里,也已经是高级开发了,也能在项目组里能独当一面,每天也很忙,总感觉在重复劳动,不知道后继该如何发展。

        2 小李在一家外企,福利待遇也不算差,工作也不能算累,能自由安排的时间也不算少。在公司里干的活技术含量不算高,比如用的是纯Java+JDBC,架构大多也就Spring Cloud,并发量也不多,数据库是MySQL主从,看着一些技术大牛很风光,自己也想学,但技术点太多,往往学着学着就放弃了。

       3 小王在一家互联网公司,每天工作压力很大,版本迭代很厉害,总感觉陷入了业务里,也不知道该如何进一步提升自己的能力,也不知道该进一步学哪些技能。

        上述只是举例,对此,大家需要认真对待职业瓶颈期。

        否则的话,或许会出现如下大家不愿意看到的结果。

        1 过了快速进步期,个人发展就停滞不前了,比如在公司里,8年工作年限的程序员干的活和5年经验的差不多,而且也体现不出年限高的优势。

        2 也能通过跳槽不断涨工资,但所在的公司规模始终不大,这里我无意歧视小公司,但大公司里程序员的眼界和格局普遍要比小公司的要好广阔。

        3 我目前在上海,上海的生活压力也不算小,而且随着程序员的年龄增长,就得面临结婚买房照顾父母小孩的压力,如果持续2,3年发展停滞的话,生活可能就会比较艰辛。

    2  大厂的高级开发和架构师一般得具备的功能

        解决这个问题时,我们需要直接面对靶心。

        

        比较直接但有效的解决方案是:提升自己的能力,在公司里挣更多的钱。再具体一点,大公司往往需要哪些方面的能力呢?本人最近几年工作的公司规模不算小,也接触了不少大厂的程序员,这里来说下我的体会。

        1   对高级开发而言,大厂的基本要求是技能达标,即能完成项目组的任务,但就这点远远不够。

        2   应该适当知道些配置部署方面的知识,比如能搭建一个Git平台管理代码,能用Jenkins或uDeploy工具搭建一个自动化部署平台,一旦项目部署到web服务器上有问题,高级开发还可以解决一些这方面的基本问题。

        3   技术是为业务服务,一旦业务出现了问题,需要能及时通过看日志,快速定位和排查问题,这就要求会些基本的在linux上查看日志的命令,比如grep,less, vi等。

        4 这点尤为重要,一般在公司里,每个人的工作都很忙,所以面对自己不熟悉的业务,从别人那边得到的帮助可能会很少,所以高级开发的学习能力一定得很强,一定得能通过查看代码或日志等方式,快速地熟悉各类业务和流程。 

        5 高级开发一般就需要能独当一面了,比如出现问题,高级开发就需要和需求方或测试方或其它组的人沟通,独立地解决问题,而不能事事再上报领导,请领导解决了。 

        而对于架构师,除了至少得有上述技能外,还得具备如下方面的技能。   

        1 不仅要保证系统的平稳运行,还需要找到系统系能上的痛点,比如性能上卡在哪里,或一旦当系统业务规模需要扩大,哪些当前的因素会成为瓶颈。

        2 找到痛点后,需要能独立地设计出方案,这个方案可能就不是仅仅是代码或数据库级别的,往往是分布式架构级别,比如如何搭建负载均衡组件,如何搭建缓存等。

        3 和高级开发相比,排查问题的级别需要进一步提升,比如对高级开发而言,可以通过debug代码来排查问题,但对架构师而言,就得通过debug现有的jar包来排查底层问题。举个例子吧,我最近就见到一位大牛通过debug Oracle JDBC的底层包,来排查数据类型不一致的问题。

        4 一些分布式的组件,一定得非常熟悉,得熟悉到了解到组件里关键jar包的底层代码。这里再举个例子,比如对高级开发而言,可能了解到消息中间件的用法就行了,但我知道的一位资深架构师,能通过mq平台包的异常,一眼看出是哪个里面哪个jar包报的异常,比如是某个jar包里的无界队列过长导致OOM了,或者是哪个jar包引用的日志组件和其它jar包冲突了。

         

    3  努力且方法得当,一切都有可能

        我见过不少资质尚可,但因为感觉高级开发或架构师的标准太高从而自暴自弃的,不过,我也见过(以及听说过)不少同学通过逆袭,最终晋级到高级开发或架构师的水准。

        1 小A,计算机大专,后来通过专升本和专业的软件培训,具备了从事软件开发的能力,第一家公司非常小。但他早上上班,晚上看书和看视频,还在网上租了个空间,自己实践Spring MVC,Spring Cloud,大数据以及分布式架构,经过3年努力,最终进了阿里,成为其中的高级开发。

        2 小B是上海一家二本学校的计算机专业学生,之前做了销售等和软件无关的工作,从事软件行业时,已经是28岁了,我记得他第一份软件工作也是一家小公司,入职后他不断和我吐槽,说他和22岁的毕业生做的是相同的工作。

        但他把这种压力当成了动力,也是不断学习不断实践。

        经过不断试错,最终他找了一个比较好的方向,AI里的深度学习,然后经过面试,成功入职一下做数据分析的公司,目前薪资碾压同龄人。

        案例讲完了,然后讲些能快速提升自己的方法:

        1 神枪手是靠子弹练出来了,软件高手是靠踩坑积累起来了。所以在公司里,一旦有了问题,不管是自己的还是别人的,一定得总结,包括总结问题场景,总结排查问题的方法(如何看日志,以及看日志里的哪些要素),以及总结解决问题的方法(比如如何处理jar包冲突,如何通过分区等手段提升数据库查询的性能)。

        以我自己的体会,我最近半年遇到的坑比之前3年的都多,但我确实感觉最近进步很快。靠实际解决问题是提升自己身价的最好办法,没有之一。

        2 一定得锻炼在linux方面的基本功,包括打开日志,以及在日志里根据关键字的找到上下文,并排查问题的本事。技术只有和业务结合,才能产生价值,在业务点方面,排查问题是绕不过去的弯,我见过身价不同的高级开发,在这方面的能力绝对是不一样的。

        3  完成本职工作外,一定得眼观六路耳听八方,在此基础上得迈开腿,多动嘴。

        具体而言,有人到组里来寻求帮助时,可以尽量帮忙,哪怕这个问题最终没解决,自己至少也能通过观察别人如何解决,从而提升能力。又如,遇到测试开了bug,就得多和测试沟通,争取快速地重现和解决问题。这样一来二去的,自己分析处理问题的能力提升了不算,还能提升自己协调沟通的能力,一举两得。

        4  学习的重要性就不说,这里说下学习的方法。第一还得见缝插针地学,第二,一定得通过看视频或书,系列地了解到这个方面的知识点,先面到点,别反过来。第三,一定得边学边实践,如果开发环境没有,就自己搭建。第四,一定得通过面试(未必要去)等手段检验自己的学习方向和成果,一旦出现偏差,得及时纠正。

        我就见过不少头脑灵活的人,就不断学不断面试,这类人学习的效率要远比闭门造车的人要高。 

        总结下,快速提升自己的方法,第一靠练,第二靠学,第三靠(通过面试)检验。

        虽然进阶没捷径,但如果效率高,也能缩短时间,下面给出个小窍门:到大厂实践。

        

        我这里无意贬低小公司,不过相比之下,大厂里处理问题的格局会大些,而且问题的种类和难度也会多,根据我自己的体会,在大厂,尤其是版本迭代快的互联网公司,提升能力的速度是不可想象的。

        不过这里问题又来了?如何进大厂?在我之前的博文里,有不少关于面试和写简历的文章,这些一定能帮助到大家。  

    4 分享下我见到的高效变现自己技能的方法

        我们通过辛苦学习,通过不断加班,是为了提升自己的能力,但更是为通过变现能力挣到更多的钱。下面就列些大家感兴趣的话题:如何变现技能。

        1 通过找到更好的工作,提升自己的工资。这是个不二法门。

        给出些上海当前的薪资待遇:5年java后端,如果能力好,2.5w+一个月,8年的,3w的不是问题,10年+的4w都算少的,5w+都有可能,而且如果运气好,还有期权股份等因素。

        有同学会说了,这是废话,技能高了自然工资就高,但我想说的是,很多大牛除了公司外,其它收入也非常可观。

        2 可以用自己的技能,写博客,出书,录制视频做系列课,可以到外面培训学校讲课,甚至可以做收入更高的企业培训。

        我有自知之明,我不算大牛,但我目前尚属勤奋。

        所以最近不断在写博客,也出了书:java web轻量级开发面试教程,反正上述挣钱的渠道我都尝试过。

        我的体会是:只要有能力,就可以打出名气,然后就可以通过同一份工作(比如写博文出书做讲课视频)挣多份钱,这样名气大了不说,还能提升挣钱的效率。

        3 能力强了,再通过写书写博文等方式,就能在业务打出名气了。这样讲课或文章的单价就提升了。

        这方面,最好是找个能包装自己的渠道,(比如网站或培训学校或开源组织),这样就能打出知名度,知名度有了,跳槽也好,出书也好,挣钱的速度就更快了。

         4 以自己的能力和名气去认识更多的人,人脉关系一广,接项目或者合作什么的就都有可能了。

         我见过这类大神,他们八面玲珑,到处接项目,然后自己做或外包出去,每月的收入非常可观。但我达不到这种地步,目前阶段还是在不断提升能力,靠技术吃饭。 非常希望在这方面有心得的大神来分享下经验。

     

    5 本文总结,版权说明和求推荐

        天道酬勤,靠自己的勤奋多少能换回些收获,但用对方法走对路,这点也很重要。本人最近接触了不少软件行业的朋友,也多次接到这方面的咨询请求,最近在这方面稍微有些体会,所以写下此文。

        本文的初衷是为了分享,在字里行间也带了些具有可操作性的方法,而且是在周末利用休息时间写成,所以如有有错处,也请大家包涵,如果大家看到稍有可取之处,也请劳驾点击下面的“推荐按钮”,大家的推荐,是对我的最大帮助。

        最后再次感谢大家看完本文。本文欢迎转载,转载时,请注明原文出处和作者。

    转载---https://www.cnblogs.com/JavaArchitect/p/9455003.html

  • 相关阅读:
    1063. Set Similarity
    A1047. Student List for Course
    A1039. Course List for Student
    最大公约数、素数、分数运算、超长整数计算总结
    A1024. Palindromic Number
    A1023. Have Fun with Numbers
    A1059. Prime Factors
    A1096. Consecutive Factors
    A1078. Hashing
    A1015. Reversible Primes
  • 原文地址:https://www.cnblogs.com/chenliangcl/p/9469367.html
Copyright © 2011-2022 走看看