业余爱好项目的重要性[关闭]


103

我想知道,业余时间编程有多重要?是否有必要以9-5的程序员身份工作,然后回到家并按自己的爱好工作,成为一个更好的程序员?

这就是说,我知道您只会在编程方面变得更好。

准雇主在面试中是否考虑了业余爱好编程,还是出于好奇而问这个?

我没有一个业余项目而感到内gui,但是我能想到的一切都已经完成了。因此,我对此有两种想法,开始做一些已经完成的事情,或者离开它直到我想出一些原创的东西?


6
在“不开始已经完成的事情”部分上-如果这是一个FOSS项目,总是有可能加入团队并共同努力。
TC1

41
“您不会停止比赛,因为您会变老;你变老了,因为你不再玩了。” —本·富兰克林。

1
你为什么没有一个爱好项目?(我问
得很对

4
我相信,拥有一个爱好项目自然会使您成为一个更好的程序员。如果您没有这份工作,您只会将编程视为平凡的工作,而不是有趣,具有挑战性和有趣的事情。
2011年

1
雇主之所以问,是因为他们想了解您热衷的事情。有些东西与特定的工作环境相吻合,而有些则不然。我怀疑大多数公司都会因为没有业余爱好项目而责备您。但是,如果您在工作之余对某些事物充满热情,那么他们也对它充满热情,这可能表明它很合适。
SoylentGray 2011年

Answers:


145

我因没有业余爱好而感到内

感到内is是开始编程项目的疯狂原因。也可能是开始讨厌编程的好方法。因为一些工作,不是因为你觉得应该

但我能想到的一切都已经完成。

呸! 谁在乎它是否已经完成?再来一遍!做的更好!或者,接受您可能无法做得更好并且仍然无法做到的事情。如果微软说“好,有人已经创建了数据库/电子表格/文字处理器/操作系统/ IDE /项目经理/资金经理/基于C的单继承动态面向对象的语言/ Web浏览器/ Web服务器,那么微软在哪里呢? /音乐播放器/移动平台/搜索引擎,因此我们会寻找其他事情做...”?

认真地说,如果您编写Web服务器,它可能不会超越Apache,但您一定会在此过程中学到宝贵的经验。您不太可能超过《愤怒的小鸟》,但编写一个简单的小型视频游戏也会对您有很多帮助。


78
项目可以像孔雀鱼一样-刚开始时一对夫妇,在不知不觉中已经有35只。其中一些孔雀鱼可能变成了沙土大小的宠物,其中一两个可能变成了猫或狗大小的宠物。 。但是,从孔雀鱼开始,不要犹豫,冲洗不起作用的孔雀鱼。
卡莱布

5
+1是!仅仅因为它已经完成过,并不意味着您不应该这样做。只需做您想做的事情,您就会从自己做的事情中学到很多东西。
Spoike 2011年

14
学习爵士即兴演奏的最好方法之一是模仿伟大音乐家的独奏。编程是完全相同的方法-构建已经存在的东西,您将学习如何创建新东西。
derekerdmann 2011年

6
“如果一件事情值得去做,那就值得去做不好。” (GK切斯特顿)您在制作不良的博客引擎或不良的电子邮件客户端中所学到的东西将无价之宝-尤其是如果您有报酬来制作出色的博客引擎。
埃里克·威尔逊

16
+1“ B!谁在乎它是否已经完成?再做一次!做得更好!” -重新发明轮子可能对企业不利,但在家中做很多有趣的事情。最酷的部分是它不必变得更好。
SoylentGray 2011年

59

我认为业余爱好项目很重要

我使用业余项目来测试理论,设计实践,新框架,而这是我9-5所不具备的。即功能编程,算法,设计模式,新框架,新语言等。

这可能意味着在我处理工作中新项目的速度和效率上的差异,甚至可能意味着因为我对问题领域的了解不足而从客户那里选择新项目或错过了新项目。

如果您不介绍新事物或新想法,则只有每天进行9到5次磨练才能使您停滞不前。对我来说,从事业余项目是达到使我成为更好,更聪明,更高效的开发人员的目的的一种手段。

准面试官确实考虑了业余爱好项目

以我的经验,如果您已经在您的雇主当前正在使用或“看着”正在使用的相关技术上完成了一项业余项目。您已经对相关技术已经很熟悉,因此会获得额外的荣誉。这对刚刚进入主流的新技术尤其重要,因为新技术在技术体验方面是公平的。


4
对于“只有每天进行9-5次磨削才能使您停滞不前作为开发人员”的+1。
Bobby Tables

15
@鲍比:“可以”是这里的代名词。碰巧的是,我9-5的“磨碎”不允许我停滞……我想我很幸运:
Marjan Venema

1
+1 IMO业余爱好是您真正可以学习其他框架的唯一方法,除非您当然不忙9-5。我倾向于发现业余爱好也对面试有所帮助,但前提是您确实要展示一些东西,而不仅仅是,我是这么做的。
DBlackborough

+1面试,我对编写android应用程序的修修补补直接导致我获得了当前职位,即使我在这个职位上没有任何移动编程。
Biff MaGriff

@Marjan Venema:绝对。我已经做了一些。但这也可能有点“您得到了投入”。在我之前的几份工作中,我绝对不能充分利用它们。
Bobby

41

当前工作的问题是,您可能只需要有限的一组技能即可执行工作职能。编程领域是如此之广,以至于年复一年地陷入困境是很容易的。通过爱好编程,您可以分支并为其他技术做好准备,直到机会出现在您当前的位置或其他地方。

但是重要的是要认识到业余爱好者程序员不仅仅是编程。

  • 他们读博客
  • 他们安装工具
  • 他们阅读源代码
  • 他们调试开源程序
  • 他们提交补丁
  • 他们参加StackExchange编程站点

但是有时他们会受到启发来编写满足自己特定需求的程序。程序员的罪恶感,因为它具有他们想要的功能。然后他们厌倦了并扔掉了。那是嗜好的奢侈!


我同意这不只是编程。我,而且我相信大多数程序员每天都会做清单中几乎所有的项目。
Pieter van Niekerk,

7
+1如此多的“编程”包括将新代码添加到编辑器中的活动。
StevenV 2011年

26

恕我直言,不一定是业余爱好项目本身会使您变得更好(尽管它们肯定不会伤害您),但是保持开放并花时间在一般上学习新知识。正如@Rick所指出的,除了实际编码之外,它还可以采取许多其他形式。例如,您可以在上下班上下班的同时阅读书籍-但是,如果您有一台笔记本电脑甚至是代码,也可以阅读。

还请注意,绝对需要保持平衡

  • 如果您不花任何时间(免费)学习,就会停滞不前,并且在某些时候可能会完全厌倦您的职业,无法应对新挑战。
  • 如果您将大量的业余时间花在学习上,您将没有时间去学习名为生活的奇特但重要的事情,因此从长远来看,您可能会精疲力尽和/或出现健康问题。

还有一件事:很容易(建议)从事业余项目,而又年轻又单身。在以后的阶段,您可能会拥有一个家庭,这将消除您多年的大部分闲暇时间(至少如果您想做得好,那又有什么意义呢?)。因此,您将不得不更有效地管理时间,以节省一些宝贵的学习时间。


5
+1拥有生命。我不在一家典型的公司里工作,但是我认为学习和保持最新是我工作的一部分。我的很多学习都发生在工作中。当然,我不会在工作中从事全面的业余爱好项目,但是我确实发现有机会“在我的各种工作项目中”使用新事物。所以对我来说,拥有生活比拥有业余爱好更重要。
菲尔(Phil)

2
终身+1!保持工作与生活之间的平衡至关重要。如果不这样做,您将很快地筋疲力尽!
史蒂文·斯特里加

1
+1现在我很难过。我有两个年幼的女儿(6,11),需要我的照顾,我的日间工作(50个小时),然后再进行8到16个小时的合同工作。有一阵子通过做6-5点来解决这个问题,花时间陪家人直到9点左右上床睡觉,然后承包工作直到任何时候。它奏效了,但我真的很疲倦。只是还没有决定要怎么做。
Ominus

10

做辅助项目!不要以为它为网络带来了新的东西,而应将其看作是练习技能,学习/掌握技术和方法的沙盒。

作为雇主,我一直在问我的潜在同事是否在做一些有趣的附带项目。即使这些想法不是引人注目的,但他们的作者对此还是感到兴奋-它始终是一个巨大的支持者。


2
我在采访中问。如果有人不做业余编程,我不会反对他们,因为生活还有很多,而与家人在一起的时间会更少(我的项目在我有孩子的时候就停滞了)-但我愿意认为这是奖金,因为这表明他们有真正的兴趣和主动性。我不能告诉你,如果必须从“ main()”开始,有多少人会阻止作家。
phkahler 2011年

7

我遇到的那些很难跟上新技术的程序员就是把它当作工作的人。他们的同行-谁的那些跟上新的东西,是谁在家里做事情的人。


+1是一个简洁的答案。但是请注意不要假设因果关系。
Caleb

6
您为什么不能跟上工作中的新事物?看来这里的问题是一个坏的,胸襟狭窄的雇主,而不是缺乏业余爱好者的项目。

6

您说您能想到的一切都已经完成,但是您使用的每个工具是否都按您希望的方式工作?我经常发现工具几乎可以完成我想做的所有事情,但不能完全做到,我的爱好项目源于试图填补空白。我并不总是成功,但我喜欢尝试,作为最终用户,我在动机或规格方面没有任何问题


4

如果您真的对那些项目有兴趣和精力,那么一定要去做。但是我不会说任何认真的程序员都必须这样做。如果您全职从事编程工作,那么也可以在业余时间进行编程,不一定会增加您对它的兴趣,这可能会产生相反的效果。我个人曾经做过业余爱好项目,但是我已经停下来了。我已经每周编程5天,对我来说,在空闲时间做一些完全不同的事情似乎更健康。

此外,如果您的雇主没有给您足够的空间来测试工作中的新事物,不断学习和改进,那么您可能应该寻找一份新工作,而不是在业余时间做这些事情。一个好的雇主会意识到,不断更新,改进和扩展您的技能符合他们自己的利益。

从雇主的角度来看(我就是其中之一),如果您没有实际的工作经验,那么业余项目将是一个优点。这样,所有的兴趣爱好和学校项目在面试过程中作为参考都非常重要。

但是,如果您确实有经验,那么它们就没有那么重要了:尽管它们可能表明您对交易充满热情,但同时可能表明您有点书呆子。从我的个人经验来看,我真的没有发现业余爱好项目与好/坏候选人之间有任何联系,除非您刚从学校毕业申请第一份工作,否则我认为它们并没有特别的相关性。


1
+1是说业余爱好不一定是一件好事的唯一答案之一(需要时间和精力)。就我个人而言,在我不在工作的时候,我有很多事情要做,而且我很少有时间进行编程(浏览SO并不需要那么多的实际编程)。这些事情包括做家务,有社交生活,休息,这样当我周一返回工作岗位时(我经常睡觉; o)),我可以提高工作效率。等等。不要说那很不好,那些人可能比(可能)比我是雇主,但我更希望个人生活更加平衡。
n1ckp 2011年

3

与全面的项目相比,我更喜欢测验和类似的小代码块(尽管如果有时间的话,可以尝试在某些OSS项目上工作)。所以对我来说,没有太多借口说我对一个项目没有好主意。只需编写一些Sudoku求解器,然后尝试实现诸如Dancing Links之类的功能即可使其更快。

他们对于您成为一名更好的开发人员的重要性可能取决于您的工作。如果已经非常苛刻,则可以获取所需的所有培训。否则,选择正确的项目(或测验解决)将教会您许多新事物,并使您与许多工作无法提供的广泛专业知识保持联系,因为您通常只能使用少量的专业知识。明确定义域的工具。

是的,有些公司对您的项目非常感兴趣。如果没有别的,他们会给您很多机会在面试中谈论您非常了解的事情。


1
关于测验等,我从事诸如欧拉计画之类的难题的研究。
Pieter van Niekerk,

3

在大多数采访中,爱好项目本身并不重要。有少数人在乎您是否将编码作为一种爱好,但大多数人并不在意。但是,您从业余编程中学到的技能在面试中可能很重要!

从侧面看,额外的编程肯定会在编程上占优势,直到您精疲力竭……但是,即使是精疲力尽之外,您还需要考虑的是,雇主经常在寻求编程以外的其他技能。如果您是24/7全天候编程,则不是在开发其他技能!平衡... :-)


2
在最后一轮采访中,我期望进行一些代码测试。相反,这家公司要求查看我发布的一些代码。好吧,我唯一能合法显示给他们的东西是我的业余爱好项目(这是一个定时事件,我并没有使它健壮而干净)。该项目也在其他采访中提出。人们关心。但是从某种意义上来说,你是对的,没有人在乎你上大学,他们在乎你在那学到的东西。
菲利普(Philip)

3

对于我来说,我认为爱好项目很重要,因为否则您将停滞并失去乐趣。

我建议找到一个新的爱好项目:

学习一种新的编程语言来完成您的爱好项目。例如,一个很好的目标是尝试每年学习一种新语言(了解越多越容易)

最好的选择是对您似乎完全感到困惑。因为它对您看起来越陌生,它将扩大您的视野。

也知道许多具有不同语法的语言会使您专注于语法,这在编程时很重要。它只是语法树的顺序表示,并不重要。这可以提高您对语义的关注,这在实践中会更加有用。

您是否尝试过函数式编程语言?您是否尝试过分布式编程语言?模式匹配语言?

为了寻找在Euler项目上工作的小型项目,非常可取。


我会稍微改一下-使用一种新的语言来完成您的爱好项目。那么项目是动机,而不是学习。
phkahler 2011年

很好的建议,做到了
Peer Stritzinger

2

我是一名业余Web开发人员,没有大学文凭(尚未)从事我自己的个人项目。几周前,我被邀请参加编程工作的第一次面试,因为我正在从事自己的个人项目。

考虑到这些轶事证据,从事我个人的“业余爱好”项目一直是我提升大学发展事业的最好举措...

所以,是的,面试官当然会考虑您的个人项目,否则他们甚至都不会打扰我。


1
对于没有工作经验并正在寻找程序员的第一份工作的人,这确实是一个很好的建议。

2

其他人已经介绍了很多,但是我想重点介绍这一部分:

我没有一个业余项目而感到内gui,但是我能想到的一切都已经完成了。因此,我对此有两种想法,开始做一些已经完成的事情,或者离开它直到我想出一些原创的东西?

在我看来,这似乎错过了“爱好项目”的意义。的确,很多业余爱好项目是为他人创建的,或者至少是在考虑公共消费的情况下进行的-这些项目随着时间的流逝需要一定数量的一致工作,因此可能令人生畏。毕竟,谁又想制作又一个受支持不足,质量低劣的东西,或者几个月后最终被放弃的东西?

但是,您的业余项目完全没有理由对任何人都有用。例如,我最近开始学习Haskell,纯粹是因为它与我习惯的命令式语言有很大不同,并且设置起来真的很容易。我也刚开始出于好奇而学习编程游戏《核心战争》中使用的Redcode汇编语言。

反过来,这促使我考虑创建一个Notepad ++插件,以为Redcode提供更好的语法突出显示功能,这使我考虑学习一些C ++。利用对.NET的比较熟悉,现在我正在考虑让自己开始使用Visual C ++

问题是,这些都不是真正的“问题”,至少不是作为一个项目。该死的,我不知道,你甚至可以把它称为一个项目本身,竟有如此一堆东西,我有种用,因为它引起了我的注意搞乱。我的意思是,您需要一点时间和组织才能确保您确实从中学到了一些东西,但是没有人会在学校开学后就停止我有时间去Haskell的问题。

而且没有人会在乎是否发现Notepad ++的插件开发比我预期的要难,我放弃了—的确,我在进入Redcode之前就研究了Perl,并且由于无法获得它而很快放弃了它。环境设置正确。这表明缺乏持久性吗?是的 但是没有人在乎,因为这是我的爱好,所以我可以随心所欲地玩。

因此,您不需要选择一些业余爱好项目来教您可交易技能-那只是将您的空闲时间变成了更多的无薪工作时间。这些技能是您做事的结果,但这不是原因。我现在更好地理解了声明式编程,并了解汇编语言如何工作以及程序如何使用DLL。而且,我已经学到了很多有关Windows命令提示符的知识,以及到目前为止您还没有想到的其他东西,这些东西与到目前为止我提到的任何东西有关。

关键是,找到一些全新的东西,看看它是否像看起来那样有趣。如果是,那么很好,如果不是,那么继续前进。您是否曾经对编译器或解释器有丝毫好奇?去看看LOLCODE。如果它让您和我一样快乐,那么该开始学习编译器了。嘿,也许您应该回过头来考虑语法高亮。实际上,这可能是我开始的下一个项目。

如果那不是您的事,请尝试一些比您惯用的低级的东西。或更高级别。没关系 那唯一的事,当看,你觉得“好玩了!”


0

对于认真的程序员来说,这些项目是必须的,特别是如果您是自由职业者。

您可以每周工作5天,每天测试1天,而不是每周工作6天,每天休息1天。

似乎测试日是在浪费时间,但是当您被赋予实现在那段日子中已经测试过的编程语言中实现一项新功能时,您就会意识到它的好处。


0

我正在我的商店里面试和雇用。一个“爱好项目”对我们总是有利的。

拥有或多或少完成的个人项目表明您非常喜欢创建软件,并且表明您有学习新知识和提高技能的动力。

如果您想在面试中给人留下真正的积极印象,请在个人项目中携带一台笔记本电脑。向访问者展示它,告诉他在构建它时遇到的挑战,让他们看到您的代码。提前告诉他们粗暴的地方在哪里以及您对该项目的未来计划可能是什么。

您会以一种很好的方式被记住。


0

我发现业余时间进行编程有两个目的:

1)它使我可以完成个人成就,而不受工作项目的限制。当我在工作项目中处理棘手且令人沮丧的问题时,这一点尤其重要。

2)它使我有机会扩展和提高我的编程技能,因为我可以自由地创建自己想要的东西。

都一样,我认为将这与一些非计算机爱好平衡起来也很重要。对我来说,它保持着小溪和我家后面的小路。


0

拥有宠物应用程序是强迫自己学习当前平台中您可能没有想到的部分的好方法。例如,您可能是一位出色的C#开发人员,正在使用ASP.Net应用程序。但是,如果您的团队中有一个专门研究CSS的人,那么您可能永远不会正确地学习它。但是,如果您有一个宠物网站项目,则必须学习如何使用CSS。如果您拥有自己的项目,而您是唯一的开发人员,那么对于将要使用的全部技术,都是如此。

要撰写有关宠物应用程序所有优点的大量文章,请查看这篇文章

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.