#1  -  2016-03-14 14:34:33

关于计算机专业学生要不要实习的问题,总有人会问起,答案也不尽相同。在十几年前我上大学那会,作为一个半军工背景的高校,周围的同学们关心的无非是上研还是工作,去哪个神所(比较牛的研究所)还是部队。几乎很少有人会讨论实习的问题。后来大四的时候有幸去实习了几个月,毕业后,招过很多实习生,也培养出了一些不错的实习生,对实习这个问题感触比较深刻。

我在大学的时候在学校的网络中心兼职维护学校的网站,还在外面结过一些外包项目,按说项目经验还是很丰富,在学校的圈子里面也小有名气,自己也有点飘飘然,觉得自己挺牛的。后来大四的时候去第一家单位实习,实习后才逐渐发现自己的无知。

一起去实习的有来自北大、清华、浙大、西交等高校大四的学生,好几个都不是计算机专业,但是编程都很厉害,我们被分到几个项目组中一起辅助项目开发,每个人都安排了经验丰富的工程师作为我们的Mentor,当时我是在网站的项目,负责封装一些常用的Web Component。

实习前我在学校时也做过一些项目,但是基本都是一个人最多两三个人一起完成,也没有什么明确的分工,各自商量着做一些就好了,那会还没有Github,做项目时代码压缩个zip就算是备份了,多人协作的时候通过QQ传来传去,没有文档和注释。如果客户发现bug了,QQ留个言,或者用word截个图写几行字就算是反馈bug了。

到实习的时候一个项目都有一个团队来完成,有做项目管理的项目经理,产品设计的产品经理,做UI设计的设计师,做测试的测试工程师,再是几个程序员。一个项目立项后,项目经理会制定计划,并保证进度如期完成,产品经理做好产品设计,然后写成产品设计文档,开发经理做好技术设计和人物分解,我们这些实习生就按照设计去编码实现功能,做好后专业的测试人员测试,测试提出的Bug分配到相应的开发人员去修复。

当时公司用的是Visual SourceSafe(后来升级到TFS了)做源代码管理,相对以前QQ传可是方便高效可靠;Bug系统用的是TD(TestDirector),可以方便的对于每一条Bug进行跟踪记录,不用再去翻QQ聊天历史,去查QQ传输文件里面的word文档;项目计划用微软的Project;同事之间的沟通也主要是基于邮件或MSN(那时候MSN还是办公主力IM)而不是QQ。

我当时做的Web Component,其中一个TreeView控件,需要设计好树的数据格式,对我当时来说还是很挑战的一个事情,这才发现很多课程都没有学好,真要去解决实际问题的时候还是差一截,专门又去翻了一遍数据结构的书,网上查了很多资料,最后在Mentor和其他同事的帮助下终于得以完成。

这些经历对于一个有工作经验的人来说不算什么,但对于当时还没毕业的我印象是极其深刻的,以致到现在我还能记得实习期间很多细节。实习时无论是一起的实习生,还是公司的员工,牛人很多,跟着这些牛人一起成长很快,这些经历对我后来的成长帮助很大。

前些年在上海的一家公司做开发总监的时候,工作主要是做iOS开发,当时市面上iOS程序员是很稀缺的,于是通过培养实习生的方式辅助招聘iOS程序员。在招聘过程中,我发现上海本地的学生对暑期实习的意识特别好,很多学生大二大三暑假就开始找实习单位,大学也很支持,很多大学大四一年除了毕业设计就没其他课程了,学生们可以安心实习,工作时间基本上跟全职员工差不了多少。

我们在培养实习生的方式上:

- 每个实习生都会有资深员工担任Mentor,相当于导师,负责指导工作上的问题

- 让实习生尽快参与到实际的项目中,负责实际项目的某个模块,在做中学

- 对实习生有即时的反馈,小到日常的Code Review,大到定期的考评。对于表现不够好的,会及时终止实习,对于表现优秀的,会提前签订毕业的Offer

这样的培养方式,每年都会留下来几个很不错的实习生,几年后就能成长为骨干员工。对于实习生来说,他们通过实习,学到了很多学校学不到的知识,对于公司来说,也能招聘到优秀的人才。

实习有什么好处

对于是否实习纠结的同学们考虑的很现实的一个问题就是:实习能有什么好处?实习的这时间是不是更应该出去旅行,去多参加社团活动,去刷刷算法题?

就我看来,计算机专业的学生在毕业前参加实习,主要有这几点好处:

- 能参与到实际项目,积累项目经验

- 能和很多优秀的人一起共事

- 有助于就业

在学校里面所学到的主要都是理论知识,即使有些课程会有项目实践,也是偏教学目的的,这些项目几乎不可能应用到实际生产上,有真正的用户。而在公司实习不同,所参与的项目基本上都是实际项目,甚至有些项目可能会有大量的用户使用。在项目实践中,才能明白平时所学理论知识在实际的软件开发是如何应用的。例如在项目中,你会发现数据结构知识对程序设计的重要,算法知识对应用性能的影响,软件工程知识在多人协作的项目中是怎么应用的,等等。这样理论结合实践,能帮助更好的掌握这些知识,也会在学习时更积极主动些。

实习的时候,有机会接触很多优秀的人,跟优秀的人在一起是一种压力,同时也会帮助自己更好的成长。

很多知名公司都会通过招聘实习生的方式来招聘正式员工,而实习的门槛相对应届生招聘的门槛要低很多,进入公司实习,也意味着有很大机会可以留下来,即时最后没有留下,实习的经历也对拿Offer有很大帮助。

大公司还是小公司

还有一个常见的问题就是很多学生会纠结,是应该去大公司实习还是应该去创业小公司实习?

小公司的好处主要有:

- 门槛低;

- 没有很细的分工,能全面的了解和参与项目;

- 做事情没有太繁琐的流程, 步伐会比较快,能高效的完成任务;

小公司的缺点在于:

- 可能高水平的人不会太多

- 做的事情会比较杂,不能专注

- 做事情不够规范,当慢慢的项目大了人多了反而效率大大下降

- 缺少针对性的培训和指导

大公司的好处主要有:

- 牛人比较多

- 做事比较规范,文档流程齐全

- 分工明确,可以专注于某个细分的技术领域

- 有品牌光环

- 有很好的针对性培训指导

大公司的缺点:

- 做事情效率不一定高

- 领域比较狭窄,每个人都是螺丝钉

- 相对官僚一些

我的建议是:应该找所能找到的最好的大公司去实习,去小公司实习好过不实习

无论将来选择是就业还是创业,都应该去大公司经历一下,了解一下大公司的运作方式,了解如何进行有效的多人协作,学习他们的企业文化。这样你的视野会开阔很多,即时未来要创业,或者去小公司创业,你也知道将来做大了应该怎么去应对。

大公司一般门槛相对高一些,并不是每个人都有机会去大公司实习,那么这种情况下,去一个小公司实习也能学到很多学校学不到的东西。所以说去一个小公司实习,也好过不实习在学校虚度时光。

怎么找实习

计算机专业的学生,就现在的就业形势,找一个实习机会应该不会太难,一般来说,建议及早准备,不要等到大三暑假大四了还一点准备都没有,好的实习机会永远不会送上门的,一定是要自己去主动争取的。

所以平时可以多写写技术博客,把自己的技术心得写上去。经营好github账号,参与或者发起几个开源项目。这些都不需要多专业,用心经营,放在简历上一定能给人眼前一亮。例如对我来说,对于简历上有博客地址和Github地址的,我都一定会去看看的,会有极大加分。特别推荐看看这篇文章:怎样花两年时间去面试一个人

另外对于那些去实习过的师兄师姐还有同学,要多请教,让他们帮助内推,内部推荐的话成功概率会高很多。

最后就是要关注各大公司的招聘说明,很多大公司都有专门的实习生招聘网页,在各大招聘网站也可以找到很多实习岗位。

怎么更好的利用实习的机会

在实习的时候,怎么更好的利用实习机会呢?这个要展开说能讲很多,简单来说就是努力做出超出别人预期的事情,自然能脱颖而出

#2  -  2016-03-14 15:26:15
实习很重要,你不去实习就输在了起跑线上了。
#3  -  2016-03-14 22:52:34
赞站长。实习非常非常重要,瓜大很多学生在这点太吃亏了,我自己就不够执着,校招前一家公司都没去实习过。
#4  -  2016-03-15 05:15:08
对于想到企业工作的同学来说,去实习一下眼界会打开很多。
大神除外。
#6  -  2016-03-15 10:09:24
你是瓜大计算机专业的吗
#3明夷:
赞站长。实习非常非常重要,瓜大很多学生在这点太吃亏了,我自己就不够执着,校招前一家公司都没去实习过。
#7  -  2016-03-15 10:54:53
no
#6jeco:
你是瓜大计算机专业的吗

#8  -  2016-03-15 12:52:21
“努力做出超出别人预期的事情,自然能脱颖而出。”——大赞这句!
#9  -  2016-03-15 12:57:43
我在知乎上开了个专栏,偶尔会写写,都会同步到OL上来。
http://zhuanlan.zhihu.com/jimliu
#10  -  2016-03-16 10:49:13
不只是计算机专业,实习很重要
#11  -  2016-08-24 18:18:34
宝玉原来是我系师兄。
#12  -  2016-09-22 17:28:06
在知乎上看到有人说“活捉瓜大师兄一枚”,给我笑p了。

Copyright © 1999-2017 Openlab

微信订阅号