凡人和神学习和使用软件的七个层次
从事软件开发行业,我们免不了要使用软件:操作系统、虚拟机、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内核,并发布官宣
第六层:
你的软件已经站在巅峰,你觉得冯诺依曼机的架构已经不能满足你的需求,为了让你的软件运行的更好,你迫切需要一种崭新的计算机架构,于是你开始着手设计一种新型计算机架构来运行你的软件,从这以后你踏上了其他领域——也许你会涉足量子领域,也许你会搞生物,也许你的新设计会和相对论挂钩,或者你的新架构就是改造恒星?如果到这一层,凡人已经看不透你了,我觉得人类的未来就靠你了,你加油吧。
第七层:
还想看第七层是什么样的?醒醒吧!
(以上内容从第三层以后都是扯淡,仅供娱乐)
相关文章
- 软件——机器学习与Python,if __name__ == '__main__':函数
- 《SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架》一3.7 团队待办事项列表
- 《领域驱动设计:软件核心复杂性应对之道(修订版)》—第1章 1.3节持续学习
- 基于C#开发(WinForm)营销号“助手”软件【100010301】
- 软件项目技术点(7)——在canvas上绘制自定义图形
- 软件杯龙源风电赛题培训!千万分钟数据和全流程基线等你来战
- SQLite学习笔记之如何将现实问题转化为软件
- 《威胁建模:设计和交付更安全的软件》——3.2 假冒威胁
- 《软件建模与设计: UML、用例、模式和软件体系结构》一一第2章 Software Modeling & Design: UML, Use Cases, Patterns, & Software Architectures
- 《应用时间序列分析:R软件陪同》——2.5 一般线性模型
- 面向“未来就绪”的全套融合方案,通往软件定义数据中心的“极简”之路
- 华为OD机试 -获取最大软件版本号(Java) | 机试题+算法思路+考点+代码解析 【2023】
- 浅谈软件验收测试
- 五、构建deb软件安装包
- linux学习笔记(27)压缩软件归档软件;tar,gz,xz;Selinux
- 帆软报表软件学习计划
- 【python学习】——为exe软件创建快捷方式;实现软件自启动
- 3D设计软件中如何绘制装配布局?
- CAD看图软件中怎么将CAD转为PDF格式?CAD转PDF
- 机械制图哪个软件好用?浩辰CAD机械2021你值得拥有!
- CAD软件中如何进行碰撞检测?
- 聊天软件都去抄Snapchat Stories,为啥会这样
- 网络黑市PaySell与Jaff勒索软件共享同一台服务器
- Python量化交易学习笔记(十二)——程序化交易,自动登录软件