如果非让我找一个最能说明现在的软件开发和10年前的软件开发相异的地方的话,我想应该是知识在量上的爆炸。
在软件行业里,制造知识的速度远超可能的学习速度。
夸张点讲,今天在软件世界里应该没有全才了。如果不信,可以看看下面从Wiki以及TIOBE上拷贝的列表。
在当下,你很难即做内核驱动也精通css,即精通后端也精通前端,即开发数据库也开发数据库应用。
当然终究是有些东西共通于各种技术之间,比如设计原则,模式等,但不要忘了恰是不同的部分才决定了该技术的存在价值。
这一现象的背后隐含了一个悖论:你学的越多很可能失去的也越多。
这与大多数认为的学的越多,可能得到的越多相悖。
背后的道理很简单,时间有限,而知识无限。面铺的越广,单个知识上摊的时间则越少,达到的高度必然也就有限。
用的时候大多时候,需要的往往是特定的点
极值的话就等于什么都没学,毫无价值。
这应该不难理解,把下面所有范式都了解一遍的人,几乎一定不如精通某几个的人有价值。
Programming paradigms |
§ Declarative (contrast: Imperative) § Cell-oriented (spreadsheets) § Reactive § Function-level (contrast: Value-level) § Generic § Imperative (contrast: Declarative) § Non-structured (contrast: Structured) § Array § Programming in the large and small § Semantic § Structured (contrast: Non-structured) § Modular (contrast: Monolithic) § By separation of concerns: |
学了所有下面这些语言的人,大多时候也一定不如精通某几个的人有价值:
通常的认识总是天道酬勤,但其实却是不准确的。盲目的勤劳很可能带来灾难性的后果,勤劳之前也需要有大致的方向。
------------------------------------------------------------------------------------------------------------------------------------
理想流 + 软件 = 《完美软件开发:方法与逻辑》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和逻辑推演本质,追求真理。