这两年毕业生的就业形势,大家都看在眼里。由于我平时本职会到校园去做校招,兼职会做培训,所以也接触到了不少计算机应届毕业生。
我看到的计算机专业毕业生,各种情况的都有。虽然其中有学校的因素,但学校的因素也不足以造成这样大的差距。所以在本文里,就将结合找到各种工作的毕业生的情况,说下计算机专业的毕业生第一如何在大三大四时准好准备,第二如何在大四时找到心仪的工作。
我作为大厂面试官去做校招时,能收到一大堆简历,如何挑选有面试资格的人呢?
1可能我去的都是一本,这里已经隐藏了“学校好”的条件。但对于学校一般的同学,绝非没机会,第一参加各种招聘会,第二多找猎头,第三直接到各招聘网站投简历。
3退而求其次,如果没有实际项目经验,那么好歹得写一些课程设计项目或学习项目。一般来说,大多数毕业生候选人简历上多少会有些。对于这些人,先比较学习项目的时长,再看简历上给出的技术。
4至于很多简历上给出的篇幅很长的自我介绍,学校经历等,除了证书和获奖情况,基本掠过。
其实我知道,除非有实际项目经验,其它简历上只包含学习项目的同学,其实能力都差不多,但一般只能看,谁写的项目多,谁写的技术全面。也就是说,大多数毕业生得到面试机会,更需要的是语文能力,而不是技能。
然后是面试,(因为我是java方面)面试的机会一般会问如下的问题。
1SpringBoot(或其它框架),你有没有做过基本的增删改查?其中大致流程是什么?
2数据库方面,你会不会写SQL?可能会笔试让写。
3Java方面,在集合,异常处理,多线程等方面,也不敢问深,因为一问深估计就招不到了,就挑些网上通用的问题问下。
4随后就是大路的算法题和编程题,这些基本都是从网上找的。
也就是说,只要简历过筛选的候选人,真的运行过并吃透一个学习项目,要过面试应该问题不大。
话反过来说,哪些计算机专业的毕业生找不到软件的活?
第一,可能需要考虑一定的学校因素,比如学校一般,同时又没有其它获奖等能弥补的因素。
第三,即使有面试机会,框架,数据库和java核心方面一问三不知,可能只会说些智力题和基本的算法题。
这里大家要注意,哪怕毕业生学校再好,如果仅仅具备课本上的理论知识,比如只掌握数据结构,算法,操作系统等技能,没有项目技能,估计甚至找不到软件方面的活。
但相反,如果你学校一般,而你简历上心点,给出三个学习项目(当然最好是实际项目),同时面试前刷些题,背些答案和算法,你未必没机会。
再啰嗦下,面试前一定得准备项目经验。如下按优先级降序,给出建议的做法。
最好是你去找些软件公司的实习机会,比如毕业设计你上点心,或者你主动找有外快项目的老师一起做。当你真正做过项目,哪怕就3个月,别人都不用说,你自己就会知道面试该准备什么。
如果你实在没有机会去外面的软件公司实习,你好歹做好你的毕业设计或课程设计,虽然这些有可能是你老师拍脑袋想出来的选题,但好歹成系统,多少也会让你综合实践些技术。
再不行,你买几本带案例的书,或者找至少3个Springboot框架的项目,第一运行通,第二照书,找视频理解其中关键模块(比如控制器,业务层,jpa)的含义,然后再熟悉基本的sql语句,这样好歹你也算有项目经验。
总之,在找工作前,你至少能在简历上写上3个项目经验。
之前讲到了哪些简历有面试机会,这里具体给出写简历的方法。
第一,每个公司甚至每个职位所要求的技术不同,你得仔细阅读,给每份职位定制化简历,在不同的简历中根据要求的技术做些微调。
第二,按如下模版写项目。
我做的事情:1用Springboot全栈流程开发了xx模块2用sql语句编写了查询xx模块数据的业务3用前端css+div+jquery等,编写了xx页面
得到的收获:1熟悉了Springboot全栈开发流程,2熟悉了mysql数据库基本操作3了解了java多线程,异常处理和集合等技能点
照这你写3个,这样的简历,面试官一定能看出是学习项目,但如果你真的没商业项目也没办法,这样的话,你至少不会没面试机会。
第三,证书,获奖情况,甚至培训班经历,以及其它你的优势全写上,培训班经历对社会人员可能是不利因素,但对毕业生,这好歹能说明你有项目经验,受过系统软件开发培训。
第四,至于个人介绍,就写能加班肯吃苦,团队精神强学习能力强等能帮你找到工作的话,其它兴趣爱好之类无关的话别写。
用简历得到面试机会后,你事先一定得准备。如下给出我会问的问题。
1你就以一个业务模块,比如增加订单,为例,说下Springboot处理请求的流程。
2你在Springboot(或你做的项目)里,如何连数据库,比如jpa怎么连?mybatis怎么连?
3你在项目里,如何编写控制器,或如何写数据库的配置,或者如何定义事务。
4说下Springioc的理解(或从其它看到的网上关于Spring的面试题)
5说下HashMap里的hashcode和equals方法,或其它能查到的java核心方面的面试题
6找些算法题,比如用两个arraylist实现堆栈,或者分类问题。
怎么准备?
2还是这句话,多运行学习项目,凡运行通一个,你就写到简历上,通过这样全栈的运行,你会一点点熟悉框架里的细节。
我见到很多候选人,项目和技能方面说到很差,但算法和编程题非常熟悉,这就属于本末倒置了。
1赶紧买2本Java语法书,什么书都行,照着里面的代码敲一遍,注意别敲java界面(比如swing)方面的代码,这需要在2周内做好。
3上述两件事情,你得在4月前做好,这样你再用一个月,搜网上面试问题,再结合代码理解。
4你在找面试题的同时,需要投简历面试,照本文给出的方法,你不会没面试机会。刚开始的时候,你可能真一问三不知,然后你搜集下实际的面试题,外带不断动手实践理解答案,一个月以后,你至少能和面试官对上话了。
5进入到5月份,你再循环着做面试——搜索问题——找答案——不断提升,这样你好歹能在5月或6月找到工作,至于找到什么工作,就得看你之前敲代码和理解的程度了。
1虽然当前环境下兼职活不好找,但不等于找不到,你可以用扫楼的方式去找软件实习活。
2每个学校,计算机方向的老师,总有和外面公司有合作的,把活接到教研室里做,你打听下找老师做。由于给钱少,或者甚至不给钱,不少老师都愿意带本科生一起做。
4更重要的是,你可以通过写技术博客,或者公众号等手段,不断写下你提升技术的心得。这样到找工作的时候,你博文本身也就是一个亮点,更别提你所积累的技术了。
计算机应届生,能否找到工作,或者能否找到好工作,根本在于实践过(或者运行通)多少个项目,而不是取决于专业课学得有多好。
从这角度上看,广大毕业生朋友当下应当找各种渠道,或者多接触商业项目,或者多在自己的电脑上跑通并理解学习项目,这才是面试的底气,而是单纯地背各种面试题。
我见过太多的毕业生,在大四上学期还是前景堪忧,但经过半学期的努力,就能找到心仪的工作,还不用去培训班。所以哪怕是从现在开始努力,为时也不算晚。最后祝各位毕业生都前程似锦。