大学生实习是去大公司好还是小公司好

最近看到了这个问题。
首先这个问题不太正确?
正确的问题是“如何实习最好?

你的目标是什么

回答这个问题,首先要想清楚自己未来的目标。
我们假设你的目标是做一名软件开发工程师,实习期是3~6个月。
我们的问题就变成如何在3~6个月里,让你向你的目标前进
更明确是问题是在你找工作的时候,你的简历上写什么?给你的面试官说什么?

以后工作面试中,看中你的什么

从我个人做面试官的经验来说,大学生\研究生 简历上实习经验最重要。
另外一个重要的是你的研究方向(不过现在这里面的水分太多,技术含量要么不大,要么不对口。)
至于你考试的分数、特长、获过什么奖之类的,只有参考价值。

最好的实习机会是什么

你有个面试实习生的机会,你的目标是成为一名软件开发。
最好的实习机会是:

  • 让你每天开发810小时,一周工作56天。
    似乎有点自虐,不过这样确实可以快速提高你的能力。
  • 写大量的code很重要。
    开发工作一般有两种:开发新功能和修Bug。
    修Bug对新手的帮助不大。可是却经常让新手干。
  • 方向很重要。
    如果你想搞算法,就最好找相近方向的工作。

因此,在你面试结束的时候,你要问清楚对方让你干什么。
你可以给对方说,你可以接受加班,但是必须是开发工作,开发新功能的,让你有机会写大量代码的。
如果,对方说先让做一些测试。我认为你应该放弃这次机会。
这是因为:你做了3~6个月的测试,以后找工作的时候,很可能让你做测试工作。

事与愿违

现在从公司的角度看这个问题。公司为什么招实习生?两个原因:一个是宣传公司,一个是有可能把好的实习生招成正式员工。
公司的那个开发团队为什么招实习生? (这个和公司是不一样的)两个原因:一个是公司的任务,一个有可能把好的实习生招成正式员工。
其实从开发团队的角度来说,让实习生参与到开发里是个极大的风险(需要培训,能力问题,是不是会随时离开,项目进度等等)。
大公司有可能不会让实习生接触code (安全规范的限制)

我见过的实习机会有:

  • 做测试
  • 修一些Bugs
  • Run Build, 每天写build报告
  • 开发小工具
  • 做些无聊的事儿 (比如把软件管理系统里,几百个tasks的状态改改。)
  • 闲着(我面试过一个研究生抱怨说,在他实习的期间,开发团队帮他安排在不同楼层的一个工位上,再没理过他。)

好吧,说到这里,让你开发新功能的机会很小。上面修Bugs、开发小工具,算是比较好的实习机会。其实闲着的机会最好,我不是开玩笑。
其实,小公司(越不规范的公司)给你的机会可能越多。

也许不实习更好

其实许多实习机会对你不重要。从找工作的角度上说,你需要的是简历上内容。更重要的是你需要提高自身的能力。
你面试的时候说,实习给了你了解大公司的文化,管理等等,基本上是瞎扯。
你可以不实习。
如果你可以很好的利用3~6的月时间干更多的事儿。比如自己做一个项目,你一个人也好,和其他人合作也好。
你完完全全可以把这个项目写到你的简历中去,可以说这是你实习期间干的事儿。

这里有些规则:

  • 你能够全身心的投入到这个项目里。
    如果你个人控制力强,最好,如果不行,让你的同学或者老师监督你。
    这就是我说为什么一个闲着的实习机会最好,公司的环境可以让你更专注。
  • 有个比较好的方向。有新知识进来。
  • 要有大量的产出物:Code和文章。
    学习一个知识,看一本书比不上自己实现和利用它,在自己实现的过程中,你可以学会很多东西,理解也更深刻。

这里写一些我觉得比较好的例子:

  • 可以学习一些人工智能的算法,写个程序实现这些算法,还可以测试、应用这些算法。再写一些文章。
  • 可以学习一个框架,写个系统使用这个框架。这个系统要有完整性,你可以设想许多功能,然后实现这些功能。
  • 可以仿照现有的软件。比如ant, junit等等,可以使用相同的接口\设计,自己写一个一模一样的,小规模的。

一些坏的例子:

  • 只读书。
  • 写类似于Hello World的程序。
posted @ 2016-06-18 12:20  SNYang  阅读(7568)  评论(1编辑  收藏  举报