没有核心技术能不能开发出成功的产品?

在前面的文章提到过,十年前,我曾经自学计算机科学,后面放弃了,那段时间我自学操作系统、汇编语言、高等数学、离散数学和线性代数等等课程,当时想尽快学习更多的东西,所以这些高等数学和离散数学课程我只将教材看完并看懂绝大多数,而课后的习题我是一个都没做过,不像上学时不仅看完教材而且做完每道题,因此拿了数学科目的高分。

在辞职闭关的那段时间,学着学着我逐渐越来越迷茫,不知道这些知识能够运用在那里,后来每次一看数学书,我就开始想睡觉,逐渐数学书成为我助眠的工具,再过一阵子,我就放弃走这条路了,自我感觉不去学校是不可能走科研这条路的,因此我放弃了,当时我用一句话安慰自己——If you accept your limitation,you go beyond them。

这些年,我看到许多名校毕业的高材生取得成功,比如香港科技大学毕业的大疆创始人等等,我总感觉掌握核心技术才能获得成功,而像我这样,仅仅是有不错的编程思想、有一定技术广度,能写出比较好看的代码,但却写不出艰深的代码,比如操作系统、数据库等等,总感觉自己的职业发展有上限,也做过技术经理等岗位,尝试横向发展,不可否认,这是许多人的出路,但人总要做自己喜欢的事情,我想没有太多热爱编程的人喜欢做管理。

既然不喜欢做管理,也没掌握什么底层核心技术,那如何突破上限呢?近期我有了不一样的看法,且听我说一说。

由于打算开始独立开发者生涯,我首先瞄准了做工具,而不是我擅长的 sass 服务,因为对于个人开发者而言,做 sass 需要投入太多的时间精力以及服务器等资源,风险较高,而个人做的话也很难比的上企业所提供的服务。我看许多个人开发者也是在做工具,这样的成本比较可控,对于许多客户端开发者,这是很不错的思路,但我是一个服务端的架构师,做客户端并不是我擅长的,如果做主要以服务端为核心的 sass 服务,能不能成功?

在经过一段时间的思考,我想是可以的。很重要的原因在于我想通了一点,能不能做成一件事,不光在于有没有掌握核心技术,拿中外合资企业来说,很多核心技术我们国家还没有掌握,但并不妨碍那些企业获得成功,而他们的优势就在于技术整合,现如今软件行业经过高度的抽象,做一个大型系统,也是可以通过整合各种技术来实现,并不需要我们做太多的底层技术研发,对于做架构而言就像是搭积木,只要懂得组合各种技术,搭建出一套承载千万级用户的系统并非难事,并不需要你懂的多么艰深的数学算法,当然如果能够设计出优秀的数学算法,那优势就更加明显了。

重点在于,即使不掌握核心技术,只懂技术的组合也是可以构建强大的企业级应用,就像是中外合资企业,合作方负责提供核心技术,我们只管技术的组合,我们受限于他人的技术,但只要保持良好的合作,并不妨碍我们做出好的应用,尤其是在云计算已经占领大部分市场的时候,做 sass 服务,就像是与云计算厂商合作,云厂商提供核心服务,我们只需将这些技术组合好。