3

我是蒙特利尔软件工程专业的学生。在过去的 3 年中,我进行了几次实习(每年一次)。前两个(在同一家公司)主要是系统管理员工作,但我确实做了一些 Perl 程序(主要是日志文件分析和统计生成)。

我的另一个实习是在 IT 安全领域。我做了一个巨大的 CGI Perl 脚本来分析用户在 Internet 上花费的时间。

问题是,我真正想做的是编程,但我的实习主要是一些编程的系统管理员工作(由于我以前在 Linux 和 UNIX 方面的经验)。

今年冬天我还有另一个实习,但是我希望它是在 OO 编程领域和 SW 工程领域。

我有系统管理方面的背景,但由于我的大学课程和项目(C++、Java、VB.NET、ASP.NET,但不幸的是不是 C# :( ),我非常了解 OO。

我的问题是:如何在面试中与其他有 OO 经验的学生竞争以前的实习?

我的“卖点”应该是什么?我认为自己是一个很好的程序员,但由于缺乏经验,我之前的面试结果并不好。事实上,我去年冬天在系统管理部门获得了实习机会,因为,嗯……那是我的背景!

尽管我缺乏专业经验(但有很多个人知识(和兴趣)),如何让潜在雇主相信我是完美的候选人,有什么技巧吗?

谢谢,

纪尧姆。

[编辑]

谢谢大家的支持!

我还没有离开学校;我还是个全日制学生!我的大学课程是合作课程:我必须获得 3 次实习才能获得文凭。

让我简单解释一下我的背景:今年冬天将是我的第四次实习。

我的前两个是在我在魁北克的高中后但大学预科学校 CÉGEP 学习的时候。

第一个是 CÉGEP 实际给我的:一位雇主来找我,寻找有 Linux 系统管理知识的人。我非常适合这份工作,因为我是唯一一个在校外了解 Linux 的学生。我的面试甚至不是真正的面试,因为所有细节都在我的学校和雇主之间讨论过:我知道在面试之前我就被录用了。

一年后,第二个在同一家公司,因为我非常喜欢我的第一个。

然后我到达了我的大学,每个学生都必须有 3 次实习才能获得他(或她)的文凭。在计算机科学面试方面没有真正的经验(因为我的第一次实习是“给予”我的),我在为 OO 工作进行面试时做了一些搞砸的事情。我终于在庞巴迪宇航公司获得了安全/系统管理员/Perl 编程工作的面试机会。

我的实习很顺利,但现在我想要一份真正的软件开发工作。我认识的所有人去年冬天都有过一次,这意味着我在经验方面处于不利地位。

但是,我确实有编程经验。我所有的实习都要求我进行大量的编程,尤其是在 Perl 方面。我的 Perl 技能非常好,我必须为我工作的两家公司开发一些不错的工具。我解决了在学校没有遇到的实际问题(比如如何有效地解析 5 GB 的日志文件,同时保持尽可能低的内存使用)。

显然,如果我申请 sysadmin 领域或 Linux 领域的工作,我可以在今年冬天轻松获得实习机会。每年都有一些可用的,我在该领域有很多经验,但如前所述,我希望我的下一个实习是在软件开发方面。

我目前正在开发一个 Java 个人项目,这是一个小型 UML 类编辑器。所以我开始处理 Swing 框架、侦听器、MVC 架构等。这并不像在“现实世界”中所做的那么大,但它是一个有趣的项目,我在做这件事时很开心,如果我能在下个月取得进展,我可能会加入 SourceForge。同时我也在学习JSP。

至于OO开源项目,这是我应该研究的。作为一名全日制学生,我现在可能没有时间,距离我的第一次面试还有一个月的时间,但我不会放弃这个选项。

无论如何,谢谢你!

4

9 回答 9

4

没有冒犯,但从您的描述看来,您并不真正有资格从事“真正的”面向对象编程工作。学术课程是对语言的一个很好的介绍,但不能替代解决截止日期波动、挑剔的用户、挑剔的经理等的实际问题;-)

这留下了三个选择:

  1. 加入一个使用 OO 和您知道的语言的开源项目,并为之做出重大贡献。这将提供真实编程经验的模拟[但不是真实的工作经验],并可能帮助您在另一年或两年内获得一份编程工作

  2. 或者,申请一个入门级的 OO 编程工作,并用你的沟通技巧、传染性的热情、渴望学习、对客户/用户/任何事物的承诺等给面试官留下深刻印象。换句话说,展示和推销自己说实话,但作为“完整的包裹”,只需要爆炸的机会。

    • 如果你被拒绝了很多,不要气馁
    • 不要申请你并不真正想要的工作
    • 如果不是两到三年,希望在工作中至少工作一年,以便真正学习如何在非学术环境中编程
  3. 以顾问、程序员、自由职业者和/或开发产品的身份开始自己的事业,并按照自己的节奏学习。这在放学时是有风险的,在学校时风险较小,如果你发生在一个无人居住的地方可能会非常有利可图

于 2008-09-16T03:07:18.060 回答
2

嗯,获得即时、记录、经验的一个地方是通过开源项目。加入一个项目,或开始一个新项目。帮助有关 OSS 项目的文档(雇主很乐意看到这一点)。帮助编写单元测试、贡献补丁等。越早开始越好。

开源经验是好的和经验,它显示了对开发和您工作的语言的奉献精神。

祝你好运

于 2008-09-16T01:38:55.010 回答
1

能力和热情会让你走得很远。如果你能回答面试问题,解决编程问题,并且你有正在从事的个人项目,那么缺乏经验不应该让你退缩太多。

不过,请确保您提出问题。如果你没有经验,你必须知道你的东西冷以弥补它。

一定要强调副业。如果我采访一个喜欢把空闲时间花在家里编码的人,他们会得到很多加分。

于 2008-09-16T01:38:14.620 回答
1

首先,我一直遵循的一件事从未让我犯错,那就是诚实。如果你不知道某事,就说“我不知道”。这对于编程面试非常重要,而且很容易理解。

接下来,花时间开始和/或参与一些开源项目。说你在一个开源项目上工作说明了很多。首先,它表明您可以了解其他人的代码,并有决心与编程社区中的其他人协作。这有很长的路要走。我遇到过一些雇主,当他们可以确认我为各种开源项目做出贡献时,他们实际上会跳过筛选过程。这可能是你在该领域缺乏经验的最佳防御。

如果您有经验/驱动力,那么请在用户组会议和/或代码营中进行演示和/​​或编码会议。这也有很长的路要走。显示您可以在这样的场景中与其他程序员交谈和交谈,它向雇主表明您喜欢编程和与社区合作。

最后,从低位开始。你需要从图腾柱的底部开始,但要努力工作并证明你是一个优秀的程序员,招聘人员/雇主会敲你的门。

于 2008-09-16T01:38:28.677 回答
1

你 A) 在这个网站上发布了一个问题并且 B) 有一个博客出现,这表明你有激情。这是很多人没有的一件事,所以你对你有利。用这种热情来扩展你的知识。

如果你真的像你所说的那样对编程充满热情,那么就开始编程吧。你不能通过思考自己的方式来学习如何编程。获得经验的唯一方法是编程。对于像你这样的人,找到一个你想要帮助的开源项目并开始贡献。这将为您提供使用源代码控制等方面的宝贵经验。

另一件事是找到一种你认为你可以真正落后并深入研究的技术,尽可能地学习关于该技术和该平台的所有内容。让自己沉浸。我这么说的原因是因为如果你对这个和那个知之甚少,有人不会雇用你。他们希望你能够走进去工作。这并不意味着你不应该“玩”其他东西,而是帮自己一个忙,把它们从你的简历中删除,除非你有生产经验。

希望有帮助。-基思

于 2008-09-16T01:42:23.800 回答
1

带上一些 Perl 代码:

  • 展示了一种你可以引以为豪的编程风格,
  • 做一些有意义且有用的事情,并且
  • 是面向对象的(有充分的理由,不仅仅是为了证明你可以反刍语法)
于 2008-09-16T20:01:25.093 回答
0

为某些CPAN发行版贡献补丁。这将向您展示:1) 使用 CPAN - 经理喜欢可以更快编写代码的人 2) 可以阅读和修改某人的代码。

学习Moose / Mouse - 这是 Perl 的现代 OO 系统,它比从 Python 复制的旧 OO 系统要好得多。

于 2008-10-24T22:16:52.993 回答
0

每个公司都不一样。我一直是软件公司的高级软件开发人员,甚至从未有人问过我编程问题。

在面试中尽力而为,做你自己。

我发现 OOP 很有用,但有时在其中工作的范式被高估了。功能分解可以让你走得很远。

于 2008-12-21T06:47:32.743 回答
0

你可能在 C++ 课上取得了不错的成绩,但教授会推荐你实习吗?

您学校的声誉或缺乏声誉可能会影响选拔过程。

于 2009-02-17T20:59:53.857 回答