首先技术实力可以分为两层:
- 对技术知识和框架本身的掌握程度,比如你熟悉redis、memcached等的用法。
- 运用技术知识和框架解决实际问题的能力。
很多人觉得,我熟悉这种技术,了解API,会做一些小例子,就有技术实力了。但实际上,一个人的技术实力,练不到第二层,都是瞎扯淡。
所以我们接下来要讨论的是运用技术知识和框架解决实际问题的能力。
提升技术实力,关键的是实践、实践、实践。
通常有两种靠谱的方法:
- 找一个能够频繁给你高强度刺激的工作环境,你可以不断去实践,想停下来都不行
- 主动的、有意识的去做专项练习和综合练习
先说第一个,比如你在一个朝九晚五相对悠闲的公司,节奏缓慢,半年出一个版本,那就换到 996 的公司、一周一个版本的那种,Ok,自然你的技术实力就提高得快,HIGH得你不要不要的。
不过很多人是叶公好龙,不会为了提升技术实力而这么残害自己的。然而说实话,这几乎是唯一靠谱的方法。
再说第二种方法,有意练习。这是对一种方法的补充哦。注意,是补充。
因为大部分的人,没有主动、有意的练习的能力。
简单讲,就是不愿意为了获得某种实力而积极主动给自己加压,总想着哎呀是不是有什么方法、捷径,我照着一学,技术实力就上去了。
我可以坦白讲,没有的事!别做梦了。
所以,这第二种方法,只适用于那些愿意给自己压力、愿意逼迫自己前进的人。而且,它的目的,也是给自己创造实践的机会。
比如你学习了 Netty ,那就在一段时间内,高频度的去使用它,把你的项目的服务器,用它来重写。公司不允许的话,你就自己下班了搞一个自己的项目,反复用反复练啊。
比如你学习了正则表达式,那就把你代码中所有的字符串匹配,都改用正则。这样还不够,还要专门设计一些正则的练习题,用到它的各种匹配方式。甚至你还可以写一个正则表达式的验证工具,给别人去使用,帮助别人学习正则表达式。
这才是主动的、有意的练习。
高频度的外部刺激,加主动的、有意的练习,再加上定期的复盘,就能很快提升技术实力。
这是唯一可行的方法。
所以,你接下来可以:
- 梳理你熟悉的框架,把对知识点的掌握分为三个层次,知道有这回事、了解怎么用、能写DEMO。
- 创造环境,有意练习这三个层次的知识点,练到第四个层次——能在合适的场景下,不假思索第选择合适的知识点解决问题。
这样,你的技术实力就可以再上一个台阶。要想进一步发展,必须在数据结构、高并发、分布式技术等方面提高。最开始学习的时候是很艰难的,基础弱,加上工作中又没有这些技术的使用场景,所以只能在论坛、博客等看零碎的文章,进步比较慢。
要想系统的学习,图书和网络课程是比较好的选择。我买了诸如《java并发编程实践》、《大型分布式网站架构设计与时间》、《Spring Cloud与微服务构建》等书,来来回回看了好几遍。
然后在网上看了些视频,有免费的,也有收费的。花近半年时间系统性地学习了一套课程,学完之后对Java相关的技能有了更为体系化的了解。同时,对于非科班出身或基础知识不够扎实的工程师来说,也可以有效起到查漏补缺的作用。
始终保持你的学习欲。对于工程师来说,学习永无止境。但埋头苦学是不够的,你要注意自己的学习一定要有系统性,除了手头的项目和身边“大牛”的指导外,看书和网络课程是最有效的方法,用少量的金钱换取宝贵的时间,是非常值得的。
如果你依然觉得有些茫然,那么以下的福利很适合你,有自己个人学习规划的可以忽略,但是期待提升自己技术栈的也可以看看。
关于专业技能
我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价、拿到的薪水势必也越高。
- 基本语法
- 这包括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关键字使用规则
架构师是纵观全局的掌控者,这个层次很熟悉开发,有多年的开发工作经验,并且也有架构设计经验,熟悉架构理念,精通面向对象的设计思想,精通java语言,在高并发,高性能方面有相关开发经验。
上面的这些面试题都整理成了PDF文档,希望能帮助到你面试前的复习并找到一个好的工作,相对来说也节省了你在网上搜索资料的时间来学习!!!
附欢迎关注我的公种号:it资源之家 ,扫描下面二维码即可领取更多一线大厂Java面试题资料!
最后
欢迎大家评论区一起交流,相互提升;整理资料不易,如果喜欢文章记得点个赞哈,感谢大家支持!!!
来源:oschina
链接:https://my.oschina.net/u/4506875/blog/4297688