JAVA面试总结3-5年(附)

       在几天前分享的文章中,我总结了最近求职的面试情况以及3-5年经验可能会问到的技术点,收到同学和朋友们的反馈还挺多的。今天在这里我再次总结下你们的反馈,给出一些我认为合理的建议,但建议归建议,所有一切还得靠自己的坚持,希望你们能根据自己的情况进行适当调整,走出属于你们的那一条路。本文作为反馈,所以话语比较糙,但不影响阅读。

引言

       如果某个系统上千万乃至上亿用户都跑过你写的代码,你激动不激动,自不自豪?要开车了,同学请坐稳。

重点

       对于某个拟定的目标,我依然要强调的是“坚持”和“落实”,因为无论是生活还是工作,这些都是我们必须要做的,像减肥、健身或是工作中某个功能实现、bug分析,都需要有耐心的坚持的去落到实处,不要做半半,道理大家都懂,至于做成什么样就由大家自己发挥了,下面直接说我的几点建议吧。

  1. 对于有理想有抱负的同学,可以拟好自己的小目标,对于咸鱼一样的同学,希望对待事情可以再积极一点,耐心一点,每次都有一点点小的进步。
  2. 现在无聊就会看看手机,建议大家在手机里面存3本左右需要学习的技术点电子书(太多了鬼都知道你不会看),看完马上删除再加入新的进来,这样会形成一种节奏感推动着你学习,书一定要多找几本相同的然后留下一本合适的,否则不合适会淹没自己的激情。
  3. 养成习惯每周抽些许时间看看别人的代码,oschina(码云)或者github都有别人写得好的代码,只有看了别人的才会知道自己的不足,不要瞎看,看自己能懂的。
  4. 多关注微信技术公众号,这里我给大家推荐几个我关注的(数据库开发、算法爱好者、前端大全、伯乐在线、ImportNew、阿里技术、Java架构师之路),给自己充电增长知识面,有兴趣就进去研究下,能入选的应该都是好文章,虽然你看不懂
  5. 使用托管平台管理自己的代码,尤其一些工具类以及自己实现过的功能或框架,我推荐使用“码云”,支持svn和git,不断积累自己的代码库,提高工作中开发效率,请勿重复造轮子,多节省点时间学习新知识。
  6. 建立自己的博客,越早越好,相信大家在开发中也有碰到几天都没解决的东西,记录下来,一开始你会发现写不出东西,慢慢写多了你就会停不下笔,这也是一个良好的循环,放心 你离大神不远了

推荐书籍

下面我推荐几本关于技术的书,大家自己选择,都是好书,不好的我不推荐,这些可以压仓库,坐车,睡觉前有时间就看看(走路就别看了),不要急于看完所有,有章节的去看。

标题 推荐指数 说明
淘宝技术这10年 5颗星 记录了淘宝架构的演变,看得有点像神话,不过确实是真的,放在第一本说明还是值得一看的:密码sua8
Java核心技术精讲 4颗星 李兴华老师所著,里面东西真的很精华,手把手告诉你底层是如何实现,有基础的同学前面可以快速略过:密码ixor
大话设计模式 5颗星 设计模式里面我自认为很不错的一本书,通俗易懂,好理解:密码0kem

还有很多书需要自己去发现,我不敢去推荐,因为大家功底不一样,所以不适合在这里推荐,反正大家先掌握这些吧,资料我已经给大家准备好了,大家链接进去即可获取

年限对应掌握技术程度

因为本人在工作中也曾面试过不少人,所以对一些技术的掌握程度简单描述下,可能有些点没描述到位,请勿见怪。其实在招聘岗位描述中就有体现,大家看多了就知道要掌握哪些,能做到这些说明你很好,请继续,没有做到的也慢慢去补上不会的,如果在开发中你发现,没有什么是实现不了的,恭喜你,你已经超神了。

1-2年

熟练掌握JAVA逻辑、熟练掌握面向对象思想、了解简单的数据结构使用,对springmvc,struts,mybatis,hibernate都了解基本实现,能够完成ssm,ssh完整框架的搭建,3种数据库的使用,以及SQL编写,索引,了解SQL执行过程及原理,jQuery基本表单操作,Linux简单命令、掌握几种常见的设计模式,熟悉使用前端框架

3-5年

在1-2年的基础上深入,掌握几种常用数据结构底层的思想,开始深入研究设计模式,研究上述框架的核心机制尤其是springmvc,学习并使用类似于spring security或oauth2安全框架用户及鉴权的原理,参与过支付接口的开发,玩转linux,在linux服务器上能够进行任意服务环境搭建和部署,能够写出解决复杂需求而又高效的SQL查询语句(可查阅SQL的解析过程),参与过分布式开发和部署,对微服务架构有深刻的认识,开始对JVM的体系进行研究,开始学习算法,研究如NodeJs之类的框架。在5年经验左右的同学需要对下面的“技术点汇总清单”都要求熟练掌握。

技术点汇总清单

下面的技术点看自己能力去了解,因为东西难度都比较大,实打实的大项目开发要用到的,不会的也不要沮丧,仅仅只是技术点,了解得越多越好

  • 管理工具
    Git:git体系结构、git主要命令、git服务搭建
    Maven:私服、搭建maven项目(可参照我的其他文章)
    持续集成:jenkins/hudson,简单了解即可
    IDEA:常用配置、远程调试、快捷键大全

  • 框架
    spring:spring一套,包括MVC,AOP,IOC及他们的源码,如何进行Bean的注入和生命周期管理

  • 性能
    tomcat线程模型、nginx请求过程、jvm虚拟机

  • 并发编程
    通读并发编程思想

  • 微服务
    dubbo/spring Boot/spring Cloud原理及快速搭建

  • 分布式
    集群、分库分表、读写分离、MQ

  • 缓存服务器
    redis和memcached

  • 数据库
    掌握3中常用关系型数据库、熟悉使用非关系型数据库

  • 模版渲染技术

  • 了解学习其他语言
    推荐学习python,有空可以看看廖雪峰写的文章

希望大家不要一直停留在传统行业进行开发,多去互联网公司,互联网公司用到的技术和架构都是比较新颖的,对个人的成长很有帮助,建议大家能蹭一点金融支付经验就蹭一点。

正如文章开头所提到的问题,莫说是千万,先来百万用户也行,而我也在努力去实现的道路上,加油!

你可能感兴趣的:(JAVA面试总结3-5年(附))