我差不多一年前从大学毕业。从那时起,我就使用了许多不同的技术,例如PHP,JQuery,ASP.NET,C#等。最近我转而使用powerbuilder进行开发的公司。
问题是我还没有掌握上述任何一种语言。我可以做那些事情,但是当涉及到复杂的任务时,我经常会为此烦恼,因为我对它没有足够的深入了解。在看了几天的powerbuilder后,我感觉这将会再次发生,因为大多数应用程序代码都是使用某种类型的库来完成的,这需要一些高级技能的powerbuilder。
我的问题是,我可以在不掌握其中一种技术的情况下研究不同的技术吗?
如果您选择专业化,则通过让自己无法进行其他类型的工作来获取机会成本。如果您可以确信您所选择的专业化将持续合理的时间,这是很好的。但是,您可以保证(连同死亡和税收)软件将发生变化。您将始终需要学习一些新的框架或方法,以保持最新状态。
那么为了避免发现自己处于一个知识分子的死胡同(在任何地方仍在运用?)你应该采用不断学习的学说。学习通常很有趣,几乎总能带来发现一些新工具或设计的乐趣。永远不要把这些知识留给自己(它的半衰期只有18个月)。与他人分享您学到的知识。
所以回答你的问题:不专业。
根据 务实的程序员 本书,一个优秀的程序员的提示之一是:
Invest Regularly in Your Knowledge Portfolio
Make learning a habit.
这意味着您必须经常使用或了解新技术。虽然成为一项特定技术的大师可能是有益的,但技术来来去去,今天比以往更快。掌握一种特定的编程语言,工具或API可能会让你成为今天的大师,但明天可能毫无意义。
IIRC他们还建议开发人员掌握多种技术,但仍然精通许多技术 - 至少在听说过他们的意义上,与他们一起玩,能够就他们进行对话。
所以,我会说是 - 专业化是必要的,但这并不意味着应该忽略他自己以外的领域。
这个问题没有“正确的答案”,除了“它取决于”。
如果你专注,你会发现更容易找到更好的工作,就像你所说的那样。我认为它更像是使用特定的语言/框架。此外,无论选择何种语言,解决困难问题和获得经验都很重要。
一旦你接受了上述作为一个真理和专业,那么我建议你分支出来学习新的语言。幸运的是,当您拥有更多经验时,语言变得更容易学习。
然而,最重要的是,你必须考虑在很长一段时间内保持自己的兴趣。这才是真正的关键。如果您有兴趣,您将继续学习并获得经验。也许这意味着你会做一些与大多数工作无关的事情,例如编写语言编译器。或者你可能会发现,在大型项目上为大客户工作的热潮比特定的语言/框架更重要。
所以就是这样 - 只要保持兴趣,继续学习。并且,在可能的情况下,将重点放在您感兴趣的事物上,因为这将使您更容易找到未来的工作。
重要的是要专注于至少一种编程语言/平台,尤其是在您职业生涯的早期阶段。通过专业,我的意思是阅读一本关于它的书,封面,并有大量的实践经验,在工作或参与开源项目。
这背后的想法是,当您专注于某种语言时,您将学习许多可以带到不同语言/平台的概念。例如:语言的主人可以相对轻松地掌握另一种语言。
在你的职业生涯中接触到许多平台是一件好事,因为你开始从开发人员转变为开发人员/架构师,你需要决定使用哪个平台,每个平台的优缺点和所以不行。
所以我的建议是尝试掌握至少一种语言及其工具和框架。之后,您可以继续使用不同的平台。使用它很重要 正确的平台 为了 当前的项目,您需要在高级开发人员的协助下确定具体情况。