我不会在业余时间编程。那会让我成为一个不好的开发者吗?


387

网络上的许多博客和建议似乎都暗示,要成为一名出色的开发人员,仅做日常工作是不够的。例如,您应该在业余时间为开放源代码项目做出贡献,编写智能手机应用程序等。实际上,很多建议似乎表明,如果您不喜欢整日编写程序,那么您会可能是在错误的职业中。

这对我来说并不正确。我很喜欢我的工作,但是当我从办公室回到家时,我并没有心情直接跳回计算机并开始编码,直到就寝为止。我每天只有几个小时的空闲时间,我宁愿将它们花在其他爱好,见朋友或出门旅行上,而不是在电脑前。

我确实从编程中受益匪浅,偶尔会在工作之外闲逛。我致力于个人发展,并花时间阅读技术博客和书籍,以保持学习和不断进步。但这并没有延伸到我想用我所有的业余时间进行编码。

这是否意味着我不是一个真正的“真正”软件开发人员?不用做额外的工作就能成为一名优秀的软件开发人员吗?我很想听听您的想法。

更新:谢谢大家的评论和回答。很多好的想法和建议!


133
我认为这只会使您更加正常,您可能会与我们极客所说的“现实生活”有更多联系。 重视那个。
2011年

146
@Orbling你在说什么“现实生活”?与魔兽世界相似吗?它可以在64位操作系统上运行吗?
biziclop 2011年

18
@biziclop-就像WOW一样,具有更好的图形和更好玩的游戏。
ChaosPandion 2011年

39
@ChaosPandion:任务吸引了很多时间,沉闷,沉闷,并且掠夺绝对不是史诗般的。
2011年

4
为了提高效率,我建议您在尝试工作时尝试新事物并从事个人项目。这样,您仍有有限的空闲时间。:-)
Carson63000

Answers:


446

IMO的这种态度来自具有可怕的吸吮性工作的人,并结合了可怜的时间管理技能。如果您基本上整天都在键入Web表单,请出去找一份更具挑战性的工作,或者自己开始。

就是这个 音乐会音乐家(大提琴手/钢琴家/随便什么),每天最多练习6个小时。大多数人每天只练习几个小时。在最高水平

人们说更多的程序是因为您了解更多,但这只是烟幕。每天8个小时足够了

进展不是线性的。它是对数的:

在此处输入图片说明

音乐家练​​习超过3个小时的唯一原因是,他们需要挤出那些课时给他们的额外1%。如果您认为适用于您,重新解决了20年前CS解决的问题,那么您将有一个从表面到表面的复杂性。

我以前在压力锅公司工作过,并且相信我,这些人完成的实际工作量并不比像37signals这样的对工作量有限制的公司要好:http: //37signals.com / svn / posts / 996-为什么我爱与家人一起工作

最终发生的事情是,可以肯定的是,您可能在计算机前呆了10-12个小时,在办公室呆了另外2个小时,但这还不包括您花的90分钟午餐,您花2个小时浏览讨论的时间论坛和时间休息,您必须玩办公室里布置的众多游戏之一(桌上足球,台球,雅达...)。

回头看那个图。现在回到我身边。

如果您参与其他活动,您的思想实际上就有机会扩展得多学习演奏乐器学习外语。最好出去做些运动,并与真实的人交流

关于生产率的对数性质:

在著名的1993年关于年轻小提琴家的研究中,性能研究人员Anders Ericsson发现,最好的小提琴演奏者都以相同的方式练习:早晨,以不超过90分钟的三个增量进行练习,每次间隔一会。埃里克森在其他音乐家,运动员,下象棋者和作家中发现了相同的模式。

为了实现真正的生产力,少即是多

这实际上是商业世界中众所周知的原理,令我惊讶的是更多的程序员还没有听说过它。

更新:有关爱立信研究的更多信息。

整个过程需要10,000小时/ 10年才能完全熟练,这实际上是由爱立信而不是Malcom Gladwell进行的研究得出的。

众所周知,您可以将1年的经验重复10次……因此,仅将屁股坐了10年就没有资格。什么出线是什么爱立信称刻意练习

他发现这项原则在田径,音乐,写作,国际象棋和数学中都是正确的。他进一步将刻意的练习定义为非常努力,以至于即使在最高级别下,您每天也只能花费大约4个小时。否则,您将遭受过度训练或倦怠的痛苦。再次,他认识到故意练习的报酬递减,最长约4个小时。

关于没有良好/具有挑战性的工作:

g。要么找到更好的工作,要么是一个主意:至少将当前工作变成不是现在的工作。

我认识的最好的程序员之一,是在一个由数十个程序和成千上万行代码组成的遗留系统上担任维护程序员的工作。多年来,其中大多数已经被黑客攻击,以至于您不得不说它不再具有任何连贯的设计。

这几乎是无用的,死胡同的工作。管理层希望您保持警惕,并修复这些臭虫。优秀的开发人员正在从事未开发的项目。人们要么来这里休息直到退休,要么就积累了几年的经验,然后再进行新的应用程序开发。尽管大多数程序员会抱怨缺乏职业发展,或者没有机会学习新事物,或者没有令人兴奋的项目来开展工作,或者更笼统地说,只是无聊中没有人让他们工作,但这个人只是坐下来并着手做需要完成的工作。

在过去的2年中,他将系统从杂乱的意大利面条代码转换为精美的东西,并像瑞士手表一样运作。如此彻底的转变使该部门的副总裁开始越来越重视现有项目,并开始质疑未开发项目的价值。尽管他没有头衔,但运营人员还是以他作为事实上的组长来找他。当我离开时,副总裁正在谈论为他创建新角色的系统架构师...

我不确定那之后他怎么了,但是他教了我一些非常重要的课程:

  1. 您的工作就是完成的,到处都有有趣的问题要解决。如果您不喜欢编写CRUD屏幕,请通过自动生成屏幕来解决问题。

  2. 不要坐在周围等待机会来找你。他们永远不会。


评论员:评论旨在寻求澄清,而不是进行扩展讨论。如果您有解决方案,请留下答案。如果您的解决方案已经发布,请对其进行投票。如果您想与其他人讨论这个问题,请使用chat。有关更多信息,请参见FAQ

30
这个以及许多其他答案都过于强调编程为“实践”。要继续进行音乐家的比较,信不信由你,但他们实际上也乐在其中。面试官寻找的是业余时间编程的人,并不是那些始终需要不断练习的人。他们正在寻找一个充满激情并真正喜欢他们所做的事情的人。如果您对自己的工作充满热情,那么您通常也会将它变成一种业余爱好,很难摆脱它。这与拾起其他爱好没有什么不同。

7
音乐家的榜样并不是很好。当音乐家达到高技能水平时,当他学会了所有理论之后,便可以闭眼合成歌曲,同时可以演奏9000多种乐器,而已无事可做。程序员或计算机工程师需要终身学习新技术。总是有新的东西要学习。因此,回答这个问题,一个整日编程,没有社交生活的人比一个在业余时间不编程的人好得多。

2
@GabrielLlamas音乐理论是基础知识,例如我们在大学学习的算法基础,分布式计算和操作系统。这些基本知识不会改变加班时间。大约20年前,我们已经具有客户端和服务器的模型,现在我们仍然具有客户端和服务器的模型。因此客户端和服务器的基础知识仍然适用,只是高层事物在快速变化。您可以将不同的工具视为诸如HTML,Javascript之类的不同技术。但是,如果您能够应用基础知识,那么事情将是相似的。
David Gao

1
另一个例子是,一旦您知道如何使用c进行编程,学习c ++就不会困难了。我记得我在不知道任何Scheme的情况下使用Scheme解决了室友的编程问题。学习计划对我来说并不难,因为我从高水平知道什么是功能语言。
David Gao

150

此消息中还有更多隐藏的内容。

许多热心的程序员喜欢探索事物,进行实验,遵循他们的想法,这就是我们学习和获得技能和愿景的方式。

通常,您不会在工作时间内关注自己的兴趣。您只要做被告知要做的事情就可以了。我们中只有极少数人有幸在工作中能做我们即使不付钱也能亲自做的事情。

因此,如果您不做任何额外的事情,您就不会发挥自己的潜力。而这正是问题所在。


2
哇,这真是令人欣慰,因为有时我觉得我对学习编程的其他方面很感兴趣,但是这项工作使一切看起来都让人感到有些沮丧。
melaos 2011年

3
真正。要注意的一件事是您在摄入期间可能签署的任何发明协议。我们没有使用这些语言,但是我和我的程序员达成了口头协议:如果在工作时间以外并且不直接与公司竞争,那么请度过美好的时光。我什至不介意他们是否使用公司的设备,尽管人们普遍认为将其放在家里可以“清洁”。
彼得·罗威尔

3
几个小时后保持好奇心就可以了。那可能就是如何在一夜之间在整个公司范围内自动部署下一版Windows(Mwah hah hah)。也可能是摄影,啤酒酿造或划船。外部利益使您更全面。它与您的日常工作没有关系。
quick_now 2011年

5
-1正如其他人在其他答案和评论中指出的那样,这意味着您实际上无法获得一份好,好玩且富有挑战性的工作。以我的个人经验,这是不正确的。到目前为止,我在大多数工作中都学到了很多新东西。恕我直言,这至少与公司文化一样,是个人态度的问题。
彼得Török

26
如果您喜欢编程并且不喜欢自己的工作,则应该花些时间寻找更好的工作。
nikie 2011年

70

这并不能使您成为一个糟糕的开发人员,但是不幸的是,您仍然必须与做这些的人竞争。

Seth Godin的博客中阅读以下内容:


不合理

在下雪天(取消学校)后起床,将停机时间变成一个额外的学分物理实验室六个小时的工作是不合理的。

推出将开发曲线缩短九个月的技术产品是不合理的,下一代产品要比更合理的竞争对手早得多地推出。

对于货运公司来说,在第一铃响起接听电话是不合理的。

没有风险投资可以带来的保证,成立新公司是不合理的。

期望医生办公室有一个愉快而乐于助人的前台工作人员是不合理的。

即使您想做一些勇敢而新颖的事情,在当今的经济环境中放弃出色的演出也是不合理的。

老师期望我们可以让处于劣势的内城区孩子在高中表现出色,这是不合理的。

考虑到您承受的压力,以尊重的态度对待您的同事和竞争对手是不合理的。

不能期望除了一个伟大的女人,一个既有动力又有优势的人之外的任何人,在这个与普通百姓抗衡的世界上,能做任何重要的事情。

花几年的时间来生产大多数人永远不会欣赏的产品是不合理的。

幸运的是,世界上到处都是不讲理的人。不幸的是,您需要与他们竞争。


13
是的,每天工作8小时,然后回家再工作一些,也是不合理的。你在找谁 又为什么呢 您需要回答这些问题(谁在付款?为什么?得到什么?)。如果您在一天结束之前精神疲惫,那么您可以为自己做的最好的事情就是-其他!
quick_now 2011年

37
您假设开发人员在工作中不会受到挑战,也不喜欢他们的工作。这不是真的。只在工作时编程的人不会在家编程,因为他们已经很满意了
Nobody

8
-1是因为a)引号与该问题没有直接关系,b)IMO(大多数)这些东西完全没有道理。许多有理智的人可以考虑长期和短期。OTOH我们大多数人在发明尼斯(和假)我们lazyness /无能/不注意合理的解释:-(都是经验丰富
彼得Török

13
-1称很多合理的事情不合理是不合理的。它没有增加任何问题,听起来还可以,主要就像塞思·戈丁(Seth Godin)写的很多东西。
Vitor Py

5
“期望医生的办公室有一个愉快而乐于助人的前台人员是不合理的。” 不,这不对。不合理的是医生收取他们的工作费用,然后使我们受到粗鲁的办公室工作人员的欢迎,在他们的办公室候诊室中漫长的等待,以及对人格的不尊重。
GreenMatt 2011年

57

要回答提出的问题:不利用业余时间进行编程不会使您成为不良的开发人员,但是,利用业余时间进行编程可以使您成为更好的开发人员。

在业余时间进行编程当然不会损害您的技能,但是您不应感到有义务去做。编程似乎是一个相对独特的领域,因为对于许多人来说,编程既是他们的工作,也是他们的业余爱好,因此他们在业余时间喜欢编程。


8
编程并非既是职业又是业余爱好。有几个例子:我曾经知道几位航空公司的飞行员有自己的小型飞机,他们为娱乐而飞行。我知道有专业的天文学家在一边凝视。
GreenMatt 2011年

4
相对独特”是指它是少数之一,但肯定不是唯一的。我知道还有更多人,尽管他们可能会喜欢他们的工作,但在没有报酬的时候不会花时间去做。做一份自己热衷的事情通常很困难。
shortkaik 2011年

1:技术,语言和技术变化如此频繁且如此迅速。程序员必须花一些时间来打磨他们的手艺。//相关问题:您对不阅读医学期刊的PCP感到满意吗?
Jim G.

我认为这个答案最能概括情况。但这完全取决于一个人的情况。如果您的工作满足了您所有的编程需求,如推动自己,与时俱进,等等,那么在您自己的时间进行工作的需求就会大大减少。但是,如果您的工作很简单,使用旧技术,那么应该花一些时间在自己的时间内提高技能和知识。
Nellius 2011年

@shortkaik“利用业余时间进行编程可以使您成为更好的开发人员”-并非总是如此。如果您在工作中面临挑战,那么,如果您还在家里编程,那不仅会使您精疲力尽和精疲力竭,而且会给您的技能带来更多的损害,这也会损害您的工作效率。另一方面,如果您对工作给您(以及从您那里获得的收入)不满意,那么在这之后再进行编码可能是一个不错的决定。

23

不,这不会使您成为一个不好的程序员。从长远来看,根据您的操作,它可能使您成为更好的程序员。在您职业生涯的早期,这可能会影响您学习所需各种技能的速度。但是,您可能会获得长期有用的技能和信息。做些运动也不会受伤。

有大量的研究表明,大约40个工作周可以看到绩效。虽然我们可以长时间生产,但从长远来看,我们会降低效率。我看到的研究表明,工作80周的人的生产力与每周工作40小时的人的生产力差不多。

您可以在非工作时间(或上班时间)反映出一些可以帮助您更好地表现的事情:

  • 你在做什么?你能做得更好吗?您需要这样做吗?
  • 你在学什么?您需要学习什么?
  • 您遇到什么问题?谁是最好的解决方案?你能做什么?

业余爱好编程并不意味着在工作几个小时后就可以工作-绝对不能扩展。但是,将ObjC中的iPhone编程为业余爱好可以提高您的技能并提高工作效率(如果工作是例如用Java EE编写金融应用程序)。
Heiko Rupp

@Heiko True,但是除了编程之外,还有许多其他技能可以使您成为更好的程序员。优秀的开发人员除编程外还具有许多技能。
BillThor 2011年

当然:)我特别提到的是“ 40h时的最高生产率”-听起来如果您进行5h业余编程,则只能工作35h。这不认为是正确的
海科鲁普

1
@Heiko这项工作与众不同,您也许可以两者都做。毕业后的头几年,我每周经常超过40个小时,但运用了各种各样的技能。学到了很多东西,并且似乎没有碰到性能障碍。值得庆幸的是,我有一个朋友在晚上的某个时候将我拖出办公室。在另一个项目中,当我意识到自从上午10点以来没有完成任何工作时,我在下午2点回家。仍需支付4个小时的费用。
BillThor 2011年

15

不用做额外的工作就能成为一名优秀的软件开发人员吗?

绝对是

这可能比您花费额外的时间来磨练技能要花费更长的时间。我还发现,如果我全职工作并且在工作时间以外很少做编程,那么很难花足够的时间进行自我完善。

我年轻的时候,我把更多的时间投入到学习比我现在要做的。在这一点上,我日常使用的概念已经根深蒂固,在这种经验的带动下,似乎更容易获得更多知识。

“优秀”的程序员似乎会多花一些时间,因为他们天生痴迷,倾向于反社会,并真正享受编程和整个解决问题的过程。


13

在大事情上,关键在于找到正确的生活平衡。

重要的是,无论您处于什么水平,您是否喜欢编程以及是否继续学习。无论您是否在户外工作,都不会自动使您成为“好”或“坏”的程序员。

从个人角度来看,我从事编程已有25年了(从小开始,然后是专业)。我绝对喜欢

但是,我几乎从不对外部工作进行编程。这与几件事有关:

  • 我很幸运,在工作中,我每天都能整天做自己喜欢的事情。
  • 简而言之,生活中还有其他事情,一天只有几个小时。

-1:是的,生活中还有其他事情,但这并不能回答问题。您只是想让自己相信自己正在选择最佳路径。
Jim G.

9

您可以仅在工作期间进行编码就可以成为一名优秀的程序员,尤其是如果您能够很好地管理自己的职业。但是,最出色的程序员也会在下班时间进行编码。话虽这么说,一个能找到很多学习机会的好工作,善于利用工作时间的人,等等,比起在家编写代码的人,它是一个更好的程序员,因为他找不到在工作中会带来有趣挑战的工作。工作日。

虽然在家编写代码很有价值,但我想说,最大化工作环境的价值(通过向同事学习,挑选好工作,积极管理职业)通常更有价值。最优秀的程序员会同时做这件事,并且对学习和指导他人也怀有很高的态度。


“但是,最出色的程序员也会在下班时间进行编码。” 您对此没有任何证据。
djechlin 2014年

7

真正的问题是,新开发人员是否编写了足够的代码(可以应对足够多的问题),以通过数十万行实践代码并成为一名体面的程序员。

从理论上讲,这可以在工作中完成,也可以在您自己的时间完成,或两者兼而有之。实践必须一定是自我指导的,因此您可以学习需要学习的东西。这意味着工作有点灵活。

很多时候,入门级工作都是大量的错误修复或其他工作,这些工作都不会教你变得更好。您需要做的是从头开始编写很多代码,而这些代码可能很糟糕。雇主很难为此付出代价。这就是为什么人们最终会一边做一个开源项目,或者启动一家初创公司之类的原因。

当人们说您必须在业余时间进行编程时,我认为这确实意味着您必须尽早通过多年的有意义的实践来发挥作用。您必须尽一切努力来进行练习,并学习从头开始编写和维护大型代码库。如果没有人付钱让您从头开始编写可能是灾难性的系列项目,那么只有空闲时间是唯一的选择。

如果您在年轻时就已经开始练习,并成为一名优秀的程序员,那么我认为如果以后再保持9比5的水平,您不会失去基础技能。后来更多的是跟上不是很费时的新技术。

但是,这是一项难得的入门级工作,它本身就会为您提供大量的实践经验和质量,从而使您首先成为一名优秀的程序员。新开发人员需要主动学习,而不仅仅是从事入门级任务的入门级工作。

如果您已经有一个家庭,并且非常强调工作与生活之间的平衡,那么从头开始成为一名优秀的程序员真的很难。就像在这种情况下要成为一名医生,成为一名熟练的音乐家或其他任何人一样,这真的很困难。人们倾向于在年轻时而不是年长时经历数千小时的练习。


5

如果我在接下来的六个月中花时间在业余时间开发一款基础游戏,而您却没有,并且假设所有其他条件都是平等的(他们从来都不是),那么我们当中谁会知道更多?我们中哪一个会有更多的技能和经验?

这种影响将是累积性的,因为较早的下班时间知识将被带入新的工作和新的下班时间知识中。

据我所知,这就是为什么人们建议在业余时间进行编程。


5

在好与坏之间,有许多不同的层次。您一天仅做8个小时左右的工作,就不可能成为一名优秀的开发人员,这可能会解决非常有限的领域中的问题。

如果您的工作千差万别,您可能会变得“体面”或“成就”或您喜欢的任何形容词,但恐怕要成为一名出色的开发人员,您必须要有一点头脑。

进行业余编程的另一个原因是,在工作中,您通常必须遵守次优标准,并做出一般性的妥协,即使您确实学习了新事物,也可能不允许使用它。

还有一个甚至更平淡的是,您在工作中编写的任何代码均归您的雇主所有。当您为其他人工作时,您无法回到过去并从多年的错误中学习。


5

成为任何专家都需要10,000个小时的努力。[Michael Gladwell,“异常值”]

因此,在达到该水平之前进行额外的工作将使您加速迈向真正的专家状态。

一旦您超过了该水平,那么花更多的时间将获得很小的/逐渐减少的回报。


3
但是,什么是“物”?“编程”是单个“事物”,还是“ haskell”,“ lisp”,“ java”,“ python”等事物?还是“功能性编程”,“ GUI编程”,“低级编程”等?就其本身而言,这什么也告诉不了我们。
2011年

4

您不应将其视为“它使我成为一个不好的程序员”,因为像每项技能一样,多练习只会使一个更好。

因此,如果您想变得比现在更好,并学习工作不允许的新技术和领域,那将是您不费吹灰之力和时间所用的地方。

但是,花费额外的时间编码(只是为了向某人证明您额外编码)并不一定意味着您会成为一名优秀的程序员,除非您了解自己的工作并做一些不同的事情或在已有的知识上有所进步,而不是盲目剪切/复制/粘贴。并整理技巧。我认为,投入额外的时间并一遍又一遍地做同样的事情不会对您有所改善。


我认为OP的观点是,一些程序员散布着这样的想法:如果您不在工作之外进行编程,那么您就是一个糟糕的程序员。我记不清在SO,此处和其他地方看到过帖子的次数,其中有人说,在采访潜在的新员工时,他们问被访者进行了哪些方面的计划,答案是否为“无”。 ”,那么受访者对编程的热情就不如对工作的热情高。
GreenMatt 2011年

+1-如果您所做的只是您在工作中所做的事情,那就没有多大用处。
Dunk

仅仅练习一项并不能使您变得更好,您必须练习正确的事情,否则实际上您会变得根深蒂固的不良习惯变得更糟。
HLGEM 2011年

4

白天,您的编程是短期选择。有钱可赚,您确切地知道要赚多少钱,用什么来赚,除了薪水之外,您没有什么收益可观的。

在晚上,您需要进行长期押注-这些疯狂的想法基本上根本不会起作用。这些项目会使您脱颖而出。这就是您成为PHP的发明者,而不是使用它的代码猴子。

我采访了许多程序员,他们是否在工作时间之外做过有趣的怪事,这是一个即时的开绿灯。这是非常罕见的。

尽管我会这样说:有一次,一个在工作时间之外做很多很酷的事情的人被证明完全是雇人。我仍然被那个家伙迷住了。


3

作为一名优秀的软件开发人员,内心真正取决于您的内心。您可以尝试成为一名出色的音乐家,并在音乐上投入大量时间,但这仍然不能使您成为一名优秀的音乐家。您需要享受自己的工作才能成为一名优秀的音乐家。曾经有过,但现在由于我的喜欢,我开始在软件上进行除正常工作以外的其他工作,这提高了我在正常工作中的表现,也使我有很多时间参与与软件无关的其他活动。因此,基线就是享受您所做的事情,并且您最终将做所需的事情。


3

真正的问题是你整天在做什么。通常无法正确应用与运动员和音乐家的类比。您的日常工作不是练习,而是绩效,除非您有明确的能力将部分工作时间花在真正的“练习”上。你怎么知道的?如果您没有时间做任何“正确的事情”或彻底学习新的语言/技术/框架/等知识,那么您就没有在练习,而是在练习。职业运动员和音乐家在比赛或音乐会中并没有进步,而在专注练习中会变得更好。因此,如果您像大多数人一样,只有真正的编码“实践”才是户外工作。话虽如此,只有集中精力才值得。如果您整天乱砍然后整夜乱砍,您只会感到疲倦,而不是更好。

例如,您需要在工作中优化一段代码,然后将常用的分析工具投入其中,并可能将其速度提高50%,然后继续执行下一个任务,但是您认为还有其他方法可能会对您有所帮助更多,但您没有时间尝试。如果您将这段代码带回家,并花了几个小时才能真正拧干代码,那么您正在学习的技术将在您下次优化某些内容时变得更好。您在家工作与在办公室做的事情不同。

练习是关于增加技能和磨练技能的,而这些活动必须以人为方式进行(就像在健身房中隔离肌肉群,没有人在正常的体育锻炼中那样)。在家构建应用程序不会自动练习。在家工作应侧重于技术和过程,而不是最终产品。如果最终产品是您需要激发的动力,那就太好了。只是不要陷入以与工作相同的方式进行开发的陷阱。

编码kata运动是实践的全部示例。


3

要回答您的问题:不,这不会使您成为不良的开发人员。

但是,这可能会使您的职业生涯更加艰难。如果您有一份工作在不断学习可以帮助您进一步发展职业的新技术(无论是当前职位的晋升还是其他公司的新职位),那么您就定下了脚步。

但是,如果您目前在一家公司使用的技术很少变化的公司工作,那么在2或5到10年后,您可能会发现很难获得下一份工作。如果您要在家中使用新技术进行编码并且要展示一些东西(应用程序,网站,开源项目等),那么您会发现获得下一份工作要容易得多。

当然,在接下来的40年中,您可能完全乐于做同样的事情,只要您的公司和技术继续存在,那么您就定会了!


1

在我的生活中,有时候我会在工作之外进行很多编码,有时因为我在做其他事情而没有做任何事情。您应该一直在学习,但这并不意味着您总是必须在业余时间学习编程。如果您想在业余时间从事其他技能的工作,例如木工,针尖,园艺等,它将帮助您成长为一个人。

只是不要陷入认为您了解编程所需的全部知识的陷阱,从而可以停止学习。


1

这确实是一个有趣的帖子。我已经为pas开发了10年软件,并且热爱我的工作!我也有很多爱好,并设法适当地管理它们。但是我确实可以尝试在睡觉前花一两个小时在电脑前尝试新事物。就我而言,我沉迷于学习和编写游戏代码。我并不总是有时间玩游戏,但是我喜欢阅读有关游戏的代码。老实说,我认为我见过的最好的代码来自游戏,我将这些技能应用于我的工作代码中。我每天都在不断学习,所以IMO,如果您是一名开发人员,您将永远无法达到顶峰,总有一种更好的方法来做某事。


1

这是一个很棒的帖子。

我会说,不,这不会使您成为不良的程序员。如果您的评论很好,并且您按时完成了任务,那么您就相反了。老实说,我很羡慕您在工作时就可以编写代码。

我在业余时间进行编程的主要原因是,我并不真正在意工作,而是利用业余时间做自己喜欢的事情。我喜欢做的是视频游戏编程。没有有效的游戏公司在我的住所工作(我现在在这里有一个家庭),所以我会尽可能帮忙开发独立游戏。这是治愈瘙痒的唯一方法。如果我一整天都做着自己喜欢的事情,那么很可能我不会在业余时间做这件事。


1

我的建议是:利用通勤时间学习东西,使您了解情况:阅读IT书籍,听Dev播客,等等。关于您的工作后活动:什么都不会改变。否则,你会变得无聊。


1

它并不会使您成为不良的开发人员,甚至可能不会使您成为一种“好的”开发人员,而只会使您成为现实。但我认为,您会发现大多数真正优秀的黑客往往都喜欢尝试新事物。在任何给定的时间,我都会研究许多不同的语言,数据库,Web框架,机器人技术等。我有两个小孩,一个妻子,抵押贷款,所有这些东西-但我期待能获得2或3的时代几个小时来闲逛。当然,C#和.NET都能很好地赚取薪水,而我确实很喜欢我的工作,但是在过去的几个月中,与Scala和Lift混在一起对我来说是真正的冲击。有些开发人员会将自己归类为“热情”,而那些只是“渐行渐远”。


1

这是否意味着我不是一个真正的“真正”软件开发人员?

绝对不。这只是意味着您喜欢做除编码之外的事情。这样做没有任何问题,它不会使您比其他任何人(无论开发与否)都好或坏。

不用做额外的工作就能成为一名优秀的软件开发人员吗?

当然。其中一些取决于您的工作环境。如果您的工作无聊,令人soul目结舌,然后又花一些时间进行无聊的维护工作,那么利用工作时间来发展自己的技能将非常有限。如果您拥有这样的环境,可以自由地去做自己想探索和学习的事情,那么就可以利用这个机会来发展新技能,这些新技能也可以帮助您的雇主或同事。

如果您发现一些有趣的东西想要了解更多,而又没有时间或可能性在工作中使用,那么您就必须权衡其他时间需求,无论是家人,朋友还是爱好。


+1。是的,这实际上取决于工作环境。在一个拥有聪明(最好是比自己聪明)的人的团队中,他们作为一个团队关心自己的工作并不断努力改善一切(最终产品,基础代码,工具,工作环境等),您就有机会即使您更喜欢将空闲时间花在其他地方而不是在计算机前,都可以成为一名出色的开发人员。
Jonik

1

我最近参加了许多采访,以聘请程序员。我发现,无论是程序员还是我不介意与之打交道的人都给我印象最深的是那些花费大量时间从事非编程工作的人(尤其是音乐,还有纯数学的人,哲学和文学)。可以肯定的是,大多数人也都做一些业余爱好编程,但是他们也有平衡的利益。


现在,如果我只能说服音乐家……他们似乎认为您不能擅长于一件事。音乐和编程非常相似。
Michael

您回答了一个完全不同的问题。您希望与之共事的人的类型可能与对于优秀程序员的人类型完全不同。如果您想和您一起工作的人开心,并在社交上度过一段快乐的时光,那么超级程序员可能不是最合适的选择。但是,如果您的典型工作量是2-3个月才能完成12个月的项目,那么当您发现uber编程器会让您度过工作以外的生活时,个性就不会那么重要做更多的编程。
Dunk

顺便提一句:我发现,在面试中给我留下最深刻印象的人是我最关心的人。在我的早期职业生涯中,我推荐的唯一被聘为技术能力较弱的人也恰巧是面试中最具社交能力和说服力的人。
Dunk

1

如果拥有一份可以为您提供完全引人入胜的知识体验的工作,那么这很有可能会成为您的心理生活-外面的工作是为了释放动力。如果您的工作没有吸引您,那么下班后您很有可能会获得智力上的满足。在任何业务中都是如此,而不仅仅是编码。

在办公室里编码会降低您的创造力和时间。每天至少有8个小时,您的想法代表他人在不断冲刺。出现这种情况是正常的,而不想回到计算机上。当我在办公室工作时,情况对我来说是一样的-我会回家,只想做饭,或者去看电影,和朋友一起闲逛,或者只是坐在电视前。然后从2001年至2004年左右,在我为油罐车工作的公司工作后,我开了车,然后退学,开了辆出租车,等待餐桌。那是我真正开始在下班时间编码的时候。

事实是,我认为没有人每天有超过8个小时的高质量编码时间。许多编码器只有2-3个,但他们可能是那里效率最高的人。这就是您使用它的方式,以及如何传播它。


1
您从未与OSS开发人员见过面,对吗?当编码成为一种激情时,您有时可能想要连续24小时使用编码。
马丁·彼得

1

不用做额外的工作就能成为一名优秀的软件开发人员吗?

这取决于您所从事的行业。有些行业比其他行业更具竞争力。

如果您不想自己学习新知识,则很可能会保持目前的技能水平。那可能就足够了……还是没有。

这与投入的时间无关,与好奇心有关,对知识和掌握的渴望。显然,它与保持最新状态无关,它与基础知识(通常是硬性知识)无关:编译器,monad,内存体系结构等。这些东西会扩展并扩展您的大脑。

想要在家编写代码只是一个重要的副作用。但是不要小看它,不这样做,学习往往很肤浅。

我知道的所有最好的开发人员都具有这些特质。


1

不,它不会比其他任何人都使您成为程序员。您更具社交性。老实说,我很羡慕。

您不必花费所有的业余时间来编写代码。我的工作很简单:服务器管理。我写了很多代码,因为我不必做很多工作。这并没有使我比任何人更好或更坏。如果您对编程充满热情,为什么不做一些自由职业呢?我经常为我的服务投放Craigslist广告,并从中赚取很多钱。这也是一种很棒的学习体验,因为您将与初创公司甚至有时与大型网站合作。希望这可以帮助。:)


爱好编程使您固有地“更加社交”。您可以单独进行编程,非常好。
Mufasa

0

我几天后问了一个类似的问题。似乎人们似乎对我们的工作更加热情,如果我们不仅全天都致力于这项工作,而且还会投入我们所有可以用于个人生活的时间。

我偶尔会在业余时间写一些代码,但我这样做只是为了好玩,而不是因为我打算获得专业发展或认可。我为有能力为此付出努力的人鼓掌,但您更喜欢因工作更长的时间和从事额外的项目而精疲力尽,而不是实际上变得更精通任何事情。

归根结底,最重要的是您学习新事物的能力(尤其是在工作中),沟通能力以及良好的时间管理技能。使您成为一名优秀的专业人员。


1
我认为您已达到关键点。如果在家进行编程就像要做额外的工作,那将无济于事,甚至可能有害。但是,我知道大多数(如果不是全部)在家的人都可以这样做,因为它对他们来说很有趣。碰巧的是,这些人正是我在项目中想要的人,因为他们比没有的人要熟练得多。他们之所以会在家里进行编程,是因为他们可能更熟练,也许不是,但是我倾向于这样认为,因为他们在做自己喜欢的事情。另外,如果不花时间,要保持自己的技能水平非常困难。
Dunk

0

不用做额外的工作就能成为一名优秀的软件开发人员吗?

对我来说,一切都与平衡有关。

尽管我喜欢编程,但这只是我的一方面,但我还有其他兴趣。从长远来看,如果我很高兴(做自己喜欢做的​​其他事情)并且发现自己的工作很有趣且很有意义(我所做的),那么从长远来看,我正成为一个更好的软件开发人员。

附言:我承认我没有阅读过此页面上的所有先前文章。


为什么为-1?这是一个非常合理的答案。+ 1
zzzzz
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.