在sysadmin / Perl / Linux背景下"赢得" OO编程工作面试?
我是蒙特利尔的软件工程专业的学生。在过去的三年中,我经历了几次实习(每年一次)。前两个(在同一家公司中)大部分是sysadmin作业,但我确实做了一些Perl程序(主要是日志文件分析和统计信息生成)。
我的另一个实习经历是IT安全领域。我做了一个巨大的CGI Perl脚本来分析用户在Internet上花费的时间。
问题是,我真正想做的是编程,但是我的实习期大部分是具有一些编程的sysadmins职位(由于我以前在Linux和UNIX上的经验)。
我今年冬天还有另一个实习机会,但是我希望它能在OO编程领域和SW工程学中。
我有系统管理方面的背景,但是由于我的大学课程和项目(C ++,Java,VB.NET,ASP.NET,但我并不十分了解OO :)。
我的问题是:如何在面试中与以前在OO领域没有工作经验的人(尽管我在Java,Swing等中构建了一些项目,并且现在正在学习JSP)竞争,与其他具有OO经验的学生竞争以前的实习机会?
我的"卖点"应该是什么?我认为自己是一个很好的程序员,但是由于缺乏经验,我以前的面试结果并不理想。实际上,去年冬天我获得了系统管理方面的实习机会,因为……那是我的背景!
关于如何说服潜在雇主尽管我缺乏专业经验(但有很多个人知识(和兴趣))但仍能使我成为理想的应聘者的任何技巧?
谢谢,
纪尧姆。
[编辑]
谢谢大家的支持!
我还没放学;我仍然是全日制学生!我的大学课程是一种合作计划:我必须获得3个实习才能获得文凭。
让我简要解释一下我的背景:今年冬天将是我的第四次实习。
我的前两个是在CGEP(魁北克的高中后大学预科学校)学习期间。
第一个是CGEP实用地给我的:一位雇主来找我,寻找Linux系统管理方面的知识。因为我是唯一在校外认识Linux的学生,所以我非常适合这份工作。我的面试甚至都不是真正的面试,因为所有细节都在我的学校和雇主之间进行了讨论:我知道我在面试之前就已经被录用了。
第二年是在同一家公司,一年后,因为我非常喜欢我的第一个。
然后我到达了我的大学,那里的每个学生都必须有3个实习才能获得他(或者她)的文凭。由于没有计算机科学面试的实际经验(因为我的第一次实习是"给我的"),所以我在进行面向对象的工作面试时做了一些麻烦。我终于设法在庞巴迪宇航公司进行了安全性/系统管理员/ Perl编程工作的面试。
我的实习进展顺利,但是现在我想要一份真正的软件开发工作。我认识的所有人去年冬天都有一个人,这意味着我在经验方面处于劣势。
但是,我确实有编程经验。我所有的实习工作都要求我做大量的编程工作,尤其是在Perl中。我的Perl技能非常好,我必须为自己工作的两家公司开发一些不错的工具。我解决了学校里未曾见过的实际问题(例如如何有效解析5 GB日志文件,同时保持尽可能低的内存使用率)。
显然,如果我在sysadmin域或者Linux世界中申请工作,那么今年冬天我很容易获得实习机会。每年都有一些可用的软件,我在该领域有很多经验,但是如前所述,我希望我的下一个实习岗位是软件开发。
我目前正在使用Java(一个小型UML类编辑器)进行个人项目。因此,我开始处理Swing框架,侦听器,MVC架构等。这不像在"现实世界"中所做的那么大,但是它是一个有趣的项目,并且我在做这个过程中很有趣,如果我可以在下个月取得很大进展,我可能会使用SourceForge。同时我正在学习JSP。
对于OO开源项目,这是我应该研究的东西。作为一名全日制学生,距第一次面试还有一个月的时间,我现在可能没有时间做这件事,但我并没有放弃这个选择。
无论如何,谢谢!
解决方案
回答
才智和热情会带给我们很长的路要走。如果我们可以回答面试问题,解决编程问题,并且有正在从事的个人项目,那么经验不足不应使我们退缩太多。
不过,请务必确定问题所在。如果我们没有经验,那么我们必须知道自己的东西很冷可以弥补。
确保强调辅助项目。如果我采访某个喜欢在业余时间在家上班的人,他们将获得很多加分。
回答
首先,我一直遵循的从未使我犯错误的一件事是诚实。如果我们不知道某些内容,请说"我不知道"。当涉及到编程面试时,这一点非常重要,并且非常易于遵循。
接下来,花点时间开始和/或者参与一些开源项目。说我们在一个开源项目上工作很多。首先,它表明我们可以使用其他人的代码,并且有决心与编程社区中的其他人合作。这有很长的路要走。我遇到了一些雇主,当他们可以确认我对各种开源项目做出了贡献时,他们实际上会跳过筛选过程。这可能是我们克服该领域经验不足的最佳选择。
如果我们有经验/动力,那么可以在用户组会议和/或者代码训练营中进行演示和/或者编码会议。这也有很长的路要走。显示出我们可以在这种情况下与其他程序员交谈和交谈,它向雇主表明我们喜欢编程和与社区合作。
最后,从低开始。我们将需要从图腾柱的底部开始,但要努力工作,并证明自己是一名优秀的程序员,而招聘人员/雇主将竭尽全力。
回答
好吧,获得即时,有据可查的经验的一个地方是通过开源项目。加入一个项目,或者开始一个新的项目。帮助提供有关OSS项目的文档(雇主很乐意看到这一点)。帮助编写单元测试,提供补丁等。而且,越早入门越好。
开源经验是很好的经验,它显示出一定程度的奉献精神和我们使用的语言。
祝你好运
回答
由于我们A)在此站点上发布了一个问题,并且B)出现了博客,表明我们充满激情。这是很多人所没有的一件事,所以对我们有利。用这种热情来增进知识。
如果我们真的对编程充满热情,那就开始编程吧。我们无法通过思考自己的方式来学习编程。获得经验的唯一方法是编程。对于像我们这样的人,找到我们想要帮助的开源项目并开始做出贡献。这将为我们提供在使用源代码管理等方面的宝贵经验。
另一件事是找到一种我们认为可以真正落后并深入研究的技术,学习有关该技术和平台的所有知识。沉浸于自己之中。我之所以这样说,是因为如果我们对此有所了解,就不会有人雇用我们。他们希望我们能够走进去工作。这并不意味着我们不应该"玩弄"其他东西,而是要帮自己一个忙,除非我们有制作经验,否则不要将它们放在简历上。
希望能有所帮助。
-基思
回答
没有冒犯,但从描述看来,我们似乎没有资格真正从事"真正的" OO编程工作。学术课是对语言的很好的入门,但不能替代解决随着时间的变化,挑剔的用户,粗俗的经理等实际问题的人;-)
这留下了三个选择:
- 加入使用OO和我们所知道的语言的开源项目,并为之做出重大贡献。这将提供真实的编程经验的类比(但不能提供真实的工作经验),并且可以在未来一两年内获得编程工作
- 不要申请你不想要的工作
- 期望至少工作两年或者三年,以真正学习如何在非学术环境中编程
- 以顾问,程序员,自由职业者的身份开始自己的业务,和/或者开发产品,并按照自己的进度学习。放学时这是有风险的,放学时这是较低的风险,而且如果我们是在闲置的小生境中发生的话,那将是非常有利可图的
回答
带上一些Perl代码:
- 展示了我们引以为傲的编程风格,
- 做一些有意义的事情,并且
- 是面向对象的(出于充分的理由,不仅仅是为了证明我们可以重新定义语法)
回答
为某些CPAN发行版贡献补丁。这将表明我们:1)使用CPAN经理爱可以更快编写代码的人们2)可以阅读和修改某人的代码。
研究Moose / Mouse是Perl的现代OO系统,这比从Python复制的旧OO系统要好得多。
回答
每个公司都不一样。我曾经是软件公司的高级软件开发人员,甚至从未问过编程问题。
在面试中尽力而为,成为自己。
我发现OOP很有用,但有时会高估它的工作范式。功能分解可以使我们受益匪浅。
回答
我们可能在C ++课上获得了不错的成绩,但是教授会推荐我们参加实习吗?
我们学校的声誉或者缺乏声誉可能会影响选择过程。