为何有些软件知识自学如此的困难

最近常常思考一个问题:

  • 什么是技术
  • 什么又是核心竞争力

我在 v2ex 也问了这个,从大家的收藏的数量看起来大家也一定有一样的困扰。从别人那没有获得什么中肯的答案,多数答案都有像是解释,周末的时候在豆瓣上找到了那本书 技术的本质

什么是技术

作者在开篇便指出了技术的三要素:

技术的三个定义:
• 技术是实现人的目的的一种手段。
• 技术是实践和元器件的集成。
• 技术是在某种文化中得以运用的装置和工程实践的集合。

暂且不论第二点和第三点,技术需要目的性。这个很重要,而这个目的性决定了你又如何搞定这个技术。

互联网的那些技术

整合互联网能拿出来说的事情,主要以并发为主。比如阿里的双11等……
他们的目标就很明确:解决XXX并发量的问题。当然随着并发量的增加我们还有很多其他的问题需要解决。可以参考 尽在双11:阿里巴巴技术演进与超越

从任何技术上来说,规模化都是一个很重要的考量指标。

为什么自学就很困难

想想技术三要素,当我们自学的时候,我们的目标就发生了转变:从解决 XXX 并发量的问题 变成 我要学习别人怎么解决 XXX 并发量的问题,而我们自己是没有这样的需求的,这时候就是所谓的平台的作用性,平台为程序员提供了场合,程序也支持了平台。

我们非要在这个时候学习大厂,其实倒是有可能会画蛇添足,虽然大部分的时候其实画虎不成反类犬的结果。

那应该怎么办

最简单的办法莫过于去大平台,而除此之外,我们可以着眼于细微住处,除了并发量的考虑之外,我们还有像是 SQL解析 之类可以在小规模内就可以产生需求的问题,举个例子,比如我们在小平台,我们虽然没有大流量的压力,但是我们可以通过 CodeReview 提供代码质量。