作为年轻的开发人员,我应该担心在工作中必须使用“过时的”技术吗?[关闭]


11

我是应届毕业生(去年五月!)。当我还在学校时,我想确保自己在毕业之前有一份工作,而且很早(可能太早)在求职中,我定了一个我希望本科毕业后要搬到的地区。

但是,由于几个原因,我几个月来一直在猜测这个决定。一个是我在工作中并没有受到很大的挑战,而且我觉得自从从这里开始以来,我在编程方面并没有太大的进步。不过,我总是可以抽出时间来从事开源工作(过去有过工作),所以我确实有一个机会来解决这一失望的问题。更重要的是,我担心我的工作基本上是在一个破旧的Perl Web应用程序上工作(使用Mason和一个奇怪的内部ORM)。

我是不是通过使用不再流行的技术来打我自己的脚,将来真的无法帮助我找到工作吗?我很少看到Perl的工作,而当我这样做时,通常是做我不感兴趣的事情(前端Web开发的东西)。

系统编程,可视化,网络编程或至少后端Web开发方面的东西是我真正喜欢的工作类别-似乎我目前的工作经验并没有帮助我完成这些工作。


12
您是在朝自己的脚开枪吗,不,当然不是。某人必须做您所做的事情,有时您必须从事这些工作才能获得经验,但是如果您毫不犹豫地寻找其他工作,那您就必须这样做。喜欢工作并获得报酬是可能的。并非每个工作都会带来挑战,那就是世界如何,使用内部工具和Perl并没有错。
Ramhound

13
至少不是MUMPS!
马丁·贝克特

1
我很不高兴,不是因为Perl(实际上有点好玩),而是因为我没有成长为程序员。我可以做一些工作以外的事情来提高自己的能力-这很困难,因为我很少有时间(我也是职业音乐家,所以我大部分时间都在当地音乐学院做演奏,教学,录音和学习时间我不工作)。我想我想说的是我想要一份可以在这方面为我工作的工作,而且我担心我目前的职位将如何影响我找到这样一份工作的能力。
schwern 2011年

5
@schwern:我一点也不担心。只需将这些语言放入简历中,然后申请下一份工作即可。:-)
乔治

7
Perl本质上是编程的胶带,它永远不会伤害并且可以并且几乎用于任何东西。
Ryathal 2011年

Answers:


51

首先,不要以为您的工作不会使您进一步实现理想的工作!每个工作都做!一切都取决于您!

  • 这是您毕业后的第一份工作,每个人都可以理解,您没有一个很好的选择,或者可能考虑了其他一些因素,例如搬到您想留下的地方。这是一个有效的“借口”,如果在求职面试中直接询问您可以提及。
  • 每个编程工作都有助于您成为开发人员的经验。每个开发人员都必须学习许多与语言无关的东西(实现松耦合架构,调试和分析代码,编写单元测试等),并且可以用任何一种语言学习,而Perl并不是最糟糕的语言。利用。我曾经在VBA中为MS Access开发实践过这三者,这很有趣。
  • 毕竟,这没有效果:只要您认为当前的工作很无聊且无用,您就不会学到很多东西。在许多情况下,您的未来雇主会对您的“学习曲线”感兴趣-您掌握新技术的速度有多快,而不是您上一份工作有多无聊!

因此,可以帮助您的方法如下:

  • 尽量精通当前使用的语言。在SO网站上观看perl标签,并尝试回答人们在那里提出的问题。阅读许多开发人员资源等上的论文。尝试成为该领域的专家!
  • Perl是一种多范式语言,现在支持OOP和许多其他范式。尝试将它们与语言分开,然后分别进行查看。Perl有什么类型的继承?班级和班级成员等可以使用哪些不同类型的访问修饰符?它是否为强类型?许多语言的功能都类似,只要您知道它的总体工作原理,就可以轻松捕获其他语言的差异
  • 对您当前的系统有深刻的了解:为什么要在Perl中实现它?在这里如何解决不同方面的问题,例如性能,安全性和可靠性?什么是尚未解决的问题,警告和潜在的违规行为?您将如何应对?也许需要对当前代码库进行一些合理的重构?

不要停留在这个岗位长期,如果你用它不满 -刚够学习基本技能,以显示你愿意了解你的意志力来克服你的任务迟钝!

当您在不久的将来或多或少地申请第二份工作时,您仍然可以被视为初级开发人员!您应该着重强调您在第一份工作中学到的知识,如何应对维护遗留代码和棕地系统的问题,如何扩大视野以及在那里学到的新功能。

永远不要,在求职面试中不要告诉您您对当前的工作感到无聊,这就是您寻找其他东西的原因。“乏味”是如此主观,通常意味着您不足以承受学习当前位置并相应地应用它们的挑战。我敢肯定,表现出学习的意愿,扩展的知识,您将获得梦想的工作。


2
+1表示建议毕业生遵循决定的建议,即使他们以后会后悔。我记不清我采访过的候选人的人数,这些候选人在面试中自shot自shot。如果候选人承认无聊做毕业生的预期工作,那么面试官就会认为,如果我雇用他们,他们会感到满意。我对任何新员工(无论是应届毕业生还是其他毕业生)的建议都是寻找工作上的挑战并充分参与。在最糟糕的情况下,他们将获得很好的推荐,在最好的情况下,他们将获得进步和更大的挑战。
S.Robins 2011年

您的热情使我感到高兴。+1是非常合理的建议。
Raveline'1

我经常面试应聘者的最大的软件公司之一,它肯定不会伤害候选人都来学院了一份工作是本质上是一个控股模式。
克里斯·皮特曼

1
+1-坚强的人不会坐在那里等待机会敲门,他们会站起来创造它们。
荒凉星球

7

软件行业的第一份工作通常是cr脚的工作。在学习一些编程技能的同时,您所接受的更重要的教育是如何在公司工作。

定期出现,每天工作8个多小时,使用源代码控制软件,与老板和同事打交道,接到凌晨3点的电话,因为生产服务器已经关闭并且需要修复...这些是您的技能从第一份工作中学习。

话虽这么说,如果您感到无聊而又不喜欢自己的工作,那就辞职。如果您认为这份工作不会帮助您实现最终的职业目标,请退出。有很多人才可以找到工作。


6

我将分别考虑您问题的不同方面:

  1. 您的第一份工作将永远不会是非常具有挑战性的。原因是大学在教您30年来需要的东西,而公司必须使用已经可用的技术进行工作。希望30年的技术比当前的技术更先进。半年的时间跨度还会导致工作与您在大学中所习惯的有所不同。
  2. 学习几乎是自己完成的。这是不幸的事实,但是人员的成本是如此之高,以至于他们必须始终在做一些有生产力的事情。最好的选择是将学习与生产性发展相结合,但是您将使用尚不了解的技术,这可能会因为您不了解所使用的技术而引起问题。如果要创建实际可行的东西,则必须在生产环境之外进行学习。在许多公司中,这仅意味着这是您的空闲时间。
  3. 您应该将perl视为一个挑战-如何改善您的工作习惯,这样不仅对perl有用,而且对您未来30年将要遇到的任何新系统都是有用的。
  4. 学习新事物时,请注意基础知识。Perl具有正则表达式,哈希表和许多良好的数据结构。有关如何最好地利用它们的所有知识在将来很有用。

第二点有点吓到我了。自从我很小的时候就开始编程,我一直都有很好的诀窍-即使在大学时,这也不是我必须非常努力的工作。播放音乐占用了我的大部分业余时间(练习,教学,学习,录音等),这似乎是我职业追求的方式。我还能在其中学习很多知识的工作(不仅涉及过程,还包括硬技能)是否存在?在学术界,也许?
schwern 2011年

1
当然,有些工作提供学习机会。好的开发人员不仅昂贵,而且也很少见-许多地方在招募人才时都希望人们接受更高水平的培训。这可以在内部通过指导进行,也可以在外部培训下进行(或二者兼有)。
FinnNk 2011年

音乐的东西也将是有用的。您可能还没有注意到它,但是它将教您准确的时间安排和音乐界以外的人需要使用大量数学来解决的问题。高级编程在很大程度上取决于这两个方面。
tp1

2
@schwern关键是要找到与聪明人一起工作的工作。然后,当您从事日常工作时,您会从与他们的接触中学习。
克里斯·皮特曼

5

您所说的“过时”技术就是这个行业的绝大部分。原因很简单:维护现有系统的开发要比开发新系统多。即使是在开发新产品时,通常也会使用较旧但经过验证的技术来开发它们,并且这些技术适合较大的建筑环境。这只是软件开发的现实。很少有开发人员能够始终在技术的“鲜血边缘”上工作。

我认为,与[按时插入超酷新技术]相比,按时,按预算和按预期交付的荣耀要少。那是您只能从经验中学到的东西,并且完全与技术无关。我想你现在正在学习中。在工作中继续学习软件开发的技巧和技巧,并尽可能在工作之外跟上技术曲线。这就是我们大多数人这样做的方式。


+技术风格一直在变化。今天最酷的是明天不再有人做。一个人应该只是主管和专业。每当出现新的奇异事物时,都要知道如何从绒毛中分离出价值,并知道何时使用和何时不使用。
Mike Dunlavey,2012年

5

与其他所有人不同,这项工作很可能会伤害您。我定期面试那些试图摆脱大学毕业后的第一份工作的候选人。他们通常使用倾向于用于维护的语言以及大量内部“框架”来陷入困境。换句话说,他们已经学会了如何使用他们永远无法再使用的一些工具包,这浪费了可雇佣性。

最重要的是,我接触过的大多数维修店都没有教您成为真正开发工作所需的技能。当我面试某人的第一份工作时,我想知道他们理解:

  1. 一些常见的软件开发生命周期
  2. 源代码控制
  3. 如何测试代码(TDD,单元测试,硒,类似这些的东西)
  4. OOD原则(例如:在大学里,您希望接触到设计模式,现在告诉我您已经实际使用/看到过它们)
  5. 对企业体系结构的基本了解(例如,什么是3层系统,并且您曾经使用过3层系统)
  6. 如何与团队合作

在接触第一手工作时,我会接触到聪明的人,并每天与他们一起工作,从而掌握了其中的大多数技能。如果您认为自己没有学到任何东西(关于软件或业务),那么就开始寻找另一份工作。

编辑:作为旁注,我记得大学毕业后找工作。我当时参加职业展览会,并开始与一些与律师事务所合作的公司交谈。我开始向他们询问他们的开发实践,结果发现他们在VBA中做了所有事情。我感谢他们的时间,并离开了那里。


+了解您的VBA故事。我本质上不介意VBA,但要以此为职业吗?你做了正确的事情。
Mike Dunlavey,2012年

我部分同意您的观点,但是我认为大多数程序员比他们所行使的灵活性要大得多,您提到的很多事情都是发贴人可以带给自己的。即使公司不是,也开始使用源代码管理。鼓励他人效仿。开始进行测试,开始尝试进行改进。如果您正在处理的东西很糟,请减少它的吸收。
Christopher Cashell 2012年

3

如果我是你,我当然会考虑用另一种语言(例如,Python,Java,Scala,Ruby,C ++等)进行一些课后阅读和编程,因此当您申请另一份工作时,您可以证明自己对语言有所了解比Perl更广泛使用的语言。另外,如果您还有其他兴趣领域,我肯定会做一些额外的阅读。

另一方面,请注意,无论使用哪种编程语言,您使用的许多编程技术可能都是相同的。

因此,我的建议还是:不要太担心,而要在业余时间开始学习新东西。一旦您掌握了足够的知识,您一定会找到更加激动人心的工作。


2

如果您不想再在Perl中工作,那很好。

仅仅因为Perl 当前没有很多Flash,并不意味着它不受欢迎。


我想指出的是,在过去的5年中,Perl的发展势头急剧增加。

有在过去的已经的Perl更稳定的版本2年,比有过任何往年。

Moose被认为是迄今为止最好的Perl对象系统之一,并且最早可以追溯到2006年初。接下来流行的对象系统基本上是简化的Moose对象系统。

如果您想证明Moose的受欢迎程度,请查看Moose依赖多少CPAN模块

在需要Moose的模块中有Dist :: Zilla,它一直需要Moose。如果您不知道,Dist :: Zilla可以说构建和发布CPAN模块的最佳方法。


还有一些很酷的项目正在使用Perl。Lacuna Expanse为一。


2

有人必须在麦当劳收拾垃圾,清理厕所,挖沟并工作。现在,您正在执行该软件的开发版本。

NOTHING错误地认识和渴望的东西更大!

您现在所要做的肯定会影响您明天,明年和未来十年的工作!

其他说不同的人都试图让您沮丧或让自己在同一个令人沮丧的地方感觉更好!

至于Perl,在“职业”这个词的意义上,它已经过时了。除非您想以Perl的身份从事职业,否则请开始学习更新和流行的知识。Python,Java,C#将打开更多的大门,更具市场价值,或者像Erlang一样在几年后将其推向新的高度。

所有的说,*学习如何办**是一样有价值的怎么办,并从别人的错误中吸取教训比从自己的学习那么痛苦。

现在,您在这两件事上都得到了教训。


-1:有人必须拾起垃圾,清理厕所,挖沟,然后在麦当劳工作。现在,您正在执行该软件的开发版本...现在的工作肯定会影响明天,明年和未来十年的工作!-太好了...所以,如果我要在麦当劳打扫厕所或翻转汉堡,那十年后我会离开哪里?:?
Jim G.

这项工作没有错,您不能没有基础就从头开始。有人必须做这项工作,我的回答最重要的一点是,追求更大的东西并没有错,而您却完全错过了。

1

对perl优秀的人仍然有大量需求。您会发现网络行业以及许多基于* nix的sysadmin作业广泛使用了perl。

话虽这么说,但我回应其他人建议突破自己的界限。即使您只是在使用perl,也要找到优化和简化程序的方法。例如,如果您看到程序采用线性方法(通常是经验不足的程序员的标志),您是否可以找到一种方法来对代码进行模块化以提高可维护性?不论语言如何,都能读取一点代码并将其优化并将其转换为更好的代码的基本能力是一项备受追捧的技能。


公平地说,他没有敲Perl,他只是说那不是他将来想要做的工作。因此,存在Perl作业的事实是次要的。
R0MANARMY 2011年

来自OP的@ROMANARMY:“我很少看到Perl的工作,而当我这样做时,通常是做我不感兴趣的事情(前端Web开发工作)。系统编程,可视化network programming或至少是后端Web开发工作是我实际上喜欢在“嗯……不是我读的东西……”这类主题,并且在那些领域有工作……例如,如上所述的网络行业。我在一家1级互联网公司工作,perl被广泛用于后端工作。
比尔

1

寻找机会来建立和维护其他语言的经验,同时表明您是一个能勇于挑战的敬业员工。驱使自己保持稳定的工作成果,以达到可以达到的最高质量,并利用任何闲暇时间从事更多工作,或者允许他们创造可以使您在其他领域发展技能和知识的事物。即使是一个简单的演示,也可以通过不同的方式(使用更加流行的语言)解决实际的业务问题,也可以使您提高技能,并向老板表明您正在积极思考。请注意,不要仅仅因为从事辅助项目而被视为逃避其他职责。

奉献是关键。毕业生不会在多种语言上拥有多年的经验。您始终可以花费一年的时间来发展基本的沟通技巧,并表明您可以应对挑战,即使挑战是超越您觉得“无聊”的事物。了解到继续前进时如何提升技能的机会。您应该继续在工作中学习,并向下一位雇主表明您正在积极寻求提高技能的机会。

请记住,没有人喜欢使用“全知”。我一直在寻找想要学习和成长的人,甚至是高级职位。


1

Schwern,

我曾经在很多方面认为与您完全一样。我从大学毕业,在Java和Python方面有很强的技能。我的第一份工作是与Delphi合作。我立刻对此感到担心,但是由于我没有工作并且刚从大学毕业,我决定忍痛接受这份工作,因为我会成为一名程序员,而不论使用哪种语言。

我的第二项工作涉及大部分时间在一家大型银行从事Smalltalk开发,并使用Perl和Java。由于无法找到Java核心开发人员的工作,我的朋友们嘲笑我,并告诉我我正在破坏我的简历。我现在期待在几周内开始一项新工作,这项工作拥有我想使用的所有技术,并且薪水更高。

显然,我不能说您的经验将与我的经验相同,但是您可以从中吸取一些教训,以进行思考。首先,编程是您所做工作的第二要务。如果您具有良好的领域建模能力并且可以快速学习业务流程,那么从长远来看,这将带来更多的回报,而不是避免学习业务的运行方式,而将更多的时间花在处理次要问题上,而我在大多数地方都看到过我工作了

您需要记住的第二件事是您在另一个人的时钟上。如果您想对做些什么拥有自己的发言权并完全控制一切,那么您就可以自己创业。我看过太多的人加入一家公司并抱怨传统技术,当我第一次毕业时,我自己做了。通常,这些人被视为对工作场所有毒,不会持续很长时间。要记住的关键是技术可以支持业务,而不是相反。在这种情况下,您能做的最好的事情就是从中创造机会,否则,是时候打包打包离开并寻找其他工作了,但是您要找到所服务的每家公司都会遇到某种遗留问题。

除了我提出的内容之外,我想说的是,您不想显得“制度化”。我的意思是,您将坚持使用特定的语言和技术,并且无法超越。您想在职业中培养一些灵活性,其中包括领域建模技能。自从您开始职业生涯以来,我将向您介绍一些我希望在我开始时能得到的好材料:

热情的程序员

实用程序员

领域驱动设计

职业程序员


0

在工作之外编写一些代码,但我不觉得您现在还没有受伤。您是新近招聘的人员,所以您是入门级开发人员-在游戏的这个阶段,您应该学习诸如开发周期以及应该如何做的事情。

在工作以外进行一些活动,以便您可以统计自己的数据。我认为,您可以编写代码,也可以不编写代码。语言和语法是可以学习的,但是不能自己思考和解决问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.