Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 在软件开发中专业化是必要的吗_Programming Languages - Fatal编程技术网

Programming languages 在软件开发中专业化是必要的吗

Programming languages 在软件开发中专业化是必要的吗,programming-languages,Programming Languages,我差不多一年前从大学毕业了。从那时起,我使用了许多不同的技术,如PHP、JQuery、ASP.NET、C#等。最近,我转到了一家使用powerbuilder进行开发的公司 问题是我还没有掌握以上任何一种语言。我可以用这些来做一些事情,但当涉及到复杂的任务时,我经常与之斗争,因为我对它没有足够深入的了解。在看了几天powerbuilder之后,我感觉这种情况还会发生,因为大多数应用程序代码都是使用某种库完成的,这需要powerbuilder的高级技能 我的问题是,我可以在不掌握一项技术的情况下使用

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

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

我的问题是,我可以在不掌握一项技术的情况下使用不同的技术吗?

根据这本书,一个好的程序员的一个技巧是:

Invest Regularly in Your Knowledge Portfolio
Make learning a habit.
这意味着你必须不断地使用或学习新技术。虽然成为某一特定技术的大师可能是值得的,但技术的来来往往,今天比以往任何时候都要快。精通一种特定的编程语言、工具或API可能会让你今天成为大师,但明天可能毫无意义

IIRC他们还建议开发人员掌握几种技术,但仍精通许多技术——至少在听说过这些技术、玩过这些技术、能够参与有关它们的对话的意义上是如此


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

对于这个问题,除了“视情况而定”之外,没有“正确答案”

你会发现,如果你像你所说的那样专业化,你会更容易找到更好的工作。我更愿意将其视为使用特定的语言/框架。此外,无论选择何种语言,解决困难问题和积累经验都很重要

一旦你接受了以上的真理和专业,那么我建议你扩展业务,学习新的语言。幸运的是,当你有更多的经验时,语言变得更容易学习

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


就是这样——保持兴趣,不断学习。在可能的情况下,将注意力集中在你感兴趣的事情上,因为这将使你更容易找到未来的工作。

如果你选择专业化,你将因为无法从事其他类型的工作而付出机会成本。如果你能确信你选择的专业将持续一段合理的时间,这是很好的。然而,你可以保证(连同死亡和税收)软件将会改变。你总是需要学习一些新的框架或方法才能保持最新

因此,为了避免发现自己处于智力的死胡同(Transputer还在任何地方使用吗?),你应该采取持续学习的原则。学习通常是有趣的,几乎总是带来发现一些新工具或设计的喜悦。永远不要把这些知识留给自己(反正它的半衰期只有18个月)。与他人分享你所学到的知识


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

至少专攻一种编程语言/平台很重要,尤其是在你职业生涯的早期。所谓专业化,我指的是阅读一本关于it的书,从头到尾,在工作中或参与开源项目时拥有丰富的it开发经验

这背后的想法是,当你专攻一门语言时,你将学到许多可以应用到不同语言/平台的概念。e、 g:掌握一门语言可以相对轻松地掌握另一门语言

在你的职业生涯中,接触许多平台是一件好事,因为你开始从一个开发人员转变为一个开发人员/架构师,你需要决定使用哪个平台,每个平台的优缺点等等


因此,我的建议是尝试至少掌握一种语言及其工具和框架。之后,您可以转到不同的平台。对于当前项目,使用正确的平台是很重要的,您需要在高级开发人员的帮助下逐案确定该平台。

这不是解决此问题的正确位置,但我确实认为您需要专门研究特定领域/语言/平台。我的是C#/.NET。更适合。虽然我相信你会发现已经有人问过类似的问题……换句话说:我希望我能投票表决,但我没有必要的授权:(。我希望我能投票表决,但我没有必要的授权:(+1)帮助天堂的眼泪