不断学习,你是否应该投入自己的时间?
我们团队每次冲刺都会抽出一些时间一起学习。今天我们观看了深受大家喜爱的“鲍勃大叔”的一段视频。这次我们观看了一集关于生产力的视频。这集视频很精彩,但在他和他的狗做各种奇怪的事情,以及他所描绘的众多奇怪人物之间,有一个片段吸引了我们所有人的注意力。他谈到了学习,当时我听到他大声说道:“除了工作之外,你每周还应该花15-20个小时学习,这是你对雇主的责任。”我注意到每个人都像见了鬼一样。这该怎么做呢?!
Bob 大叔的学习愿景:
我已经很久没看过《程序员的整洁之道》了,这个视频系列就是其中之一。这是一个致力于帮助人们成为专业软件工程师的系列视频。虽然篇幅不长,但他对学习的立场却非常清晰:
- 每周花 15-20 小时在你的事业上
- 每年至少学习一门新语言
- 你至少必须熟记设计模式、设计原则、方法、规则和工件。
- 你应该紧跟潮流和动向,同时了解和学习过去
他这样想有充分的理由,我认为他书中的一句话很好地概括了这一点。
我们行业瞬息万变,这意味着软件开发人员必须不断学习大量知识才能跟上时代的步伐。停止编码的架构师将会面临困境——他们很快就会发现自己被时代淘汰。停止学习新语言的程序员将会面临困境——他们将眼睁睁地看着自己被行业淘汰。未能学习新学科和新技术的开发人员也将面临困境——他们的同行将会脱颖而出,而他们则会逐渐衰落。
你会去看一位不了解最新医学期刊的医生吗?你会聘请一位不了解最新税法和案例的税务律师吗?雇主为什么要雇佣不了解最新情况的开发人员呢?
他对专业性的见解也非常明确。
也许你不想做出这样的承诺。这没关系,但你不应该把自己当成专业人士。专业人士会花时间去维护自己的职业。
他将其与律师和医生进行比较
有一段时间我一直在说,我们的行业与其他行业不同,认为其他工作需要这么多学习的想法简直是疯了。然后我看到了他举的那个医生的例子。嗯,我确实希望我的医生能够跟上潮流。如果他能够使用过去几年研究出来的新技术来诊断我就好了。但我一直怀疑他们需要在学习上投入多少时间。所以我决定问谷歌医生。虽然没有豪斯医生那么有趣,但还是得到了一些不错的答案。一些快速的研究告诉我,根据你居住的州,你需要每年获得 20-60 个 CME 学分才能保留你的执照,从而保持专业性。有各种各样的项目可以给你这些学分,参加会议、某些会议、阅读期刊等。一个学分需要一个小时的时间。这意味着一个普通医生每年需要花费相同的时间进行学习,与 Bob 期望专业开发人员在 1-3 周内花费的时间相同。现在,这种比较对我来说开始变得不那么重要了。有些医生可能真的很敬业,但即使把时间增加10倍,也最多只能相当于专业软件工程师的一半时间。
那么他的税务律师呢?和医生的情况一样,每个州都有规定的学分要求,大约每年 20-40 个学分。和医生一样,一个学分需要工作一小时。一些专业的税务律师或会计师每年需要花费的学习时间,相当于 Bob 预计专业开发人员 1-2 周的学习时间。
众所周知,这两份工作维护成本高、责任重大,但回报也很高。为了保住执照,你需要投入大量的工作时间和学习时间。不过,与我们刚刚读到的专业软件工程师的期望相比,这似乎微不足道。
受到影响
虽然我确信 Bob 叔叔的观点并不像我在本文中这样非黑即白,但这样的说法还是有一定的危险。 他的工作在业界非常有名,我们很多人都会认为他是某种形式的大师。 因此,当他说这样的话时,很多人都会相信他。 无论您是经验丰富的开发人员,还是仍在学习编码的人,都没关系。 我们很多人都有某种形式的不安全感,这对人类来说是完全自然的,并且在很多关于“冒名顶替综合症”的文章中被广泛讨论,几乎可以说太多了。 而我们这些已经有些不安全感的人很容易读到这样的内容,并开始认为这只是每个软件工程师都应该做的事情。
意识到
它为什么这么危险吗?我们会像他在书中说的那样,它并不危险。我知道,有点困惑吧?他在书中写道:
或许你认为这是导致倦怠的秘诀。恰恰相反,这是避免倦怠的秘诀。想必你成为一名软件开发人员是因为你对软件充满热情,而你成为专业人士的愿望正是由这种热情所驱动。在这20个小时里,你应该做那些能增强这种热情的事情。这20个小时应该充满乐趣!
所以,你是说这会导致倦怠吗?没错!但问题不在于你投入的时间,而在于你投入时间的原因。如果你对代码的热情流淌在你的血液中,并且你为之付出生命,那么这对你来说可能不是什么大问题。不过你仍然应该意识到,即使做那么多你喜欢的事情也会让你精疲力竭,或者让你讨厌它。当你认为这是你的期望时,情况会变得更加危险。虽然他说学习应该很有趣,但学习不会一直很有趣,也不会花很多时间,学习不可能一直很有趣。即使很有趣,你不觉得这会对你的工作产生影响吗?如果学习真的很有趣,而你在工作一整天后只写了4个小时的代码,那么第二天你开始工作时,基本上已经工作了12个小时。到星期五,累计起来就是60个小时了。你不可能再像以前那样工作40个小时了。即使工作时间不会让你感到疲惫,但当你在家工作的半天如此有趣,而接下来的8个小时却不得不日复一日地做一些不那么有趣的事情时,最终你会在工作中精疲力竭。
真正的开发人员是怎么想的?
一些备受尊敬的人建议你花很多时间学习。除了鲍勃大叔,我只能在约翰·索梅兹 (John Sonmez)那里找到相同的观点,他们都是众所周知的在职业生涯中投入时间的人。而其他人,比如安德鲁·亨特 (Andrew Hunt) 和大卫·托马斯 (David Thomas),确实描述了要做什么,但没有描述要投入多少时间。我最注意到的是,这些人幸运地似乎是例外,大多数作家似乎都避免建议投入具体的时间。当你开始寻找其他软件工程师的意见时,你会发现他们的观点。很多意见都不一样。虽然他们中的大多数都不像上面的那么极端。很多人认为你不需要在工作之外做任何编码,这个帖子对这个观点给出了很好的见解。而其他人认为你确实需要在工作之外花一些时间在这上面,正如这个帖子所讨论的那样。关于这个问题的帖子有很多,显示出我们对这个问题的不安全感,但我找不到同意每周15-20小时的人。大多数人的意见是,只需要在工作中编写代码,学习应该在工作中进行,或者每周在家待几个小时是必要的。
我该怎么办?
好问题,很高兴你问了!简而言之,随心所欲!你应该试着弄清楚你生命中最重要的是什么,你想在生活中实现什么,然后分配你的个人时间去做这些事情,实现这些目标。对我们很多人来说,大多数人来说,很多其他的事情都比编程更重要。想想成为伴侣、父母、朋友,享受乐趣、旅行、做志愿者,或者任何你认为重要的事情。你可能不想在临终前看到工厂模式被注入到你的解耦类中,对吧?编程,或者拥有一份伟大的事业,可能在你的清单上,也可能不在。你想尽一切努力成为一名最好的软件工程师,并让它成为你最重要的事情,那就投入时间吧!只要你的空闲时间与你的人生目标相匹配,就没有错!