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


    从事软件开发行业,我们免不了要使用软件:操作系统、虚拟机、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内核,并发布官宣

    第六层:

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

    第七层:

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

     

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

  • 相关阅读:
    将oh-my-zsh编程真正的my zsh
    Linux Shell 程序调试
    (64位)本体学习程序(ontoEnrich)系统配置说明文档
    Shell编程——vim常用命令
    Morris Traversal 方法遍历二叉树(非递归、不用栈,O(1)空间)
    206. Reverse Linked List
    欧几里德算法求解最大公约数
    25. Reverse Nodes in k-Group
    86. Partition List
    24. Swap Nodes in Pairs
  • 原文地址:https://www.cnblogs.com/flying607/p/10459984.html
Copyright © 2020-2023  润新知