年初离职,找工作找了2周,现在已经找到合适的offer了,前前后后也面了10几家公司,谈一谈经验,不过我这个经验只适合3-5年的中级普通程序员,大牛和大佬可以无视!
寒冬
今年的市场行情确实差很多,去年我去面试,很轻松的都可以拿到好几个offer,但是也没很多人说的那么夸张,面试依然很多,但是因为我本身简历不优秀(普本非计算机专业非大厂背景),大厂绝缘体,大多是一些中小型企业,几百上千人的上市公司也有,小创业公司没投。
内推?猎头?自己投?
我基本上都是自己投的,也有很多猎头加我说给我推,但是简历一给出去就没消息了,其实现在很多猎头都是比较低端那种,只是负责打电话要简历,根本不懂技术也不懂企业需求。毕竟本身简历不够优秀,内推到大公司也是过不了HR这关,所以我也没去麻烦朋友了,除非你认识大厂里面的大佬。
薪资定位
在大部分公司的招聘需求来看,有一个统招本科+计算机专业应该非常容易接到面试,找工作才发现学历+专业的重要性。这里我只是说说北京PHP的薪资范围,1-3年基本上会被定位到初级程序员,薪资在10-15k,3-5年大概是中级15-25k,5-10年大概是25-40k,基本上是1年5k吧,比如4年,大概就是20k左右,你说有没有更高的,当然也有,特别优秀的比如说211,985名校的,可以在这个基础上+50%。
面试内容
很多公司喜欢出面试题,对于面试题我觉得还是尽量写一下,但是我是比较拒绝那种给你一些算法题和编程题让你在纸上写的,但是大公司就喜欢考这些,所以要进大公司就刷题吧。中小型公司比较注重实际应用,就算有面试题常常也是一些基础题,还有结合实际应用的题。对于PHP来说,基本上是拿来写业务的,考算法确实过分了,当然你说你面试C、C++、Java就不一定了,不同语言的应用场景不一样,考察的重点也不一样。
除了面试题之外就是一些面试题官的问题了,这个我觉得考察的一个是沟通表达能力,还有就是对理论知识的掌握程度,某种程度上是知识体系的考察,做Web开发和你做应用软件开发不太一样,很多时候比较注重架构和解决方案。
简历重点
简历一定要好好写,如果你没有好学历和好背景就更应该好好写简历了,推荐使用markdown写,然后转成pdf,不需要太花哨,我觉得一般需要这几个栏目:基本信息、求职意愿、技能列表、工作经历、项目经验。注意,自己不会的东西千万不要写上去,有一些不是自己写的但是自己理解透了,掌握了也可以写上去,但是你不会的、没理解透的不要写,很多面试官都会拿着你简历问你一些技术点,如果你写了但是没答出来那就尴尬了。
很多写简历不知道写什么,我觉得主要结合项目经验写,使用了哪些技术、达成了一个怎么样的结果,一定要写技术点,不能像是写流水账一样,举个例子,比如说你写了一个购物车功能。普通写法就是完成商城购物车开发,这个就不行了,你得引导面试官,可以写一些细节,比如说你购物车的数据库怎么设计的,有哪些亮点和难点,面试官一看可能会多问一些细节。
常见套路
很多面试官都会问一些比较常见的问题,比如说你为什么从上家公司离职?你对未来有什么规划?你对我们公司有什么问题?这些问题我觉得不一定要说实话,最好是找一个比较稳妥的说法,比如说上家公司很垃圾,你不要直接说出来,可以说一点大家都比较容易接受的理由,网上有很多文章介绍,我这里就不多说了。一味的坦诚并不是什么好事!
实力
面试说到底还是考验一个人的综合实力,虽然你可以去刷题,但是有些知识不是刷题可以刷出来的,比如说如果你不懂地质学,现在让你去刷题,就算面试题可以过,但是面试官稍微问你一个开放性的问题你可能就懵逼了。所以平时还是得注重知识积累,IT行业就是这样,新技术层出不穷,平时多看看技术文章,博客,就算工作用不到也可以学习一下。
虽然互联网知识很多,广度也重要,但是不建议花过多时间在一个意义不大的地方,比如说你一个写PHP的天天去研究机器学习,除非你以后要去搞机器学习,不然花过多时间去研究也不划算。毕竟咱学习是为了提高自己技术,提高技术主要目的找到更好工作,虽然机器学习也是技术,但是我觉得还是得找好方向。
还有一个就是基础知识,一般所谓基础就是指数据结构(算法)、计算机原理、计算机网络、操作系统等,非科班或者上学没认真学的平时可以多看看,这些东西虽然是基础,但是想都掌握还是非常难的,虽然实际开发中我们一般不会直接应用,但是有助于我们对很多知识的理解,毕竟现代编程就是站在巨人的肩膀上,我们不能要求每一个写JS的人都去精通网络协议吧?但是偶尔看看巨人的脚下也是不错滴!
互联网这么大,细分开来每一个领域都大有可为,有些技术了解一下就可以了,深度还是很重要,毕竟现代社会分工,各居其职,在公司也不可能什么都让你一个人干。比如对于PHP来说,其实PHP只是Web编程开发里面的一种语言,本质上我们是在做Web开发,Java也可以做Web开发,它们都要用到Mysql、Redis、Nginx、Docker、Linux...。很多时候Web开发是一个工程项目,它不是一个简单的系统应用,它是运用很多技术的综合体。作为一名PHP开发工程师,难道说你只要懂PHP就行了吗?肯定不行,现在面试没有那个不问Redis、Linux相关问题的!
PHP高端之路
其实作为一名PHP开发工程师,可以发现现在PHP的生存空间越来越小,备受JS和Golang挤压,在国内Java是主流,现在很多大一点的公司,PHP都是边缘项目、小项目,还有就是很多创业公司在用PHP。对于普通PHP开发来说,30k可能是一个天花板了!
如果想突破,一个方向就是转管理,带团队、带项目,这确实是一个比较好的归宿,不用写太多代码,工资也不低。
另一个方向就是转构架师,所谓构架师倒也不是多神秘,其实可以理解为是一个对Web架构非常熟悉的高级工程师,薪资待遇比一般搬砖的程序员高很多,也需要写代码,但就不一定是PHP了。
还有一条路子就是转Golang开发,其实Golang要求高很多了,工资也高很多,看个人能力吧!
最后一条路子,就是创业吧,自己负责整个技术架构,就差职业经理人了。。。