下面我想跟大家分享一下。我认为,随着你工作年限的增长、对生活对生命认识的深入,应当不断思考三个问题:
1、我到底适不适合当一名程序员?
2、我到底应不应该一辈子以程序员为职业?
3、我对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?
最终,明确自己的职业规划,对自己的规划负责并为之努力。
关于专业技能
我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价、拿到的薪水势必也越高。
- 基本语法
- 这包括static、final、transient等关键字的作用,foreach循环的原理等等
- 集合
- 基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。
- 设计模式
- 知道常用设计模式的优缺点。
- 能画出常用设计模式的UML图。
- 多线程
- Thread和Runnable的区别和联 系、多次start一个线程会怎么样、线程有哪些状态。
- JDK源码
- List、Map、Set实现类的源代码
- ReentrantLock、AQS的源代码
- AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的
- 线程池的实现原理
- Object类中的方法以及每个方法的作用
- 框架
- 熟练使用三大框架
- 数据库
- SQL基础和SQL优化的内容
- JAVA虚拟机
- Java虚拟机的内存布局
- GC算法及几种垃圾收集器
- 类加载机制,也就是双亲委派模型
- Java内存模型
- hAppens-before规则
- volatile关键字使用规则