首先声明,对错有时候只是因为站的立场不同。网上很多关于程序员的内容都是从技术角度来谈的,本人不是技术大拿,只是从另一个维度谈谈程序开发这个岗位,不争论对错,只是希望能对大家有点启发。
作者刚毕业时做过一年专职开发,后来转做实施,再后来出来创业,不管做实施带的项目还是创业带的团队,都有开发团队,所以不算脱离了技术。但是这些开发团队都是10人以内的小团队。所以本人的观点可能对想入门未入门、刚入门以及小团队程序员等比较有借鉴意义。
首先说一下观点:“培训班出来找不到工作”这个观点是错误的。
招聘的时候不会管你是不是培训班出来的。但为什么会有这个说法,主要是认知偏差造成的,相对于软件专业出来的学生或者自学成材的程序员更容易找到工作,显得培训班出来的不好找工作。
找工作,都有两个重要节点:
通过简历获得面试机会,
通过面试拿到offer。
首先我们从简历筛选角度看看:
作者筛选程序员岗位简历时,第一看项目经验,第二看掌握的技能,第三看学校专业,第四看其他的。一个一个看看为什么。
1、项目经验
很多刚找工作的人总有个误区,觉得工作的项目才算项目经验。其实相反,独立完成的项目经验更看重,其次才是工作的项目经验。如果你在学习的过程中什么独立的项目都没有做过,这一块就刷掉了。
这个就是大部分培训班出来的连面试机会都捞不到的主因,自学的,或者学校出来的,基本上都会独自完成一些项目,比如软件专业的毕业设计。而培训班,往往几个人一小组合作开发了一个老师要求的项目。
但是,最最加分的是自己发起的项目,比如大脑里有一个idea,然后做了一个非常简单的程序。比参与团队的采用了先进技术的大项目更有加分。原因很简单,本文针对的受众都是初学者或者刚入门,参与团队项目都是边缘角色,项目再好不代表你的能力;而自己发起的项目,再小也是你自己真实学到的东西。
所以,每个想要做程序员的学习者,选一个自己大脑中的idea,尝试去做成个项目,不怕技术落后、不怕代码质量差,最怕的就是没有。同时简历里写清楚为什么会做这个项目,用了哪些技术,为什么会选用这些技术,至少在作者这里,这样的简历一定会给面试的。
2、掌握的技能
其实看项目经验也是为了看应聘者掌握的技能,但是直接罗列技能是每个应聘开发岗位简历的必备内容。大家都有,就比较难以验证是否真的掌握了。如果能通过项目经验看出来最好,看不出来的时候,就看自己罗列的掌握技能。
一般会从两个方面去看真假:
一、会不会简单描述一下技能,比如该技能的内容、使用场景、怎么学来的。这个很少看到,有的话肯定也给面试机会。
二、对技能的分类,简历中肯定会列出好多项技能的,如果完全不分类随意罗列出来的,或者分类乱七八糟的(比如前端后端技术杂一起的),基本是没有掌握技能的,这种简历直接就刷掉了。如果分类清晰准确的,就有后续的机会。
3、学校专业
如果前面两项都没有打动到作者,那么是应届生的话就会再看看学校专业,如果比较好的学校比较好的专业,在可面试人较少的情况下也会约来看看。毕竟刚入社会还没有学会表达的人才还是有的。
但要注意:仅限应届生。都在社会上混过了还不会展现自己,非得说自己能力有多高我也不信。
4、其他方面
这个就是比较玄学了,简历总是会大致扫一遍的,如果扫到特别打动人的部分也会认真看看,看过后被打动了,也会有机会的。
曾经见过一份简历,其他方面都是空白。但是应聘者简述了原因,有参军梦也有程序员梦,参军刚退伍,还没来得及学开发。简历先投,如果没有找到工作,接下来准备去培训班学习什么什么技术。
这个也面试了,觉的各方面也挺不错的,可惜后来接受了另外一份更好的offer,所以不知道这样的人才后面发展怎么样。
再看看面试
这里说明一下,不同规模的公司面试流程是大不相同的,这里特指作者参与的这种最简单的面试,两级(技术层面面试和管理层面面试)。作者的习惯是所有简历都自己筛选,不会管人事的意见,所以人事面试这部分可以忽略。在带项目的时候,作者负责技术层面面试,然后筛选后给上级管理层面的面试。(作者没待过大厂,上级就面试一次。)后来创业带的小团队更简单,就一次面试。
简历是一个机会,虽然后来面试的多了,8成在面试之前就能判断是否合格。但是毕竟还是要看面试结果的。
面试中必备的问题:自我介绍。
这个其实很重要的,大家都知道软件开发对逻辑要求比较高的,在这种自由发挥的部分最能体现逻辑能力的。
可惜大部分人这部分都浪费了,就简单介绍一下名字学校专业工作经验就没有了。其实这里在上述简单介绍之后,再介绍选一段能展现自己优点的地方详细介绍一下,是非常加分的。
程序员面试中必备的问题:介绍自己会哪些技能。
这个部分竟然有不少答案是“简历中有”,或者把简历中的内容复述一遍的。这种基本就没有机会了,后面客套几句送走。
之所以问这个,就是根据你的简历判断不出你是不是真的掌握了这些技能,让你介绍就是证明自己真的掌握了。所以想听的是你对你掌握的技能的理解,曾经在哪里用过。
当然,面试中还会问到许许多多奇怪的问题,但是本质上就上面的两点,一个看基础能力(比如逻辑性、主动性),一个看已有能力(比如掌握了哪些技能)。
基础能力强的,比如逻辑性好、主动性高、自学能力强,不仅可以拿到offer,而且后续是着重培养对象。
已有能力具备的,也可以拿到offer,基本来了很快就能上手。
看到这里好像也没有说到培训班啊,原因就是“是不是培训班出来的不重要”。
如果具备很好的基础能力,不需要参加培训班也能学会,比如自学能力强、主动性高的人,完全可以自学的。
但是也不是说参加了培训班的人,基础能力就一定差,因为学习的过程中,经常一些瓶颈点,如果有人指点一下很轻松就能突破。还有一些会因为缺乏经验点错技能树的,如果有人给点提醒,可以少走很多弯路。
如果你是软件相关专业的学生,身边自然有这些资源,如果不是,又找不到这样的资源,那么上培训班也是一个比较好的选择。
所以,不是上了培训班找不到工作,而是不用上培训班就能自学掌握开发的人,肯定是能找到工作的。而上了培训班,如果也能掌握技能,自然也是能找到工作的。
最怕的就是,上了培训班,脑袋中塞满了老师教的知识,却完全没有消化吸收的。这种当然是找不到工作的。就算在培训老师的指点下修饰了简历,可是在面试中也会原形毕露。
最后总结,想要做开发,就认真锻炼自己的基础能力、踏实学习开发技能、努力把技能应用起来。做到以上三点才是重点。