凡人和神学习和使用软件的七个层次

从事软件开发行业,我们免不了要使用软件:操作系统、虚拟机、IDE、消息队列中间件、缓存中间件、HDFS、各种预研的编译器、Tensorflow等等。

在我看来,虽然软件有无数种,但是每种软件的了解却不出以下几种维度——

 

第零层:

知道个名头,知道是干什么的

 

第一层:

会一些基本的使用(调用)并逐渐掌握到(60%以上)的使用方式

比如JVM和Java编译器,你会写一些Java代码,并在JVM上运行你的代码以实现一些功能

比如操作系统,你会一些基础的命令

比如redis,会搭建一个单机版,并可以使用其命令

 

第二层:

对大部分(60%以上)的配置项(设置项)都能懂

比如JVM,你会设置一些JVM的运行参数

比如操作系统,你会配置一些系统运行参数

比如redis,你会配置各种参数,这个时候你应该已经可以搭建各种类型的redis集群,并使用客户端对其进行连接

 

第三层:

对其源码大部分(60%以上)已经读懂,原理和运行机制已经深度理解

比如JVM,你对其源码已经基本吃透,这时候让你做一些移植和JVM裁剪、JVM源码修改、重新编译等工作已经不是问题

比如操作系统,同JVM

比如redis,你已经深度理解了redis的运行机制,redis自身的bug你已经可以解决,redis不满足你的要求你已经可以调整它的代码

 

第四层:

你已经对软件的社区和作者造成了深度的影响,你不断的提出建议或者意见,并提交解决方法,成为了社区名人,大家都觉得你很屌,甚至超越了原作者

比如linux,linus经常和你书信往来,并对你感到由衷的佩服,如果你比他年轻很多,他甚至会要求你做他的软件的继承人

比如JVM,Oracle公司决定高薪聘请你做他们公司的技术指导

 

第五层:

你越来越觉得到这个软件设计的不完善,都是些愚蠢的设计,并开发了一个同类软件,完全超越这个软件

比如linux,你已经做出了一个崭新的操作系统,你开发的操作系统,设计在当前看来几乎是完美,假以时日和宣传必定超越所有同类,一统该类软件的江湖,linus甚至为你让步,停止更新linux内核,并发布官宣

 

第六层:

你的软件已经站在巅峰,你觉得冯诺依曼机的架构已经不能满足你的需求,为了让你的软件运行的更好,你迫切需要一种崭新的计算机架构,于是你开始着手设计一种新型计算机架构来运行你的软件,从这以后你踏上了其他领域——也许你会涉足量子领域,也许你会搞生物,也许你的新设计会和相对论挂钩,或者你的新架构就是改造恒星?如果到这一层,凡人已经看不透你了,我觉得人类的未来就靠你了,你加油吧。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第七层:

还想看第七层是什么样的?醒醒吧!

 

(以上内容从第三层以后都是扯淡,仅供娱乐)

 

posted @ 2019-03-02 10:25  剑握在手  阅读(403)  评论(3编辑  收藏  举报
返回顶部↑