更多内容请关注“程序员求职之路”公众号,有机会获得福利大奖哦!
有一个案例与大家分享。已经工作5年的程序员小辉在公司一直做着重复的业务开发工作,因此他想换个工作试一试。近段时间小辉得到了一次面试机会。已经只剩终面的他,以为面试能过,自己能胜任这份工作。意料之外收到的结果是自己被PASS了,公司录取的是一个3年经验的程序员。对此小辉疑惑不解,为什么公司愿意录取3年经验的程序员而不是经验5年的自己?
通过市面上的招聘信息发现,企业更愿意招聘3年开发经验的程序员。以百度公司为例,BOSS网站上的招聘要求至少需要3年以上相关开发工作经验。同时招聘3年经验的岗位比5年经验的岗位多。
因为在这个技术更新迭代飞速的时代,5年经验和3年经验相比并没有什么优势。3年经验的程序员虽然经验比不上5年经验的程序员,但他工作更有冲劲,发展空间和潜力更大,所以公司更愿意选择3年经验的程序员。
你的5年经验够惊艳吗?如果在3-5年只会CRUD,没有潜心去研究深层技术,技术储备少,没有达到资深水平,那等到工作经验5年时会处于一个尴尬的处境。去面试面试官问你架构不懂,源码不懂,框架也不懂,没有达到面试官期望的能力,势必被3年经验有潜力的年轻程序员所替代。
虽说「面试造火箭,进去拧螺丝」,但公司招聘5年经验程序员的期望可能真是要你具备「造火箭的能力」。对5年经验的程序员面试官考核的能力主要是以下三点,请仔细查阅。
每个阶段的程序员强调基础,但每个阶段的侧重点是不一样的。5年以上经验的程序员更强调技术和底层源码的实现原理。
基础能力包括数据结构和算法、操作系统、计算机网络、设计模式和面向对象思想。
这些东西是贯穿于整个软件开发过程,是核心。所谓万变不离其宗,这是内功。如果没有牢固的基础,上层建筑无法巩固。
有些程序员是为了工作而工作,只会敲代码,深层理论一概不知,闲余时间不会去做研究;另外一部分程序员除了写代码之外,还热衷于研究各种技术去实现细节,通过看了N多本书、线上报培训班、写博客、在Github上分享技术。
显然可见,不只会写代码,更懂得源码实现原理的后者基础扎实。两者去面试同一岗位时,面试官会毫不犹豫地选择后者。
规范能力是把日常工作变成固定的流程,形成固定的规范。遵守编码规范,是一个合格程序员最基本的要求。不仅是为了方便存储和项目进展,也是为了团队和公司。
但很多程序员写的代码非常杂乱无章。在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。估计10天后,他自己都无法看的懂。可悲的是,很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,这种行为缺少最基本的职责素养。
5年以上经验的程序员往架构师方向走时,要发挥一个团队的力量,而不是一个人的力量。让团队更高效的原因其实就是规范,也叫做约定。约定才能让团队的所有人往一个方向走。假设团队有十人,每个人都不flow规范,那十个人还不如一个人。
在做同件事情的时候,都要遵守规范和约定。比如说,命名有规范,架构也有规范,文档也有规范。这时去写代码,看到这个命名就知道这个的用处是什么。
落地能力就是真正地把业务落地成代码。将书本上内容转化为生产力去解决实际问题。
比如说给你一个需求,你可以从宏观层面去设计。这个设计包括以下内容。
1.对业务的理解
2.对业务未来的容量规划
3.对业务的成本测算
容量规划的含义可以用个例子来表述。用户量在1万的时候会是怎么样;在5万的时候会怎么样;在100万的时候会怎么样。
成本测算,更高一点就到CPU的层面。例如做一个项目得清楚地了解以下几点。
5年经验的程序员需要具备以上三种能力,能在技术上独当一面,从一个Coder向系统分析师或是架构师转变。才能够顺应市场,不会被淘汰。
这是一个为程序员量身定做的求职公众号。
我们有:
互联网企业创始人,技术类畅销书作者等行业大牛进行职业生涯经验的分享;
专注互联网行业、指导过上万份简历的资深HR面试tips分享;
累积四年以上的10余项主流技术的面试题库,涵盖各大厂、互联网名企面试题;针对不同岗位的精选面试简历。
懂你所想,知你所需!
关注我们,有机会获得1V1专属职业规划!