Answers:
是。
我会说你需要两者都做。从#1开始,因为这具有立竿见影的效果,而且您已经进行很长时间了。但是您肯定需要执行#2和#3的某些操作。
当有人问我职业建议时,您的问题是我问他们的第一个问题。我认为没有人可以为您回答这个问题。我认为您必须自己决定专注于深度或广度是否更可能实现您的职业目标。
在上次更换团队时,我有两次机会:可以在XBOX开发人员工具团队中工作,也可以在C#编译器团队中工作。我意识到这归结为广度与深度。在XBOX团队中,我可以为安全系统工作一天,然后为音频系统工作,然后是视频,网络,硬件接口,随便命名。当然,有些人是专家,但是每个人都必须对所有事情有所了解。在C#编译器团队中,我可以深入研究一种语言和一种编译器,并真正深入地理解整个过程。
我考虑了很多,并决定我更适合做某事的专家,而不是很多事的专家。这对我来说是一个不错的选择,但可能不适合您。有些人知道一点点都非常成功。
因此,我的建议是解决这个问题。弄清楚你是什么样的人,然后看看你的公司是否有机会给像你这样的人。如果没有,找到一个可以。
成为专家可以使您变得更昂贵。但是,无论在数量上还是在地理位置上,要求高水平的工作机会都会受到限制。
成为一名通才,可能会花更少的钱,但会为您(可能在世界范围内)打开各种各样的工作机会。
同样,对于更高级别的管理工作,最好让一个人在各种事物,技术和技术方面有经验。知道优势并能够看到全局,这会使您成为宝贵的资产。
我认为在您的开发阶段,深入研究是第一要务。我看到太多的人对一堆东西有点了解,但是因为他们所有的知识都是入门级的,所以不能不做入门级的工作。
显然,如果我想成为专家,那么深度建筑是最好的首选。
如果我想成为一名通才,请先在一个堆栈中构建深度(至少达到中级水平),然后再扩展到其他语言。如果您先建立一些深度,则可能会发现更容易以多种语言建立深度,因为您有更多可用的概念,并且知道更多您想学习的知识。然后,我会扩展到其他内容。然后返回并深入到高级,然后再次分支并了解更多与您已经知道的不同的东西。然后将其他区域的深度扩展到中级水平,再次学习其他内容,等等。
警告-我是最特别的人,所以我显然更喜欢知识的深度
继续学习Haskell或Lisp之类的东西。虽然我确实学习了一种功能语言,但是却使我的代码脱钩了,从而使整体调试更加简单。您可能遇到的唯一问题是您不想返回。