我想知道,业余时间编程有多重要?是否有必要以9-5的程序员身份工作,然后回到家并按自己的爱好工作,成为一个更好的程序员?
这就是说,我知道您只会在编程方面变得更好。
准雇主在面试中是否考虑了业余爱好编程,还是出于好奇而问这个?
我没有一个业余项目而感到内gui,但是我能想到的一切都已经完成了。因此,我对此有两种想法,开始做一些已经完成的事情,或者离开它直到我想出一些原创的东西?
我想知道,业余时间编程有多重要?是否有必要以9-5的程序员身份工作,然后回到家并按自己的爱好工作,成为一个更好的程序员?
这就是说,我知道您只会在编程方面变得更好。
准雇主在面试中是否考虑了业余爱好编程,还是出于好奇而问这个?
我没有一个业余项目而感到内gui,但是我能想到的一切都已经完成了。因此,我对此有两种想法,开始做一些已经完成的事情,或者离开它直到我想出一些原创的东西?
Answers:
我因没有业余爱好而感到内
感到内is是开始编程项目的疯狂原因。也可能是开始讨厌编程的好方法。因为一些工作你想,不是因为你觉得你应该。
但我能想到的一切都已经完成。
呸! 谁在乎它是否已经完成?再来一遍!做的更好!或者,接受您可能无法做得更好并且仍然无法做到的事情。如果微软说“好,有人已经创建了数据库/电子表格/文字处理器/操作系统/ IDE /项目经理/资金经理/基于C的单继承动态面向对象的语言/ Web浏览器/ Web服务器,那么微软在哪里呢? /音乐播放器/移动平台/搜索引擎,因此我们会寻找其他事情做...”?
认真地说,如果您编写Web服务器,它可能不会超越Apache,但您一定会在此过程中学到宝贵的经验。您不太可能超过《愤怒的小鸟》,但编写一个简单的小型视频游戏也会对您有很多帮助。
我认为业余爱好项目很重要
我使用业余项目来测试理论,设计实践,新框架,而这是我9-5所不具备的。即功能编程,算法,设计模式,新框架,新语言等。
这可能意味着在我处理工作中新项目的速度和效率上的差异,甚至可能意味着因为我对问题领域的了解不足而从客户那里选择新项目或错过了新项目。
如果您不介绍新事物或新想法,则只有每天进行9到5次磨练才能使您停滞不前。对我来说,从事业余项目是达到使我成为更好,更聪明,更高效的开发人员的目的的一种手段。
准面试官确实考虑了业余爱好项目
以我的经验,如果您已经在您的雇主当前正在使用或“看着”正在使用的相关技术上完成了一项业余项目。您已经对相关技术已经很熟悉,因此会获得额外的荣誉。这对刚刚进入主流的新技术尤其重要,因为新技术在技术体验方面是公平的。
当前工作的问题是,您可能只需要有限的一组技能即可执行工作职能。编程领域是如此之广,以至于年复一年地陷入困境是很容易的。通过爱好编程,您可以分支并为其他技术做好准备,直到机会出现在您当前的位置或其他地方。
但是重要的是要认识到业余爱好者程序员不仅仅是编程。
但是有时他们会受到启发来编写满足自己特定需求的程序。程序员的罪恶感,因为它具有他们想要的功能。然后他们厌倦了并扔掉了。那是嗜好的奢侈!
恕我直言,不一定是业余爱好项目本身会使您变得更好(尽管它们肯定不会伤害您),但是保持开放并花时间在一般上学习新知识。正如@Rick所指出的,除了实际编码之外,它还可以采取许多其他形式。例如,您可以在上下班上下班的同时阅读书籍-但是,如果您有一台笔记本电脑甚至是代码,也可以阅读。
还请注意,绝对需要保持平衡。
还有一件事:很容易(建议)从事业余项目,而又年轻又单身。在以后的阶段,您可能会拥有一个家庭,这将消除您多年的大部分闲暇时间(至少如果您想做得好,那又有什么意义呢?)。因此,您将不得不更有效地管理时间,以节省一些宝贵的学习时间。
做辅助项目!不要以为它为网络带来了新的东西,而应将其看作是练习技能,学习/掌握技术和方法的沙盒。
作为雇主,我一直在问我的潜在同事是否在做一些有趣的附带项目。即使这些想法不是引人注目的,但他们的作者对此还是感到兴奋-它始终是一个巨大的支持者。
如果您真的对那些项目有兴趣和精力,那么一定要去做。但是我不会说任何认真的程序员都必须这样做。如果您全职从事编程工作,那么也可以在业余时间进行编程,不一定会增加您对它的兴趣,这可能会产生相反的效果。我个人曾经做过业余爱好项目,但是我已经停下来了。我已经每周编程5天,对我来说,在空闲时间做一些完全不同的事情似乎更健康。
此外,如果您的雇主没有给您足够的空间来测试工作中的新事物,不断学习和改进,那么您可能应该寻找一份新工作,而不是在业余时间做这些事情。一个好的雇主会意识到,不断更新,改进和扩展您的技能符合他们自己的利益。
从雇主的角度来看(我就是其中之一),如果您没有实际的工作经验,那么业余项目将是一个优点。这样,所有的兴趣爱好和学校项目在面试过程中作为参考都非常重要。
但是,如果您确实有经验,那么它们就没有那么重要了:尽管它们可能表明您对交易充满热情,但同时可能表明您有点书呆子。从我的个人经验来看,我真的没有发现业余爱好项目与好/坏候选人之间有任何联系,除非您刚从学校毕业申请第一份工作,否则我认为它们并没有特别的相关性。
与全面的项目相比,我更喜欢测验和类似的小代码块(尽管如果有时间的话,可以尝试在某些OSS项目上工作)。所以对我来说,没有太多借口说我对一个项目没有好主意。只需编写一些Sudoku求解器,然后尝试实现诸如Dancing Links之类的功能即可使其更快。
他们对于您成为一名更好的开发人员的重要性可能取决于您的工作。如果已经非常苛刻,则可以获取所需的所有培训。否则,选择正确的项目(或测验解决)将教会您许多新事物,并使您与许多工作无法提供的广泛专业知识保持联系,因为您通常只能使用少量的专业知识。明确定义域的工具。
是的,有些公司对您的项目非常感兴趣。如果没有别的,他们会给您很多机会在面试中谈论您非常了解的事情。
在大多数采访中,爱好项目本身并不重要。有少数人在乎您是否将编码作为一种爱好,但大多数人并不在意。但是,您从业余编程中学到的技能在面试中可能很重要!
从侧面看,额外的编程肯定会在编程上占优势,直到您精疲力竭……但是,即使是精疲力尽之外,您还需要考虑的是,雇主经常在寻求编程以外的其他技能。如果您是24/7全天候编程,则不是在开发其他技能!平衡... :-)
对于我来说,我认为爱好项目很重要,因为否则您将停滞并失去乐趣。
我建议找到一个新的爱好项目:
学习一种新的编程语言来完成您的爱好项目。例如,一个很好的目标是尝试每年学习一种新语言(了解越多越容易)
最好的选择是对您似乎完全感到困惑。因为它对您看起来越陌生,它将扩大您的视野。
也知道许多具有不同语法的语言会使您专注于语法,这在编程时很重要。它只是语法树的顺序表示,并不重要。这可以提高您对语义的关注,这在实践中会更加有用。
您是否尝试过函数式编程语言?您是否尝试过分布式编程语言?模式匹配语言?
为了寻找在Euler项目上工作的小型项目,非常可取。
我是一名业余Web开发人员,没有大学文凭(尚未)从事我自己的个人项目。几周前,我被邀请参加编程工作的第一次面试,因为我正在从事自己的个人项目。
考虑到这些轶事证据,从事我个人的“业余爱好”项目一直是我提升大学发展事业的最好举措...
所以,是的,面试官当然会考虑您的个人项目,否则他们甚至都不会打扰我。
其他人已经介绍了很多,但是我想重点介绍这一部分:
我没有一个业余项目而感到内gui,但是我能想到的一切都已经完成了。因此,我对此有两种想法,开始做一些已经完成的事情,或者离开它直到我想出一些原创的东西?
在我看来,这似乎错过了“爱好项目”的意义。的确,很多业余爱好项目是为他人创建的,或者至少是在考虑公共消费的情况下进行的-这些项目随着时间的流逝需要一定数量的一致工作,因此可能令人生畏。毕竟,谁又想制作又一个受支持不足,质量低劣的东西,或者几个月后最终被放弃的东西?
但是,您的业余项目完全没有理由对任何人都有用。例如,我最近开始学习Haskell,纯粹是因为它与我习惯的命令式语言有很大不同,并且设置起来真的很容易。我也刚开始出于好奇而学习编程游戏《核心战争》中使用的Redcode汇编语言。
反过来,这促使我考虑创建一个Notepad ++插件,以为Redcode提供更好的语法突出显示功能,这使我考虑学习一些C ++。利用对.NET的比较熟悉,现在我正在考虑让自己开始使用Visual C ++。
问题是,这些都不是真正的“问题”,至少不是作为一个项目。该死的,我不知道,你甚至可以把它称为一个项目本身,竟有如此一堆东西,我有种用,因为它引起了我的注意搞乱。我的意思是,您需要一点时间和组织才能确保您确实从中学到了一些东西,但是没有人会在学校开学后就停止我有时间去Haskell的问题。
而且没有人会在乎是否发现Notepad ++的插件开发比我预期的要难,我放弃了—的确,我在进入Redcode之前就研究了Perl,并且由于无法获得它而很快放弃了它。环境设置正确。这表明缺乏持久性吗?是的 但是没有人在乎,因为这是我的爱好,所以我可以随心所欲地玩。
因此,您不需要选择一些业余爱好项目来教您可交易技能-那只是将您的空闲时间变成了更多的无薪工作时间。这些技能是您做事的结果,但这不是原因。我现在更好地理解了声明式编程,并了解汇编语言如何工作以及程序如何使用DLL。而且,我已经学到了很多有关Windows命令提示符的知识,以及到目前为止您还没有想到的其他东西,这些东西与到目前为止我提到的任何东西有关。
关键是,找到一些全新的东西,看看它是否像看起来那样有趣。如果是,那么很好,如果不是,那么继续前进。您是否曾经对编译器或解释器有丝毫好奇?去看看LOLCODE。如果它让您和我一样快乐,那么该开始学习编译器了。嘿,也许您应该回过头来考虑语法高亮。实际上,这可能是我开始的下一个项目。
如果那不是您的事,请尝试一些比您惯用的低级的东西。或更高级别。没关系 那唯一做的事,当你看,你觉得“好玩了!”
我发现业余时间进行编程有两个目的:
1)它使我可以完成个人成就,而不受工作项目的限制。当我在工作项目中处理棘手且令人沮丧的问题时,这一点尤其重要。
2)它使我有机会扩展和提高我的编程技能,因为我可以自由地创建自己想要的东西。
都一样,我认为将这与一些非计算机爱好平衡起来也很重要。对我来说,它保持着小溪和我家后面的小路。