一个工作了两三年程序员的学习计划
Posted huigelaile
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个工作了两三年程序员的学习计划相关的知识,希望对你有一定的参考价值。
本人已经工作两年多了,尴尬的是待过的两家公司都是外包,大部分外包公司技术性都很一般,这也是很多人看不起外包公司的一点。可是已经在外包
公司了怎么办,我也很绝望啊。。。。。而且我做过的项目都是很老的项目,后期做些需求。现在带的甲方公司项目很多,我接触的项目框架就是SSH,中
间件是Redis、ActiveMQ,当然会包含企业内部开发的一些构件等。这里不是说甲方公司技术性不高,只是我接触到的项目技术性不高。
进入公司的时候,自己基本知道情况了,几乎不加班,这点事挺好的(因为我们组就三个人,负责项目需求少)。自己也不想成为一个很咸的咸鱼,也
期望着有天能够进入互联网公司。但是下班回来学习的次数很少,即使学习也静不下心。人总是这样,一边玩着手机,一边又很内疚自己浪费时间,虚度光阴。
后来给自己列了学习计划,也是从网上搜索一个工作两三年的程序员需要掌握哪些知识才是合格的。
1、Java基础知识
#反射、IO、接口/抽象类、内部类、异常、Enum、序列化、static、final、Iterator,Iterable和Comparable,Comparator等
基础知识肯定不是只有这点内容的,这部分很多人忽略的,包括我自己,总感觉这么简单的内容,自己已经会了,但是实际上你还差得远,在面试之前
刷刷题,你就会了?这部分内容深入学习之后,总能发现以前不知道的知识。
我们在面试要求上总能看到基础扎实,说明基础真的很重要,基础都不行,扯什么高并发、分布式。
PS:这里推荐《Java编程思想》或者博客
2、jvm相关内容
#GC、运行时数据区、类加载机制、双亲委派模型、内存溢出/泄露、Java内存模型、字节码、jdk工具、GC调优/jvm调优、Tomcat相关等
jvm的内容是你成为一个高级工程师必须具备的知识,高工不是工作年限到了就是了,你的知识储备能够达到要求吗?
这部分内容自己也学了很多了,但是真正在工作中应用很少,特别是jvm调优一部分,只是在自己的阿里云上面进行调试,缺少真正的经验。jvm调优总是
出现在招聘要求上,所以是需要你去注意的内容。
3、jdk源码
#集合源码 1.List:ArrayList,LinkedList 2.set:HashSet,LinkedHashSet 3.map:hashmap,hashtable,concurrentHashMap源码以及区别 3.对Object,String,synchronized等类的源码了解。 #并发包源码 1、线程池 2、Automic源码 3、ReentrantLock等相关Lock源码 4、CopyOnWrite* ....
源码部分本人只是学习了集合部分,并发相关源码只是对Automic基本了解了一下,但是后续也是会看的。
这里说下看源码的目的:无论是jdk源码,还是框架源码,首先能够让你对这个东西更深入的了解,第二能够学习优秀代码,学习到内部使用的设计模式
等。如果只是为了面试,真的没必要花费很多时间在上面。
很多人学些Spring源码,本人是没看的,因为很多人都说需要花好几个月的时间才能完全理解,我想自己肯定坚持不下来的。如果你能坚持下来,收获
肯定也很大。之前有去学习Netty源码,然后导致我后面一个月几乎都没学习,真的很枯燥,直接放弃学习,放飞自我了。学些任何框架源码,一定是你对
这个框架有深入了解过后,否则你都不知道怎么用,看源码更是懵逼。
4、多线程、并发
多线程、JMM、synchronized、Lock相关、volatile、ThreadLocal、线程池、线程安全、Atomic(CAS)、生产着消费者、线程安全集合类、CountDownLatch、Semaphore、CyclicBarrier等
这部分内容一般公司开发中使用很少,个人也学习了,但是不在工作中应用,学完过后就忘了。但是没办法,面试要求啊,这些也属于基础知识的。工作
中也就使用线程池、volatile、ThreadLocal吧。
5、设计模式
1
以上是关于一个工作了两三年程序员的学习计划的主要内容,如果未能解决你的问题,请参考以下文章