软件领域的发展是飞速的,各种开发语言,各种新技术层出不穷,一个程序员稍微一打盹,就会落后于时代了!
所以只有学习,不停地学习,才能跟上时代的步伐!
那么,问题就抛出来了:学习的技术究竟需要广度还是深度(专业化)呢?
首先,让我们来假定一个场景: 你是一个位面试官,正在面试一个位求职者。。。
问:“你会什么开发语言呢?”
答:“我都会!C++, C#, Java, Python, JavaScript, Ruby, Go语言我都会”
what's your feeling?
再举个例子:你家装修,需要你个电工,你到劳务市场上去找工人,一个人说他电工,水工,木工都会,而另一个他说他只会电工,你会选哪个人?我想大多数人都会倾向于聘请一个“专才”,只有极少数人会选择“通才”!从表面上看,身为“专才”后,潜在的雇主和客户群都变小了,但实际上你对他们更有吸引力了!
专业化的规则是:专业化程度越深,潜在的机会就会越少,但获得这些机会的可能性就越大!
在你的工作经历中可能遇到这种情况,有的人技术上不是很强,工作的内容,技术也很冷门,但领导很重视他。为啥?
因为他的不可或缺性!
简单的说,如果他走了,没人能替他!而对于那些谁都会的热门技术,其实对于领导来说都无所谓,因为你不干,有的是人能干!
那么是否就应该从一门技术而终呢? 当然不是!如果过于执着于太冷门的东西,最后极有可能被淘汰。如果你需要,随时可以改变你的专业方向,不管怎样,一定要专一样!
“专才”是否就不需要“通”了么?当然需要!“专业化”的道路,并不代表你不应该同时具备广泛的技能。能够使用多项技术和多种开发语言,能打开你的视野,能让你比那些只了解一项技术或一种编程语言的开发人员更有价值。然而,这种“万金油”式的人才在市场上并不吃香。
即使你很牛逼,能通晓100种开发语言,你最好还是选定某个专业领域,哪怕时不时换一下!
一句话总结:从专业化开始,再拓展分支!