您的当前位置:首页正文

Java程序员辛勤工作7年被裁,背后的思考与总结

2024-11-29 来源:个人技术集锦

前言

前段时间,做Java后端开发的杨明被公司裁员。在这家公司,他已经工作了7年的时间,然而薪资还停留在7k。

找工作的这段时间,杨明在期望薪资那块儿没敢多写,就填了1万。其实对于程序员来说,7年工作经验,薪资应该远不止于此。他要价1万,一点也不多。

然而,两个月过去了。面试了4家公司,结果都是让回去等面试通知。在家一直等着对方的回信,可是一周过去了,连个电话、短信也没接到。直到去第5家公司面试,公司面试官直接跟他说:你的条件跟我们公司的岗位要求不是很符合。

杨明感觉很懵,怕这次面试又折了。

就直接问了面试官,是哪里不合适。

而面试官也耿直地给出理由:

杨先生,从您工作经验来看,我们公司是很满意的,也需要这样的人才。**可是除了您以往的工作经验和薪资水平却不成正比,让我们难以看到您能产生的价值。**尽管这样的观点可能会有点片面,但确实是这么个情况。

这是一个很现实的问题,尽管你要求的薪资并不高,但是你的工作经验和你的薪资水平,会透露出你的能力。

如果你的能力达不到,不能给公司解决问题,那么即便是给你4k,老板都会觉得多。

职场中,你需要积累核心竞争力

如果你是依附于一个系统,那么你的作用就仅仅只能依赖于这个系统内部的评价,而无法达到你自由发挥的地步。不管是处在什么行业什么位置角色,学习能力才是一个人终身的竞争力。

如果希望自己在随着年龄越来越大的过程当中,不会被系统和单一的评价体系所抛弃。那么,就一定要在早期就确立好自己,在职场有限的生命周期当中需要获得的核心能力提升究竟是什么?

也就是说,如果我们假定你有一日会离开这个体系。你的最终目的就是,能够独立构建一个属于自己的运作机制跟评价系统,那么也就注定了我们在职场工作的过程当中,非要积累的核心能力。并不是这个机构跟系统要求我们的评价体系和能力,而是我们自己给自己设定的一个系统和评价机制和能力。

作为有7年经验的杨明而言,7年的时间,薪资一直停留在7k,这样的人是绝对不能要的。因为没有进取心、得过且过。HR一眼就看出来了,会直接把他踢出局。

只有在职场上,积累属于自己的核心竞争力,才能收到面试公司的欢迎。

那么对于我们程序员来说怎样提升自身的核心竞争力呢?

Java程序员入门容易,进阶很难,想要在竞争中保持优势,脚踏实地的同时也要仰望星空规划自己的未来。时间在流逝,年龄在增加,你期望的薪水也在不断增多,你总得让自己能力持续增加以配得上想要的收入吧。

从初级的Java程序员做起,就要注重修炼自己扎实的基本功,开阔工作思路多思考需求背后的目标。不论是业务还是技术都要多问为什么,在完成工作的前提下寻根溯源是让个人快速的提升的有效方法。

另外,在纵向的积累沉淀自己技术的同时,横向扩展自己的知识面。有自己深入的知识领域,同时又有广阔的知识面,是个人竞争力的很好体现。

最后,勇于挑战困难的工作,提升自己的沟通能力,思考技术发展趋势,学着从业务角度进行技术规划,并学着做好技术团队的管理与激励。

1、初级 Java 程序员的核心考核要素

这个阶段的候选人一般都刚加入工作,工作时间不超过 3 年,对于这一部分候选人,公司的需求通常是解决一些基础的业务问题。他们会考察应聘者的基本功是否扎实、工作思路开阔。以下是一份典型的初级 Java 工程师的 JD:

扎实的基本功

从任职需求上看,面试官对于候选人的期望主要掉现在扎实的计算机理论基础,熟悉面向对象编程,了解常用框架等等。「因为这个阶段,公司所需要的 Java 后端开发,主要是为了解决一些基本业务功能的实现,扎实的基本功能够帮助候选人更快、更好地熟悉业务」100offer 的人才顾问 Tony 如此概括这个阶段的公司需求。因此,在这个阶段,即使是非互联网公司的候选人,也能得到一些面试邀请,表现突出,则可成功转行。

(上图为工作1年,曾在某硬件公司任职的候选人)

工作思路开阔

在某独角兽企业带领一个业务方向的技术 leader 陈程为我们描述了这个阶段的 Java 程序员最具竞争的力的品质:能够站在业务的角度去思考问题。

这些品质的 Java 程序员直观上的表现就是,不会单一地去思考需求,而是会考虑需求背后的目标。「这些特质其实没有那么难以锻炼,不是孤立地处理问题,多和产品经理沟通交流,就很容易培养出从业务角度考虑技术开发的意识」。陈程觉得这个阶段的程序员反而是最好提升的,「害怕的就是,你不愿意去做这些沟通,闭门造车这种事情,其实不是程序员长期规划中的一个好习惯。」

2、高级 Java 程序员考核要素

这个阶段的 Java 程序员不仅要熟悉 Java 语言本身,公司对候选人会有进一步的要求,具体表现在能够快速的进行工作的输出,能够独立负责小系统或者系统群。在这个阶段,公司在考察工作经验和项目的同时,还看中的是你解决问题的思路和方式。

这个阶段的JD要求如下:

纵向的技术沉淀

对于技术沉淀的考察主要是从项目经验中来,通过对项目经验的考察过程中,观察候选人是否能够把工作内容转化成自己的技术能力或者系统能力。

在 17 年收获 30+ 个面试邀请的专科生王朋依靠着他在大型项目中的技术积累,在 100offer 平台上收获了包括阿里巴巴、网易等在内的 36 个面试邀请。

(候选人王朋在100offer上的具体情况)

横向知识面的拓展

除了纵向的技术沉淀外,在这个阶段,作为系统群或者项目的负责人的横向知识面也是非常重要的考核因素。横向的知识面一方面包括技术上的,表现为不仅能够有架构上的整体认识,还能利用技术组件解决一些比较专业的问题。另外还包括业务上的,比如是否能够在解决具体的需求同时,考虑到整体业务线上会涉及的各个环节,提前考虑并且部署这些环节会出现的问题。

3、资深 Java 程序员考核要素

先来看这个阶段的 JD 要求:

JD 中除了一系列的 Java 架构、生态体系上的要求外,又增加了「技术发展趋势」、「沟通能力」、「勇于担当」等关键词。这些关键词背后的诉求其实也侧面反映了这个阶段的 Java 程序员需要承担的工作:负责一个业务方向或者业务群。

业务角度进行技术规划

除了扎实的技术功底外,能够结合业务方向进行技术规划和有效管理技术团队,保证团队产出成为最重要的两个因素。怎么样可以做到从业务的角度进行技术规划,这里考验的就是你能否发产品经理提出的每一个孤立的点的逻辑和目标系统的建立起来,并且能够在资源有限的情况下,争取到最优的解决方案。

技术团队的管理与激励

如何在团队成员有限的情况下,完成需求量大的开发需求;如何能够更好地让团队中的程序员发挥作用,建立有效的沟通反馈机制等等。这些都是作为这个阶段的 Java 程序员或者说是技术经理无法避开的问题。

从这些建议中,我们抽象的看,整体来说就是作为一个 Java 程序员「宏观」能力和「微观」能力的把控。这两点需要你不断的循序渐进,一步一个台阶地走上去。

从初级程序员提升到高级程序员除了时间和经验上的积累,同样需要的是其能力上宽度和广度的体现。任何做程序员的,真正是对技术热爱的,谁会甘于敲敲代码混日子。而架构师的能力涵盖了一切建立在业务代码之上的技术能力,从最初的敲代码,到熟悉代码,再转变为造代码,造方向,才是一个程序员的进阶路程。以下是我花时间收集整理出来的架构学习路线。希望对各位能有帮助。(文末有彩蛋)

1、开源框架解析专题

2、架构筑基专题

3、微服务架构专题

4、高性能架构专题

5、团队协作开发专题

6、B2C商城项目实战

显示全文