全能还是专精?关于技术通才与技术专家的思考

在日新月异的 IT 行业中,每隔数年乃至数月,便会涌现出革新性的技术或前沿框架,引领行业潮流。

比如前端开发,我刚开始工作时,大部分都是静态页面+JavaScript,页面上只有一些简单的交互。

后来出现了Ajax技术和JQuery库,现在想起当年第一次使用JQuery时,真的觉得这就是前端库的终点。

结果没过几年,就兴起了MVC/MVVM框架,随之而来的就是AngularJSEmberJS,这时,突然就觉得JQuery没有那么香了。

AngularJSEmberJS还没闹明白,React又横空出世,紧接着就是Vue。。。

再看后端开发,早期我主要使用.NET,或者用一些Java,不过那时候后端语言和框架不是那么被重视,

更多的精力都是放在数据库上,尤其是 Oracle,项目上还有DBA的角色,专门负责处理数据库的问题,

那时的应用基本都是单机的。

后来,随着应用规模的扩大,性能问题逐渐显现,开始引入缓存技术(Memcached,Redis),

同时,异步编程和多线程技术也开始被广泛应用。

这时候,各种 Web 框架也如雨后春笋般不断崛起,知名的比如 Spring,Django,Rails 等等。

再后来,互联网应用飞速发展,单机应用开始显得笨重且难以维护和扩展。

云服务,微服务,Docker成为主流,持续集成和持续部署(CI/CD)流程也被广泛采用,

数据安全和隐私保护的重要性也日益增加,后端开发在安全性和认证方面的要求也越来越高。

其他 IT 领域也类似,随着硬件的发展和互联网累计的数据量到达一定规模之后,神经网络,深度学习和强化学习让机器学习领域飞速发展,AI 真正开始走向普通人的生活中。

总之,我们一直处于技术迭代的循环中。

1. 选择通才还是专家?

像 IT 这样迭代如此之快的行业绝无仅有,那么,在技术的世界里,我们应该专注于一个领域还是尝试很多领域?

也就是说,我们应该成为通才(拥有广泛的知识,无论有用与否)还是成为专家(致力于一个主题或一个特定的分支)呢?

回答这个问题之前,首先了解一下通才和专家具体有什么不同。

1.1. 通才

通才指的是那些勇于尝试、对广泛领域保持探索精神的人。

在技术的广阔天地里,他们不仅精通某一专业领域,更在多个领域内拥有深厚的知识积累。

这类人往往不会局限于单一的职业路径,而是倾向于在其职业生涯中跨越不同的领域,不断寻求新的挑战与成长。

这样的人能够改变世界。

著名的通才包括像史蒂夫·乔布斯和埃隆·马斯克这样的天才,他们擅长创新新事物。

通才不仅仅是在他们感兴趣的每一件事上都表现出色,他们还能够将解决一个问题时获得的知识,其应用于不同但相关的问题上。

当他们学会了某个领域的基本知识后,就会把这个知识用在之后接触的每个新领域里。这就是首席技术官的工作范围能横跨多种技术和不同领域的原因。

他们会用自己多年积累的见识和经验去应对每一个新挑战,同时还会不断学些新出现的技术。

通才专注于解决问题,而不是某个具体的技术。

1.2. 专家

相反,专家则展现出高度的专注力。

他们致力于深耕细作,在某一特定领域内稳步前行,犹如手持明灯的引路人。

专家们热衷于全面掌握某一领域的所有知识,他们孜孜不倦地研究、实验与学习,以追求更高的专业造诣和更深的理解。

绝大多数技术进展归功于那些在各自领域深耕细作的专家。

他们专注于机器学习(ML)、网络技术(Web)、移动技术、基础设施、中间件以及其他各类技术领域的开发与优化,凭借多年累积的专业知识与经验,推动了这些领域的持续发展与创新。

专家需系统掌握核心基础知识,并通过在特定领域内长期深耕,方能触及并精通该领域的高级课题。

成就斐然的背后,是无可替代的辛勤努力与积累,无捷径可循,比如各种编程语言,框架的发明者,机器学习领域的各位先驱等等。

各学科的重大发现与进步,很大程度上仰赖于这些领域专家的贡献与推进。

软件专家长期以来运用一套稳定的技术栈,在自身领域内积累了深厚的知识,并对外部进展保持洞察。

他们通过不断努力,成为了行业内的权威人士,同时积极寻求和实践创新的方法论。

不过,软件专家并非要求个体局限于单一技术领域,他们也可以自由探索其他技术领域。

2. 个人建议

我自己的感觉是通才专家属于两个极端,作为一个普通人(包括我自己),我的选择是介于两者之间。

如果对某个技术领域非常感兴趣,那么可以花时间去掌握该领域的各个方面,

但不要限制自己,不要排斥接触其他相关领域。

比如,在github,我们可以看到很多前端高手,前端的知识和经验已经非常丰富了,也会去学习Rust,然后用 Rust 来开发提高前端开发效率的工具。

还有很多机器学习领域的高手,他们也会学习前端的技术,为自己的大模型制作交互界面,让更多的人能够使用大模型。

选择学习什么技术的时候,有两个很重要的因素值得我们好好参考,就是兴趣经验

兴趣虽然有助于我们缩小选择的技术领域,但最好是尝试不同的技术领域之后,再决定自己的真正的兴趣。

比如,不要因为第一个工作接触的是前端,发现前端也挺有意思,就把自己的兴趣定在前端。

决定兴趣之前,多接触几种不同的领域,尝试在不同的领域做一些小工具玩玩,不同担心学了没用或者浪费时间,

想想通才,任何在其他领域中学到的技能都不会浪费。

其次,经验是另一个帮助我们做决定的重要因素。

要成为专家,需要花上好多年的时间去积累经验。如果你已经在某个领域里干了好些年,往专家方向发展通常是个不错的选择。

但是,如果你刚起步或者工作中本来就横跨了几个领域,那么,选择成为通才也许更有意义。

最后,有一个忠告,千万不要仅仅因为困难就放弃成为专家,转而成为通才。

因为通才一点也不比专家简单,通才不是“万事通”,更像是多个领域的专家。

总之,千万不要东搞搞西弄弄,一碰到难题就怂,然后又跑去折腾别的,并且自我安慰“我就是兴趣广泛,更适合做个通才!”。