是否需要专业化软件开发

时间:2010-11-04 08:05:48

标签: programming-languages

我差不多一年前从大学毕业。从那以后,我使用了许多不同的技术,例如PHP,JQuery,ASP.NET,C#等。最近我转而使用powerbuilder进行开发的公司。

问题是我还没有掌握上述任何一种语言。我可以做那些事情,但是当谈到复杂的任务时,我经常会因此而挣扎,因为我对它没有足够的深入了解。在看了几天的powerbuilder后,我感觉这将会再次发生,因为大多数应用程序代码都是使用某种类型的库来完成的,这需要一些高级技能的powerbuilder。

我的问题是,我可以在不掌握其中一种技术的情况下研究不同的技术吗?

4 个答案:

答案 0 :(得分:6)

如果您选择专业化,那么您将通过让自己无法从事其他类型的工作而获得机会成本。如果您可以确信您所选择的专业化将持续合理的时间,这是很好的。但是,您可以保证(连同死亡和税收)软件将发生变化。您将始终需要学习一些新的框架或方法,以保持最新状态。

所以为了避免发现自己处于一个知识分子的死胡同(在任何地方仍在使用?)你应该采用不断学习的学说。学习通常很有趣,几乎总能带来发现一些新工具或设计的乐趣。永远不要把这些知识留给自己(它的半衰期只有18个月)。与他人分享你学到的东西。

所以回答你的问题:不专业。

答案 1 :(得分:4)

根据Pragmatic Programmer书,一位优秀程序员的提示之一是:

Invest Regularly in Your Knowledge Portfolio
Make learning a habit.

这意味着您必须经常使用或了解新技术。虽然成为一项特定技术的大师可能是有益的,但技术来来去去,今天比以往任何时候都更快。掌握一种特定的编程语言,工具或API可能会让你成为今天的大师,但明天可能毫无意义。

IIRC他们还建议开发人员掌握多种技术,但仍然精通许多技术 - 至少在听说过这些技术的情况下,与他们一起玩,能够就他们进行对话。

所以,我会说是 - 专业化是必要的,但这并不意味着应该忽略他自己以外的领域。

答案 2 :(得分:3)

这个问题没有'正确答案',除了可能,“它取决于”。

如果你专注,你会发现找到更好的工作更容易,就像你所说的那样。我认为它更像是使用特定的语言/框架。此外,无论选择何种语言,解决困难问题和获得经验都很重要。

一旦你接受了上述作为一个真理和专业,那么我建议你分支出来学习新的语言。幸运的是,当您有更多经验时,语言会变得更容易学习。

然而,最重要的是,你必须考虑在很长一段时间内保持自己的兴趣。这才是真正的关键。如果您有兴趣,您将继续学习并获得经验。也许这意味着你会做一些与大多数工作无关的事情,例如编写语言编译器。或许你会发现在大项目上为大客户工作的热潮比特定的语言/框架更重要。

就是这样 - 只要保持兴趣,继续学习。并且,在可能的情况下,将重点放在您感兴趣的事物上,因为这将使您更容易找到未来的工作。

答案 3 :(得分:2)

专注于至少一种编程语言/平台非常重要,尤其是在您职业生涯的早期阶段。通过专业,我的意思是阅读一本关于它的书,涵盖,并有大量的实践经验,在工作或参与开源项目。

这背后的想法是,当您专注于某种语言时,您将学习许多可以带到不同语言/平台的概念。例如:语言的主人可以相对轻松地掌握另一种语言。

此外,您的职业生涯暴露于许多平台是一件好事,因为您开始从开发人员转变为开发人员/架构师,您需要决定使用哪个平台,优点和缺点是每个平台都没有。

所以我的建议是尝试掌握至少一种语言及其工具和框架。之后,您可以继续使用不同的平台。对于当前项目使用正确的平台非常重要,您需要在高级开发人员的帮助下确定具体情况。