软件开发 专业化_开发人员应该推广还是专业化?

软件开发 专业化

重点 (Top highlight)

I came across a tweet the other day asking this question. As expected, among the hundreds of comments it seemed to be a 50/50 split. It’s a hotly debated topic and there are great points to be made on both sides of the fence.

前几天,我碰到一条推文问这个问题。 不出所料,数百条评论中似乎有50/50的分歧。 这是一个备受争议的话题,在篱笆的两边都有很多要点。

Many claim that you should specialize in a particular language and possibly even an associated framework. In doing so, you can position yourself as the expert and have a successful career. This is mostly true.

许多人声称您应该专门研究特定的语言,甚至可能熟悉相关的框架。 这样,您可以将自己定位为专家并拥有成功的职业生涯。 这基本上是对的。

Others claim that this locks you into a language that may not stay in demand. Thus you should instead nail down programming concepts, learn to adapt to any language, and demonstrate your marketability by being a “jack of all trades.” This is also mostly true.

其他人则声称这将您锁定为一种可能不需要的语言。 因此,您应该确定编程概念,学会适应任何语言,并通过成为“万事通”来证明您的可销售性。 这也是大多数情况。

Both are important. And actually, both can be pursued.

两者都很重要。 实际上,两者都可以追求。

How? By following one principle.

怎么样? 通过遵循一个原则。

Developers should generalize concepts and specialize in languages.

开发人员应该概括概念并专注于语言。

This principle can help you contextualize both. Let’s discuss what it means.

这项原则可以帮助您将两者结合起来。 让我们讨论它的含义。

概括 (Generalization)

Being able to work with multiple programming languages and having the ability to adapt quickly to different environments has nothing to do with mastery. It has more to do with having a solid programming foundation, the ability to read documentation well, and understanding the core concepts that are shared across languages.

能够使用多种编程语言并具有快速适应不同环境的能力与精通无关。 它与扎实的编程基础,良好阅读文档的能力以及理解跨语言共享的核心概念有关。

Most general programming languages share many concepts — variables, objects, arrays, functions, classes, etc. They use brackets, returns, conditionals, key/values, parameters, and imports. Principles, like separation of concerns, abstraction, and MVC, are also shared.

大多数通用编程语言共享许多概念-变量,对象,数组,函数,类等。它们使用方括号,返回,条件,键/值,参数和导入。 还共享原则,如关注点分离,抽象和MVC。

Knowing these core principles allows you to work across many coding languages.

了解这些核心原理可以使您跨多种编码语言工作。

If you need to use an array and understand the concept, all that's left is looking up how that language implements one.

如果您需要使用数组并理解该概念,那么剩下的就是查找该语言如何实现一种。

All developers should generalize concepts. A solid programming foundation allows you to adjust more quickly to the various technologies your employer may throw at you.

所有开发人员都应该概括概念。 扎实的编程基础使您可以更快地适应雇主可能会使用的各种技术。

专业化 (Specialization)

In addition to generalizing concepts, I still feel like specialization is very important.

除了概括概念,我仍然觉得专门化非常重要。

Specialization should be sought quickly and developers should stick with that specialization for a lengthy period of time.

应尽快寻求专业化,开发人员应长期坚持该专业化。

Going deeply into a language not only allows you to become a marketable expert, it will eventually introduce you to more advanced, general programming skills like design patterns, clean code, and the underlying nuances that a generalist never encounters.

深入学习一种语言不仅可以使您成为一名适销对路的专家,而且最终会为您介绍更高级的常规编程技能,例如设计模式,简洁的代码以及通才所不会遇到的细微差别。

In other words, it will make you a better developer.

换句话说,它将使您成为更好的开发人员。

Specialization is also important for freelancers and consultants. It allows you to set up shop in a specific niche and position yourself as an expert.

专业化对自由职业者和顾问也很重要。 它使您可以在特定的细分市场中建立店铺并将自己定位为专家。

And for the nine-to-fivers, your specialty will help you stand out for jobs that require that language.

对于九至五岁的人,您的专业将帮助您在需要该语言的工作中脱颖而出。

结论 (Conclusion)

In conclusion, specialization and generalization aren’t at odds with one another. They just need to be put into context.

总而言之,专业化和通用化并不矛盾。 它们只需要放在上下文中即可。

Developers should specialize in a language (and often an associated framework). This gives them more marketability in that niche and, more importantly, will make them a better developer.

开发人员应专门研究一种语言(通常是一种关联的框架)。 这使它们在该细分市场中具有更大的适销性,更重要的是,将使它们成为更好的开发人员。

At the same time, being a generalist in programming concepts and principles allows developers to adapt to other languages required on the job. By having a solid foundation and being able to read documentation well, they’re equipped to handle other technologies that come their way.

同时,作为编程概念和原则的通才,开发人员可以适应工作中所需的其他语言。 通过扎实的基础和良好的文档阅读能力,他们可以应对其他新技术。

Embrace both!

拥抱两者!

翻译自: https://medium.com/better-programming/should-developers-generalize-or-specialize-12e1e4563ff8

软件开发 专业化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值