我最近几年一直在做技术面试官,除了面试有一定工作经验的社会人员外,有时还会面试在校实习生和刚毕业的大学生。同时,我也在学校里做过兼职讲师,上些政府补贴课程(这些课程有补贴,学生不用出钱),所以我会在不同的场合承担两种截然相反的职责。

幸好我的公司不会从我讲课的学校里招生,而且我讲课和面试的时间段是错开的,所以我可以免处于“自相矛盾”的尴尬境地。不过我面试官经历倒能让我不断思考,该如何更高效地提升毕业生的水平。在本文里,一方面将讲述我在面试过程中衡量计算机相关专业毕业生的标准和方式,另一方面将从培训老师的角度,向在校生和毕业生朋友提些提升自己竞争力的建议。

1 名校光环很重要,在校成绩更重要

除了一些在校生或毕业生有项目经验外,大多数同学可能最多也就有课程设计和毕业设计的经验,也就是说,实际开发编程能力大家基本差不多,那么总得用些看的着的标准来衡量。

第一,是否是名校,能进名校至少说明能力不差,而且名校里的老师能力普遍好些,学习氛围或许浓厚些。不敢说非名校出身的一定不行,但可以说,在名校里找到合适候选人所费的代价能少些。

第二,除了名校外,再看成绩,如果某同学四年一直在拿奖学金,或者成绩很好,这至少能说明态度好,积极上进,相反如果某同学连学位证毕业证都拿不到,那么何以证明自己?如果再有某些能证明自己的加成因素,比如竞赛拿奖,那么这也是加分项。

不可否认,其实各大公司在招实习生时,更倾向于在名校找,而招毕业生时,名校因素也能起比较大的作用,毕竟人家高考时占得先机,有因必有果。不过非名校的同学并不是一点机会也没。

比如在招毕业生时,某位同学可能是二本,但他一方面成绩好,另一方面有碾压别人的商业项目经验,那么公司更会看实际的动手能力。不过我也见到不少学习一般的同学,平时更在自暴自弃,比如无休止地玩游戏,这些同学总会为自己的放纵而付出代价。

2 论大学课程对提升竞争力的帮助

这里来分析些大学里学到的课程。

第一是公共课,比如数学英语等。除非进特别好的公司,可能更在考研的时候需要数学技能,而机器学习或数据分析场景里,确实会用到一些数学知识,但未必很深。英语能力就很重要,毕竟英语好就多了一个外企的选项,而且最好锻炼自己的口语能力,至少能用英语自我介绍或做简单对话。工作后英语能力可能不会用到,但用到时再操练,就晚了。

第二是计算机理论课,比如数据结构,网络通讯,操作系统,编译原理等。其中尤其得重视数据结构,而且最好用某种语言实现下,比如用java实现列表,堆栈和各种排序算法等,这在面试时会直接考。其它课程,能让我们了解有这回事,比如编译原理能让我们了解状态机,系统学下总有好处。

第三是编程类课,比如java,python编程等,或数据库编程,这些很重要,因为直接能提升调试代码的能力。学这些课时,一定得敲代码,否则你就连最基本的编程能力也没有了。

最为面试官,如果有条件,一般会要求提供成绩单,如果没条件,那么就考察编程能力,比如让用java实现个小算法,或者问些数据结构等基础知识。当我作为培训老师时,一定会要求学生自己敲代码,自己尝试排查问题,同时灌输数据结构的知识点。

3 如果只有理论经验,估计悬

在面试大学生时,我见过不少候选人理论方面说得天花乱坠,比如jsp或servlet的概念,或者网络通讯的流程,但没有任何商业项目的经验,同时甚至不会写代码,这类人,哪怕学校再好,不会要。

我在博客园等论坛上,看到不少朋友只是做理论知识的搬运工,不能停留在这个阶段。接下来,第一该调试代码,第二该找机会实践,第三更得从实践框架方面的尽管,比如SSM,或者Spring Cloud。怎么提升自己的实践能力?

第一,在自己的电脑上搭建各种开发环境,比如jdk,mysql数据库,eclipse,甚至linux虚拟机,怎么搭建?看资料。其实这就是在提升动手和学习能力。

第二,比如java,python,c#,数据库等方面,每方面买些本书,就照着书上敲代码运行。有问题自己尝试解决,或者问别人,刚开始可能步步踩坑,但这就能提升调试代码的实际能力。在实践这个步骤时,可能会遇到装环境的问题,也可能几天无法解决一个问题然后很上火,但一定要咬牙坚持,每人都得经历这个过程,现在不经历就得毕业后受苦。

第三,赶紧找份实习机会,比如找有项目的老师,或者干脆自己出去找软件公司实习,刚开始不要钱都行,如果要上课,就和人家说晚上或周末去,或者寒暑假时去。在真刀真枪里干个3个月,比自己摸索效率快多了。

我在做培训老师的时候,会逼着同学动手练习,刚开始真叫惨不忍睹,连个分号都会有问题,但最多实践个2小时,至少能复制粘贴代码,再坚持练习3到5次课,还能自己通过debug分析问题。至于实际项目经验,培训班里无法获取,但我会建议同学自己赶紧找实践机会。

4 商业项目经验优于学习项目经验,算法能力只是锦上添花

在我之前的博文里,反复在说这个观点,这里再重复下,能实际挣钱的叫商业项目。在商业项目里,调试代码单元测试之类的就不说了,写sql或者编程的技巧就更不说了。此外,大家更得关注在商业项目里通过日志排查问题的能力,以及如何把开发好的代码部署到服务器上的能力。

这里举个实实在在的例子,我见过一批非常上心的毕业生,可惜学校一般,但简历上有至少3个月的商业项目经验,比如大四3月后一直在做,有些大三下学期就在做,而且问下来都行,绝非是培训班给出了蒙人项目。这些人属于能直接干活,而且上进心态度也不错,他们绝对属于抢手货,被几个组抢着要。

我在辅导别人面试时,也见过不少同学之前只背面试题和算法题,这不是不重要,但商业项目经验更重要。而且,面试题和算法题可以通过刷题得到答案,你会别人也会,就体现不出你的优势了。相反实践经验未必每人都有,我就不理解为什么放着能碾压别人的途径不走。那么怎么找实践机会呢?说点具体的方法。

你到学院里打听下,有些老师是有项目的,尤其是带硕士和博士的老师。如果有给你上过课的老师那最好,如果没,你可以自己去找,或者通过老师同学去找,就说想跟着干,刚开始先看。一般老师看到有廉价劳力来,不会拒绝。刚开始的时候,你可以多请教学长,比如如何搭建环境,到后来可以争取个小功能点,然后慢慢就做大了。而且,如果可以,寒暑假也可以跟着老师干,这样最多,陆续能积累个1年项目经验。

其实这已经算商业项目经验了,你写到简历中绝对够算。毕竟自己老师还好些,如果要到外面找实际机会,就到处发简历,同时也说明刚开始可以少要钱。刚开始甚至会因为能力不行被公司拒,但坚持下来,也能获得实际项目经验。

5 框架性的能力优于零散的编程能力

在面试过程中,我见过不少毕业生单论知识点还行,但无法缺乏框架性的能力。比如单问java核心方面问题,或者web方面问题,或者数据库方面的,都行,但普遍缺乏框架编程能力。所要求的框架能力也不高,比如只要能在已经搭建好的SSM框架基础上,照现有代码实现新需求。框架能力如何提升?

第一搭建环境,这个是最难的,比如在idea上搭建个基于maven的ssm脚手架项目,这不简单,或者搭建个spring cloud实现简单功能的环境也不容易。我在培训班上辅导时,很多同学就卡在这块。但网上对应的资料也不少,多用点时间总能做到。

第二就找个项目运行,项目未必要业务点很多,能全栈就行,比如包括前端页面,后端的spring mvc,mybatis,能串起来跑就行。

还是这句话,如果有实践机会,这都不是问题,但我见过不少有实际项目经验的同学,可能也只是专注其中一块,比如SSM框架里的service层,只在其中写业务代码,而不关注全栈,这就属于关注点不对了。

6 再啰嗦一下,毕业生要不要上培训班

培训班能给毕业生带来哪些帮助?

第一,提升项目实践方面的技能。第二,好歹能提升学习项目。第三,面试辅导,第四,推荐工作。

而企业如何衡量毕业生?实际项目经验,动手能力外加专业基础。一些小公司可能没资本要求名校。

对于在校生,你在大学阶段能获取到项目经验吗?能通过各种方式提升专业技能吗?可以,在上文里给出了若干方法。

所以,如果你尚处大一大二大三,尚有机会自强,那么先努力一下。但你已经快毕业,但由于种种原因竞争力不强,同时是跨城市找工作,那么你可以自己考虑,不过还是这句话,在上培训班前,首先得上自己积极上进,而且培训班不是万能的,不能把所有的希望都寄托在这上面。

7 总结:赶早不赶晚,不过在任何时候努力都不算晚

总结下本文给出的观点:第一,商业项目最值钱,而且通过商业项目能快速提升自己的技能。第二,除了上课外,尽量让自己有多些实际项目经验。第三,框架经验优于零散技术经验。

所以努力不嫌早,在大二阶段就可以为自己规划了。不过努力也不嫌晚,那么就算到了毕业的时候,因各种原因导致竞争力低下,这时候发奋图强,经过一段艰苦时间也能慢慢变好。但就怕自暴自弃或甘于堕落,比如上学时无节制地玩,工作后宁可荒废也不看技术,这种就属于咎由自取了。

如果大家感觉本文有帮助,请推荐本文,也欢迎大家通过评论来交流。

版权说明:

有不少网友转载和想要转载我的博文,本人感到十分荣幸,这也是本人不断写博文的动力。关于本文的版权有如下统一的说明,抱歉就不逐一回复了。

1 本文可转载,无需告知,转载时请用链接的方式,给出原文出处,别简单地通过文本方式给出,同时写明原作者是hsm_computer。

2 在转载时,请原文转载 ,谢绝洗稿。否则本人保留追究法律责任的权利。

作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?的更多相关文章

  1. 校招有感:计算机专业毕业生如何找工作(Java方向)

    这两年毕业生的就业形势,大家都看在眼里.由于我平时本职会到校园去做校招,兼职会做培训,所以也接触到了不少计算机应届毕业生. 我看到的计算机专业毕业生,各种情况的都有.虽然其中有学校的因素,但学校的因素 ...

  2. 从面试官的角度,聊聊java面试流程

    在这篇回答里,就讲以我常规的面试流程为例,说下java方面大致会问什么问题,以及如何确认候选人达到招聘要求. 先说面试前准备,可能有些面试官是拿到简历直接问,而且是在候选人自我介绍时再草草浏览简历,但 ...

  3. 关键词:ACM & 大小端 & 面试官

    关于“ACM” fender0107401 :面试了一个在ACM拿过奖的人 我问了他几个问题: 读取数组中的一个元素,计算复杂度是多少,回答不清楚. 往链表里面存一个数,不排序的情况下,计算复杂度是多 ...

  4. 如何写出面试官欣赏的Java单例

    单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例. 今天我们不谈单例模式的用途,只说一说如果在面试的时候面试官让你敲一段代码 ...

  5. 程序员过关斩将--面试官再问你Http请求过程,怼回去!

    菜菜哥,X总在产品部瞎指挥,作为程序媛的我都快撑不住了 不光你撑不住了,大家都要撑不住了,外行人指导内行人,呵呵 前天我偷偷的去面试了,结果挂了 出去转转其实是好事,面试官问你什么了? 他让我描述一个 ...

  6. 技术简历这样写,才能得到BAT面试官的青睐

    公众号[程序员江湖] 作者陆小凤,985 软件硕士,阿里 Java 研发工程师,在技术校园招聘.自学编程.计算机考研等方面有丰富经验和独到见解,目前致力于分享程序员干货和学习经验,同时热衷于分享作为程 ...

  7. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  8. 《吊打面试官》系列-Redis常见面试题(带答案)

    你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源,有面试点思维导图,欢迎[Star]和[完善] 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在 ...

  9. 面试官:你连RESTful都不知道我怎么敢要你?

    目录 01 前言 02 RESTful的来源 03 RESTful6大原则 1. C-S架构 2. 无状态 3.统一的接口 4.一致的数据格式 4.系统分层 5.可缓存 6.按需编码.可定制代码(可选 ...

随机推荐

  1. 开源音乐下载神器XMusicDownloader更新,支持歌单一键下载,支持无损音乐

    开源音乐下载神器XMusicDownloader更新啦,新增网易.腾讯音乐歌单歌曲.歌手歌曲.专辑歌曲一键下载,同时支持下载flac无损音乐. 功能 V1.0 功能开源工具软件XMusicDownlo ...

  2. OSI七层网络模型与TCP/IP四层模型

    1.OSI七层结构图: 2.TCP/IP四层结构图: 3.各层对应的协议 4.OSI七层和TCP/IP四层的区别 OSI网络模型和TCP/IP网络模型对应关系: 5.交换机工作在OSI的哪一层 如果有 ...

  3. 搭建nuget 服务器

    前言 搭建nuget服务器,这是上家公司进行类库管理的方式,其实优点很明显, 1.代码保密 2.代码重复利用效率高,这样不管任何项目只要知道nuget服务器地址就能直接调用 3.可进行版本任意切换提高 ...

  4. cocos creator 事件

    cocos creator 事件 在做一个消除类游戏时,需要对点击的方块做出响应.代码很简单,可背后的原理还多着呢. 1. 普通节点注册click事件 在cc中如果需要相应click事件,需要为该节点 ...

  5. python 21 面向对象

    目录 1. 面向对象初步认识 2. 面向对象的结构 3. 从类名的角度研究类 3.1 类名操作类中的属性 3.2 类名调用类中的方法 4. 从对象的角度研究类 4.1 类名() 4.2 对象操作对象空 ...

  6. 设计模式(C#)——03建造者模式

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321       当一个复杂对象由一些子对象构成,并且子对象的变化会导致复杂对象的修改.这时我们需要提供一种"封装机制&qu ...

  7. Codeforces 814C

    题意略. 思路: 尺取法,依然是要利用之前的结果. 感觉时间复杂度太高了,竟然也过了. #include<bits/stdc++.h> using namespace std; ; ]; ...

  8. .Net 基于Memcache集群的分布式Session

    简述 基于Memcache的Session大家都各有各的说法,比方说:当memcached集群发生故障(比如内存溢出)或者维护(比如升级.增加或减少服务器)时,用户会无法登录,或者被踢掉线等等,每种技 ...

  9. javascript语言精粹数组篇之Array的方法注意事项

    本文并没有详细列出Array方法详解,本文侧重点在于使用Array编程时候要注意的问题.1.Array.concat var o = {name:"Gavin"}; var a1 ...

  10. Linux下Nodejs安装(最新版)

    Linux安装最新版Node.js 由于直接yum安装的nodejs版本太低,所以本篇文章向大家介绍在 Linux 上安装 Node.js 最新版的方法. 安装环境 本机系统:CentOS Linux ...