昨天写了碎碎念-以终为始(四),提到能够利用以终为始的方式来提炼出对本身最重要的事情。可是,通常状况下提炼出来的都是一些大的概念,好比我本身提炼出来的一点就是python
可以创造出一些有价值的产品,这个产品可以对其余人身边的帮助程序员
可是,具体怎么作呢?真正有意思的事情通常都没有人告诉咱们操做手册在哪里,由于操做手册只能咱们本身寻找。由于本身仍是以敲代码为生的,因此这个产品在我眼中,就是指互联网产品。因此,要作出一个互联网产品,我确定得夯实下本身的专业基础。面试
不管是我想要达到本身创造有价值的产品的目标仍是以前为了面试的准备,我都要去准备本身的专业知识,每一块专业知识,每一块里面每个点的专业知识。由于每个知识点都会涉及到底层的实现原理,以及为何要这样实现,实现的做用是什么。也就是说不只仅是what,还有how,why。为了成为一个合格的工程师也太难了些。下面一一整理下要成为一个合格的Java程序员要掌握的知识。redis
基础: JavaSE:Java基本的语法,简单Java程序的运行,了解Java里面基本的概念(classpath,JDK...) 数据结构和算法:常见的数据结构,数组,链表,栈,队列,树,图;还有常见的算法,二分查找,快速排序,树,图的遍历 Java并发:JMM内存模型,常见的并发的数据结构,CurrentHashMap,Atom,... 操做系统:Linux算法
框架: Spring全家桶:SpringBoot,Spring Framework,SpringMvc,Spring Securiy...spring
存储: 关系型数据库:Mysql 缓存:memcache,redis... 搜索引擎:elasticsearchsql
消息中间件: kafka,rocketmq数据库
分布式: spring cloud,dubbo,zookeeper数组
若是还想要知道大数据: hadoop,hive,spark缓存
若是还要知道机器学习: 语言:python 算法:经常使用的机器学习的算法
光是我本身可以想到的大类,就看的我头疼。因此我整理了一个思惟导图,以下。
不知道有没有人看着以为有点少,首先要明白一点是这些只是大类,每一个大类里面都有不少细节要学习,其实光是上面提到的数据结构和算法或者操做系统之类的都要学习个一年半载的才能达到一些功力把。更不要说要把这些内容串联起来,解决实际的问题。另外,我也还有不少提到的方面,好比软实力,如何进行团队协做啊之类的,因此真的是海量的知识。
曾经听过吴军老师提到过五级工程师的理论,也就是说把世界上全部的工程师包括各类大牛,什么Java之父啊,Python之父啊都包括进来,划分为五个等级。
第一个级别是在有其余更高级别的工程师的帮助下,可以使用专业知识开发项目中的某一个模块,就能成为第一级别的工程师,不少在大学好好学习的毕业生均可以认为是第一个级别的工程师。对应上面的知识是应该是JavaSE,框架浅浅的学一层应该就能够。
第二级别的工程师是可以独立开发一个项目,并且可以指导第一个级别的工程师。不少工做几年的工程师,开发过不少项目的,基本上都属于第二个级别的工程师。对应上面的知识应该是前5个知识点都可以覆盖到,前2个可以有必定的认识,深刻了解过,后面的三个存储、消息中间件、分布式可以对其中某几个进行过深刻的了解,基本上就能够认为是第2个级别的工程师了。
第三个级别的工程师是可以带领团队开发过一些优秀的产品,能够认为是第三级别的工程师。这个产品能够不是业界所熟悉的,可是也是可以影响一部分人的,估计不少公司的Leader均可以是这个级别。
第四个级别是可以带领团队开发过一款优秀的产品,并且这个产品可以影响到很大一部分人的,好比QQ,微信这种可以影响到几亿工做人的产品。
第五个级别必须是可以开创出划时代的产品的,不如Java之父,开发出了Java语言,致使Java影响了下一个十年的互联网行业。后面三个级别基本上都不是上面我提到的专业知识可以覆盖到的了。
之后这里天天都会写一篇文章,题材不限,内容不限,字数不限。尽可能把本身天天的思考都放入其中。
又是一天周一。
我是shane。今天是2019年7月29日。百天写做计划的第五天,5/100。