从源码阅读结束后的延伸说起
- 1 没有细化到每一行解读源码的原因
- 2 后续会分析jvm源码甚至是linux内核源码
- 3 延伸部分
-
- 3.1 从0到1和从1到100
- 3.2 工作的主动权
- 4 总有一些事会被说起
??从hadoop,到hbase,再到kafka,接着是spark和flink,对这些常用的大数据软件都做了涉及核心部分的源码解析,但是都没有精确到每一行的代码分析,这里会先给出这么做的原因.
??之后会说明后续要做的事情.近一段时间以来也一直在思考这个问题,这真的比较纠结,即使在工作中也少有这么纠结过.这里还是会说明一下后续要做的事情.
??最后会延伸解释一下为什么后续的事要这么做.
1 没有细化到每一行解读源码的原因
??首先是对阅读人员有一个事前的要求,参看《java源码阅读说明》一文.这里只是针对java中级及以上的读者,所以粒度也没有到每一行代码这么细的级别,能看个大概基本上就可以了.
??其次,之所以使用“能看个大概”这种描述,也是基于这些大数据软件都是属于应用层面,具体来说都是基于jvm虚拟机.所以对应用层面的东西,没有要求很细的粒度,只是到方法或是代码块这个层面为止.
??以上就是主要的原因,站在具有一定开发经验的读者角度来看,这么做估计也是一个合适的选择.
2 后续会分析jvm源码甚至是linux内核源码
??随后计划做两件事:
??一 jvm源码分析
??二 linux内核源码分析
??很明显,这两件事都不好做,但是这也是最有价值的.
??首先是jvm源码的分析.对于编写和维护大数据的专业人员来说,这些关于大数据的常用软件的源码当然是越熟悉越好,然而我这里想说的重点并不是如何或者是怎样提高对这些软件的使用和维护能力,而是更深层次的一些问题.这些大数据软件的源码无不是使用jvm语言来编写的,也是运行在jvm中.如果只是在java编程语言层面对其掌握和使用,我认为这是远远不够的.
??其次,linux内核源码可以说是根本中的根本,对它的分析需要有一个完整的规划,这个后续会做,目前的重点是jvm的分析.
3 延伸部分
??最直接的说,如果编程能够为自己带来每月3万的收入,那么就有足够的理由把编程所使用的核心工具系统彻底搞明白,因为这可能是以后追求更高薪水的最简单的方法.
3.1 从0到1和从1到100
??常用的大数据软件整体上都是属于应用范畴,其根源都是使用cpp编写的jvm虚拟机,如果不深入到虚拟机这一层面,一些本源上的东西还是模糊不清.
??从0到1很难,从1到100也不容易,但是和前者相比不是一个层面的东西.目前所有基于jvm的软件都属于从2到100的范畴,包括像hadoop,flink等.jvm就相当于这里的1,那么0是什么从软件层面来看,0就相当于操作系统.
??显然,对于大数据开发来说,编程所使用的核心工具系统就是jvm,把这个搞清楚肯定是需要的,但意义远不止于此.
3.2 工作的主动权
??如果失去了掌控工作的主动权,那么就要退出了,否则坚守就成为了一种折磨,更准确地说,是一种惩罚.
??到今年,本人从事java开发也超过了10年,其中还有6年的大数据开发,期间接触和使用过很多很多的所谓框架和第三方库.之所以谈这些,目的就是想进一步解释,只要在这一行业内工作的时间越长,那些源头上的东西一天不搞清楚,就会越发的感觉朦胧不清,心里上越发的觉着不踏实,出现问题也不知在根本上是什么问题,而这种感觉会随着年龄的增加越发强烈.这种感觉就像是自己由于某种原因而无法自由的使用双手,做起事来总没有得心应手,时刻担心这里或那里随时都要出问题.
??对于工作中的人来说,这种感觉就像自己无法真正的理解自己常年使用的工具,做起事来总有一种不能掌控,不安全不保险的感觉.如果出了问题,也是心慌无底,看不透问题的本源,在解决时也仅是依靠表面的依据或经验来做不同的尝试.
??如果被自己的工作所左右,那么就失去了掌控工作的主动权.如果失去了掌控工作的主动权,基本上就要考虑换行业了.隔行如隔山.
4 总有一些事会被说起
??对于IT行业,很多人会有很多不同的看法,其中被多数人认同的无疑是该行业是吃青春饭的行业这种观点.
??在此处开这个标题,本人也是不打算对此看法做进一步的辨析.但是抛开吃青春饭这一看法,做程序开发这一行有很多优势,比如
??1 可以使用这个星球上代表着极高科技水平的产品 – – 芯片
??2 现代AI就是从IT行业诞生的,使用的还是python语言进行的开发
??3 络世界也是起源于IT的范畴,如果能利用好 络资源,那么带来的收益也是很好的
??随着实践和技术的积累,我相信不同的人在看到上述3点IT行业的优势时,理解也是不一样的.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!