具有 sysadmin/Perl/Linux 背景的“赢得”面向对象编程工作面试?[关闭]

StackOverflow https://stackoverflow.com/questions/68548

  •  09-06-2019
  •  | 
  •  

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

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

问题是,我真正想做的是编程,但我的实习大部分是系统管理员工作和一些编程(由于我以前使用 Linux 和 UNIX 的经验)。

今年冬天我还有另一次实习,但我希望是在面向对象编程领域和软件工程领域。

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

我的问题是这样的:以前没有 OO 领域的工作经验(尽管我用 Java、Swing 等构建了一些项目,现在正在学习 JSP),如何在面试中与其他在之前实习中具有 OO 经验的学生竞争?

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

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

谢谢你,

纪尧姆.

[编辑]

感谢大家的支持!

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

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

前两次是在魁北克省高中后大学预科学校 CÉGEP 学习期间。

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

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

然后我到达了我的大学,那里要求每个学生必须有3次实习才能获得他(或她)的文凭。由于没有真正的计算机科学面试经验(因为我的第一份实习是“给”我的),我在面试面向对象工作时犯了一些错误。我终于成功获得了庞巴迪航空航天公司安全/系统管理员/Perl 编程工作的面试机会。

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

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

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

我目前正在开发一个 Java 个人项目,它是一个小型 UML 类编辑器。所以我开始处理 Swing 框架、侦听器、MVC 架构等。这不像“现实世界”中正在做的那么大,但它是一个有趣的项目,我做起来很有趣,如果我能在下个月提前完成它,我可能会把它放在在 SourceForge 上。同时我也在学习JSP。

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

不管怎样,谢谢你!

有帮助吗?

解决方案

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

这留下了三个选择:

  1. 加入一个使用 OO 和您了解的语言的开源项目,并为其做出重大贡献。这将提供真实编程经验的模拟[但不是真正的工作经验]并且 可能 帮助你在一两年内找到一份编程工作

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

    • 如果你多次被拒绝,不要灰心
    • 不要申请你并不真正想要的工作
    • 期望在工作中工作至少一年(如果不是两三年的话),以真正学习如何在非学术环境中编程
  3. 作为顾问、程序员、自由职业者和/或开发产品开始自己的事业,并按照自己的节奏学习。当你不在学校时,这是有风险的,在学校时,风险较小,如果你碰巧遇到一个空闲的利基市场,可能会非常有利可图

其他提示

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

开源经验是很好的经验,它显示了对开发和您所使用的语言的奉献精神。

祝你好运

天赋和热情会让你走得更远。如果您能够回答面试问题、解决编程问题,并且您正在从事个人项目,那么缺乏经验不应给您带来太多阻碍。

不过,请确保你解决了问题。如果你没有经验,你就必须了解你的东西来弥补。

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

首先,我始终遵循且从未导致我错误的一件事是诚实。如果您不知道某事,请说“我不知道”。这在编程面试中非常重要,而且很容易遵循。

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

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

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

事实上,您 A) 在该网站上发布了一个问题,并且 B) 拥有一个博客,这表明您有热情。这是很多人都没有的一件事,所以你可以利用这一点。利用这种热情来拓展您的知识。

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

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

希望有帮助。-基思

随身携带一些 Perl 代码:

  • 展示了您可以引以为傲的编程风格,
  • 做了一些重要且有用的事情,并且
  • 是面向对象的(有充分的理由,不仅仅是为了证明你可以反省语法)

为一些贡献补丁 CPAN 分配。这将向您表明:1) 使用 CPAN - 经理喜欢能够更快编写代码的人 2) 可以读取和修改某人的代码。

学习 驼鹿/老鼠 - 它是 Perl 的现代 OO 系统,比从 Python 复制的旧 OO 系统要好得多。

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

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

我发现 OOP 很有用,但有时被高估了。函数分解可以让你走得更远。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top