写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
源码不是万能的,但是没有源码是万万不能的。在小公司,有这个技能可以说是可以吊打大部分初中级程序员,一张嘴,这个底层源码是怎么怎么写的。然后你会看到周围投来羡慕的眼光。
在源码部分你至少要掌握以下部分。
- spring ioc与aop的源码。
- spring bean的加载过程源码。
- spring boot启动流程源码。
- spring boot约定大于配置的实现源码。
- mybatis执行流程源码。
当看到你简历上写阅读过源码,面试官是会嘿嘿一笑,对老板说这个小伙子还不错,仅次于我。切记,在面试过程中,不建议去背每个类名,给人一种我背我也行的感觉。总结性的描述一下原理即可。
准备一套微服务体系
在小厂,微服务可能在并发量或者业务并不是特别契合,但是可能甲方提出:我们就要上云,或者领导因为融资需要出门跟别人吹牛,所以大多数公司都需要此技能。
这里你需要掌握一套微服务体系,相比springcloud Netflix的闭源,建议使用如今火热的springcloud alibaba。
组件建议选择:
- nacos:注册和配置中心。
- openfeign:服务间调用组件。
- sentinel:熔断,降级,限流,完美支持openfeign。
- getway:网关,zuul已经是不是这个时代的选择了。
(虽然官方推荐dubbo,但是在小公司并发量并不大而且duboo相对复杂一些,所以使用openfeign也是一个不错的选择。)
最基础的要求就是自己能够搭建一套,了解其中基础概念,成功跑通。并背一些基础的面试题。
最好了解一下服务的注册于暴露的原理,这个面试遇到的概率很大。
下面这个划重点!!
在面试过程中,不要说自己没有实践过,而是自己做的demo。你可以说参与了公司部门微服务的搭建,这样即使不会了你也可以说这部分是他人搭建的,懂得吧。具体怎么组织语言还是看你自己。(以下所有技术栈都适用此条)
权限框架
在shiro和spring security中选择一项,建议使用spring security。
至少了解如何使用,核心配置类,和需要的表结构。
如果有经历可适当的了解oauth2。人才稀缺。
从0开发的话,必备技能。
sql优化
sql优化在面试中肯定跑不了,根据楼主多次面试,回答上explain具体分析流程的很少很少,掌握explain语法。会帮助你脱颖而出。
装x神器,干就完了
中间件
由于内卷的原因,现在不会几样中间件都不好意思出门。
redis与rabbitmq是必备技能,最少你需要掌握以下内容:
- 与spring boot的整合。redis的增删改查,mq的发送与监控消息至少都应该demo一下。别问你用什么客户端都答不上。
- mq消息准确发送的配置需要掌握,如:磁盘固化,ack,nack等。
- redis的基本使用类型与使用场景,以及数据固化相关。
- 其他基础面试题。
以下中间件可以初步了解,可以提升面试几率。
如elasticsearch,prometheus,apollo
对于中间件使用场景和并发量不高为什么使用,一定要给出合理的答案,这个是楼主经常问的。
规范
建议建立一套自己的开发规范,包括:
- 代码编写规范
- 接口编写规范
- 建表规范
- 接口文档编写规范
- 注释规范
可以参考阿里规范自行编写。目的如下: - 面试彰显自己的亮点和与众不同。
- 为日后管理团队打下基础。
- 建议日常应用,提高自己代码编写的水平。
虽然我们是小企业,也要专业。
设计模式
这里建议将工厂模式,单例模式,策略模式,代理模式,适配器模式,状态模式吃透,面试重灾区。并在工作中合理应用几次,作为面试答案。
linux操作
因为小企业人员的原因,可能运维开发都是一个人,所以适当的了解linux可以增加竞争性。
这里建议购买或借或使用公司服务器,将上文的项目与中间件在服务器上搭建一遍,并尽可能记住命令即可。
docker与非docker的方式选择一种即可。
idea插件(可选)
适当的使用idea插件,是日常开发中,凸显专业的方面。这里推荐几个插件。
- easycode-制定后端的代码生成器。
- eclipse code format -自定义代码规范。
- p3c-阿里代码规范检测
知识输出(可选)
可以准备一个长时间维护的博客,可以让面试官更加了解你。
面试可以说,掘金优质博主,有原创文章xx篇,xx阅读量。咱上来就给面试官一波暴击。
服务性软件(可选)
有一些软件在日常开发中非常好用,也可能是某项工作中必须的,适当的描述可以坐实你的架构经验。如:
- 选择一款公司文档工具。楼主使用的是dokuwiki。
- 可以了解私服和镜像工具。楼主使用的是Nexus和harbor。
- 可以选择一个测试平台。请自行百度开源开源。
- 任务分配平台。请自行百度开源开源。
- 一个符合自我习惯的接口平台,yapi是比较流程的,可适当选择。
- processon-流程图在线制作网站。
其他开源项目(可选)
在楼主日常工作中,也遇到了很多没有接触的技术,楼主往往先看一遍官网文档,在通过开源项目学习,会使你事半功倍。以下项目可以适当了解。也可以在面试时挑选适当的引出,如果当前企业正有此方面需求,可能会增大。
kkeking/kkFileView
地址:https://gitee.com/kekingcn/file-online-preview?_from=gitee_search
一款在线阅读的开源项目,简单好用,可单独部署,支持的文件种类多样,且显示的文件格式较为美观,当项目周期短,人员紧张时且想落地改需求时,可以直接接入。
mingyang66/spring-parent
地址:https://github.com/mingyang66/spring-parent
一套spring security+oauth2为安全框架的架构,如果你想落地应用级的spring security+oauth2,此架构可以说是学习的好资料,同时提供 /redis、rabbitmq中间件的封装,值得学习和掌握。
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!