1 自我介绍
还有一个月就毕业一年了,从2020年7月开始暑期实习,辗转换了好几份工作,到今天2022年5月24日为止,满打满算有工作1年半了。科班出身,基础不扎实。
2 为什么选择Java
科班出身,在大学里面基本都会知道前端、后端这两个出路。对前端没兴趣,又从大一开始没打算考研,就决定选择走后端的路线了。身边的人(师兄师姐们)都说Java好找工作,并且自己对Java有那么一点兴趣,也就选了Java了。其实现在看来,Java真的太卷了,门槛低,看看视频随便都能转行来Java。再者,大厂更需要的是那种熟悉操作系统、计算机网络、数据结构、算法的人才。这些才是核心竞争力。
3 那些年写过的项目
想起来真觉得大二时候的我很憨,竟然去研究什么servlet、jsp、jdbc,还花一大半时间进去。用jsp写过基本的前后端耦合小demo,都是些什么管理系统。
大三从一个师姐那里接触到谷粒学院,了解到spring、mybatis、mysql基础、mysql高级等,仿佛接触到了一个新世界。然后去学,用thymeleaf写了一个前后端耦合的图书商城。再后来接触到一个叫layui的前端框架,又弄了一个图书商城。
4 从入门到进阶
经过职场的洗礼,深知掌握技术底层原理才是核心竞争力,包括但不限于
操作系统
、计算机网络
、数据结构
、算法
、redis
、MVCC
、索引优化
、并发知识
、MQ
、Nacos
、spring cloud alibaba
等等。
4.1 技术原理层面
- 研究spring bean生命周期
- MySQL索引底层原理
- 研究Nacos自动服务注册底层原理
- 研究InnoDB架构
- 研究InnoDB锁
- 研究MVCC
- 研究ThreadLocal
- volatile关键字底层原理
- 研究Java并发编程的知识
- 对多线程的理解
4.2 业务层面
- 设计模式的实践
- MySQL json类型字段的应用场景
- 营销活动的业务建模以及设计模式的优化
- 从营销活动的业务场景了解领域驱动设计
- 如何正确使用事务与缓存
- 更新20w个商品缓存
- Java 8 流的使用
- 阿里线上诊断工具Arthas
- AOP切面编程(其实笔者不太喜欢这个,有时候都不知道别人写的处理逻辑在哪里,一直定位不出bug)
5 Java经久不衰的关键
这有必要引入一个故事。一家创业公司使用php搭建了一个电商购物网站,火爆占领市场后,业务范围不断扩大,使用了oracle付费数据库保证数据持久化服务可靠。又因市场份额逐渐扩大、业务量继续增大,领导聘用某国外参与开源项目的最高技术人,看好当时并不普及的
spring
框架,果断放弃当时普及的struct
框架,从php转型到Java,并采用开源数据库——MySQL。一举拿下电商领域的市场份额,成为国内电商领域的巨头,没有之一。这就是阿里的淘宝的故事。
在今天,阿里也一直推进Java中间件的发展,比如rocketmq、nacos、spring cloud alibaba。在云计算方面更是独树一帜。
Java经久不衰的关键,笔者认为是其能跨平台运行的特点。而且开源社区活跃,有很多成熟的开源解决方案。
6 Java会被取代吗?
这是一个一直备受争议的话题。笔者认为,在阿里仍采用Java作为主流语言的时代,至少在十年内不会被取代。
7 我对Java未来的期许
笔者在大学期间有那么一段时间学习前端的东西,但最终没能独立完成一个前端项目,笔者认为花时间掌握后端技术原理更具有核心竞争力。至今笔者都还看不懂前端代码。但基本的交互能了解个大概。
Java一直在服务器方面有优势。或许是否能弄一个在前端领域有优势的新版本呢?这样后端开发者就再也不用额外学习别的前端语言了。一套Java就能写个前后端分离的小项目,自己放到阿里云上面跑起来。最后放一张超级全面的技术栈图片作为结尾。