美文网首页Java 程序员Java
架构师成长之路:程序员跳槽加薪,该如何规划?

架构师成长之路:程序员跳槽加薪,该如何规划?

作者: 程序花生 | 来源:发表于2021-09-24 14:46 被阅读0次

    最近在一位老朋友的要求下,帮他表弟做了个跳槽加薪的规划。

    我很少做这样的规划,因为通常都是费力不讨好的,你做了规划,他也不一定按照你说的去做,或者是很难坚持去做到,最后就往往演变成埋怨,里外不是人。

    但是朋友再三要求,只好破个戒,大家也帮我参谋一下,谢谢啦!

    为保护个人隐私,这里姑且称为 程序员A 吧。

    一:程序员A的基本情况

    1: 现状

    男,25,大专,工作3年,程序员,在北京某国企下属企业工作

    目前薪资15K

    2:计划目标

    预计学习准备半年,明年3月份跳槽

    目标行业:互联网公司

    目标薪资20K

    这些都是程序员A告诉我的一些基本信息和想法。

    二:我对程序员A的摸底评测

    拿到程序员A的简历,感觉确实有些弱,心里寒意陡升。为了能更好地给出规划建议,我决定对程序员A进行一次技术面试,详细地摸个底。

    摸底评测的情况如下:

    1:业务方面

    我让他讲了最近参与的3个项目的业务,发现:

    (1)项目的业务都比较简单,基本就是信息记录加上一个简单的业务流,业务中没有明显的亮点,也没有明显复杂的重难点业务。

    也有可能是因为程序员A对业务理解不深入,讲不出来,反正讲出来的东西,给人的感觉就是很简单。

    (2)程序员A在其中参与或负责的业务,基本都是一些边缘业务,或者是信息记录型的业务,从开发角度说,就是在增删改查的基础上,加了点业务的处理。

    从这个也可以看出程序员A在项目团队中的作用和地位,明显不是处于团队C位的,顶多算是一个基本的开发人员,估计算骨干开发都比较勉强。

    2:技术方面

    他简历上主要的技术栈是:

    Springboot + SpringMVC + Spring + Mybatis + SpringCloud + Redis + Kafka

    我按照他简历上写的技术,挑主要的几个详细问了一下,情况如下:

    (1)Springboot

    会基本的开发使用,但是稍稍问得深一点,就卡壳,比如:

    自动配置的实现机制、如何自定义自己的起步依赖等,基本都不会。

    (2)SpringMVC

    只让他说了一下请求到达后端应用后,SpringMVC处理的一个基本流程。

    对这个问题,磕磕巴巴地回答了一些,算勉强60分吧。

    (3)Spring

    也只问了一个问题,让他说说对IoC的理解,回答非常浅,基本只懂个皮毛,原本想再深入问问IoC的实现机制,甚至源码级别的问题的,就通通没有问了。

    摸底嘛,知道他目前的水平情况就可以了,也没有必要难为人家,容易尴尬。

    (4)Mybatis

    没问,这个基本上就是一些开发的事情,就跳过了

    (5)SpringCloud

    其实是写到简历上,唬人的,谁让SpringCloud这么热门呢。

    他实际上只用了 Feign + Ribbon 进行远程调用,没有做过微服务,也没有用过SpringCloud中其它的技术。

    问了他FeignClient使用的方式,限制,以及Feign调用的实现流程。

    基本上只能回答FeignClient注解的基本使用,其它一概不知。

    问了他Ribbon的重试机制和配置。

    基本上一概不知。

    感觉,对于SpringCloud,基本就处于完全不懂的状态。

    (6)Redis

    也只问了两个基本的问题,然后问不下去了。

    先让他说了说Redis的持久化机制,对比AOF和RDB。

    这个勉强能说一些,不全,很多关键点没有说到,可以算个40分吧

    然后让他说说Redis的单线程模型。

    这个也勉强能说一些,讲到了多路复用机制,就问他,多路指什么?复用的是什么? 这就挂了,开始胡诌了。

    后面又问了一些,比如:哨兵选主、数据丢失、集群故障恢复 等等的,基本一无所知。

    (7)kafka

    面到这里,心里已经凉透了,就没有再问了。

    3:摸底小结

    现状很不乐观,业务参与不深,技术浮于表皮。

    对于项目中用到的各种技术,基本只会使用,对于原理、机制等稍深入些的内容,都不太明白,确实是初级小白的水准。

    要想达到他的目标,怎么也得达到中级开发人员的水平才行,任重而道远啊!

    三:我对程序员A的规划建议

    1:用三个月把他主要技术栈里面的几个重点技术,深入的学习一遍。

    不仅仅要知道怎么开发,还要理解背后的原理和机制。

    我给他挑了几个重点:Springboot、Spring、Redis、Kafka

    2:完成前三个月的任务目标后,花两个月来弥补其它核心必备的技能

    我给他挑了几个重点:

    (1)Java虚拟机

    (2)设计模式:这个不用都看,到时候给他挑常用的几个,十个以内就可以了

    (3)数据结构和算法:这个也不用看太多,把常用的几个掌握了就可以了

    (4)如果还有时间,可以加上 数据库 或者 Java并发编程的部分知识,时间不够,就算了,可以后面再来加强。

    3:最后一个月,就是针对性的准备了

    核心技术的原理、机制等的复习

    常见面试题的准备,通过面试题来查漏补缺

    4:眼前的目标是,让他花15天来较为系统、深入的学习Redis,然后我检查,再调整下一阶段的规划。

    目前他们项目不紧张,又是国企背景,基本上晚上8点后都可以学习,周末双休,所以,学习时间还是比较充足的,这算是一个有利条件。

    目前他已经开始按我的规划执行了,只不过能坚持多久,执行到什么程度,就天晓得了。

    等他完成Redis学习过后,我检查看看,就知道他的执行情况了,到时候再来跟大家汇报。

    不知道大家对这个规划怎么看,帮我参谋完善一下吧! 有什么问题或者建议,尽可评论留言,谢谢大家!

    作者:CTO说
    链接:https://www.toutiao.com/a7005829018255802883/?log_from=96ece2783ed98_1632465783334

    相关文章

      网友评论

        本文标题:架构师成长之路:程序员跳槽加薪,该如何规划?

        本文链接:https://www.haomeiwen.com/subject/kfjzgltx.html