作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?...

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

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

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 在转载时,请原文转载 ,谢绝洗稿。否则本人保留追究法律责任的权利。

转载于:https://www.cnblogs.com/JavaArchitect/p/11547799.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

memcpy函数的实现

1.按1个字节拷贝 (1)不要直接使用形参,要转换成char* (2)目标地址要实现保存 (3)要考虑源和目标内存重叠的情况 void * mymemcpy(void *dest, const void *src, size_t count) {if (dest NULL …

MATLAB中调用Weka设置方法(转)及示例

本文转自: http://blog.sina.com.cn/s/blog_890c6aa30101av9x.html MATLAB命令行下验证Java版本命令 version -java 配置MATLAB调用Java库 Finish Java codes.Create Java library file, i.e., .jar file.Put created .jar file to one of directories Matlab …

webpack4配置基础

前言 为什么要使用构建工具? 1.转换ES6语法(很多老版本的浏览器不支持新语法) 2.转换JSX 3.CSS前缀补全/预处理器 4.压缩混淆(将代码逻辑尽可能地隐藏起来) 5.图片压缩 6. .... 为什么选择webpack? 社区…

RESTful API概述

什么是REST REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”。这里说的表征性,就是指资源,通常我们称为资源状态转移。 什么是资源? 网…

AI 《A PROPOSAL FOR THE DARTMOUTH SUMMER RESEARCH PROJECT ON ARTIFICIAL INTELLIGENCE》读后总结

本文转载: http://www.cnblogs.com/SnakeHunt2012/archive/2013/02/18/2916242.html 《A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence》,这是AI领域的开山之作,是当年达特茅斯会议上各路大牛们为期两个月…

第94:受限玻尔兹曼机

转载于:https://www.cnblogs.com/invisible2/p/11565179.html

安装完Ubuntu桌面后要做的(待续)

1. 为了快速而顺畅的更新,打开终端并输入以下命令来让系统使用新软件库: $ sudo apt-get update 2. 更改系统外观和行为 如果你想要更改桌面背景或图标大小,依次打开System Settings –> Appearance –> Look,并对桌面进…

算法第二章上机实践报告

一、实践题目 改写二分搜索算法 二、问题描述 这道题目主要是考验同学们在熟练掌握二分搜索法的前提下,对二分搜索的结构和运用有一个更加深刻的掌握。首先是要了解二分搜索的结构,其次,要了解二分搜索中的分治方法每一个步骤的用意&#xff…

windows远程登录 ubuntu Linux 系统及互连共享桌面

预备工作 #开启防火墙端口 sudo ufw allow 3389#安装ssh sudo apt-get install openssh-server一、windows直连Ubuntu16.04共享桌面 1、打开终端,安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients2、安装desktop sharing(Ubuntu…

RAID详解

一、raid什么意思? RAID是“Redundant Array of Independent Disk”的缩写,中文翻译过来通俗的讲就是磁盘阵列的意思,也就是说RAID就是把硬盘做成一个阵列,而阵列也就是把硬盘进行组合配置起来,做为一个整体进行管理&a…

webpack4进阶配置

移动端CSS px自动转换成rem 需要两步来实现: px2rem-loader 在构建阶段将px转换成remlib-flexible 页面渲染时动态计算根元素的font-size值(手机淘宝开源库)下载插件并配置: npm i px2rem-loader lib-flexiblemodule: {rules: [{t…

MBR与GPT的区别

由于在服务器上装windows系统,一共有3个4T的硬盘,但是在windows系统下最大显示的为7T,这是因为3个4T硬盘做了Raid5,即:3.6Tx(3-1) 7T,大约是7T。由于单个移动硬盘大于2T,而MBR格式的…

Servlet-三大域对象

request request是表示一个请求,只要发出一个请求就会创建一个request,它的作用域:仅在当前请求中有效。用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。常用方法:request.…

装windows和Linux系统时找不到硬盘,pe安装系统没有出现磁盘,不能识别磁盘

装win7的时候,我们使用U盘装系统,找不到硬盘, 或者使用光盘装系统时 会出现 缺少所需的CD/DVD驱动器设备驱动程序 然后找遍整个硬盘/光盘也找不到合适的驱动,安装无法继续。 解决方法: ACHI模式下,PE里…

JSP四大域对象与九大内置对象

域对象的作用:保存数据,获取数据,共享数据.page:jsp页面被执行,生命周期开始,jsp页面执行完毕,生命周期结束(jsp当前页面有效)request:用户发送一个请求,生命周期开始,服…

解决ubuntu 15.04 安装matlab后无法找到matlab执行文件的问题

在ubuntu 15.04上安装好maltab R2015b之后,进入文件夹: /usr/local/MATLAB/R2015b/bin 没有发现matlab可执行文件,可是在文件管理器中又能搜索到matlab文件,是在其子目录glnxa64下。但进入子目录后,在终端输入命令&a…

一个写得很不错的vuex详解(转)

https://segmentfault.com/a/1190000015782272?utm_sourcetag-newest 转载于:https://www.cnblogs.com/hj0711/p/11577582.html

Linux 服务器上建立用户并分配权限

查看用户 whoami #要查看当前登录用户的用户名 who am i #表示打开当前伪终端的用户的用户名 who mom likes who 命令其它常用参数 参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同am i,mom likes -q 打印当前登录用户数及用户名 -u 打印当前登录用户登录信…

HttpServletRequest

HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 二、Request常用方法 2.…

Linux 释放cpugpu内存、显存和硬盘

free -m free -mtotal used free shared buff/cache available Mem: 128831 15666 23617 406 89547 111448 Swap: 130986 130977 9 total 内存总数 used 已经使用的内存数 free 空闲…