我的IT成长历程
Github and CSDN
Github地址:https://github.com/Lyx0912 CSDN地址:https://blog.csdn.net/weixin_51110958
自我介绍
我是大三软件工程的黎勇炫,我的IT生涯开始于2020年初,那时候就是单纯的觉得打游戏打累了没意思开始自学Java了。没想到从那开始就把编程发展成兴趣。也挺感激自己那时候的决定,那时候的我是每天都很憧憬,带着目标的找视频学习。每天学习5、6个小时都乐此不疲,丝毫感受不到厌倦。因为铺垫了一年的基础,在大二时我获得了第十届中国软件杯国二、优秀学生、国家励志奖学金等奖项。也在大三时顺利进入国企湘潭钢铁集团当一个全栈开发工程师,到现在工作了将近一年。我个人的迷茫期也是从这段时期开始的,我以为我不断的拓展技术栈到后期会无忧无虑随便玩,没有技术上的困扰,但面对广泛的Java体系实我更多的是不知所措和迷茫。
在国企工作给我的第一感觉就是闲。比起写代码那时候我更讨厌开会甚至是考虑晚上吃什么。很多人可能会觉得这种生活很舒适,无忧无虑。我反而感觉自己在一步步堕落,在这种大环境下我渐渐的没有了学习的意志。从刚开始的下班回家自学到下班回家打游戏刷剧并没过多久。到过年放假我开始反思这段时间的停滞不前和后果。所以打算专升本,如果没考上就辞职去沿海一线城市找工作,比起工作强度,我更在乎自己工作能不能学到东西,能不能成长。所幸我考上了中南林业科技大学涉外学院,于是为了学费又在湘钢工作到了8月份。
现状、经验和计划
(1)现状
在大专时期也还算努力,一直在拓展自己的技术广度。基本上主流的技术栈自己都已经学过。也自己尝试动手写过消息中间件、RPC框架、代码生成器,RBAC权限模型。
在工作一段时间之后我开始追求技术深度,在这期间我阅读了周志明老师的《深入理解Java虚拟机》《Spring源码深度解析第二版》《Java并发编程的艺术》等书籍,尝试探究一些底层原理。但当我真的开始接触JVM、JUC源码的时候,站在深不见底的JVM体系里面第一次感觉到自己是如此的渺小。一大堆JVM参数让我无从下手,也难以找到合适的项目去实践JVM调优。学习到一半,回头一看,前阵子学的都已经忘记了。因为这些底层都是偏理论的,光靠死记硬背很难吃的透。
我一直都觉得会多少技术并不重要,市场上并不缺乏这些人才。例如SpringBoot这种技术可能一个星期不到就能学完了,想找到好的工作,编程思想、编程思维才是最重要的。阅读源码的过程其实也是在学习作者的思维,比如Spring框架为什么拓展性、可读性为什么这么高,代码复习性为什么这么高,我们更应该去揣测作者的目的并尝试。所以我的现状更多的是迷茫和焦虑。但这又是我的动力,正是这面对浩瀚的Java知识体系带来的焦虑促使着我加油学习。
(2)经验和计划
我的目标就是进大厂或中厂,我知道这很难,但人或者如果没有目标,和咸鱼有什么区别。大厂更多考究的是基础和思维。我说的基础指的是操作系统、数据结构、算法、数据库底层这些。距离2023年秋招还有一年,我打算在这一年再重新二刷《深入理解Java虚拟机》,我最近也在看《SpringCloud Alibaba微服务原理与实战》,打算看完后去学习MySql底层。当然技不压身,这一年时间还是可以继续拓展一下技术广度的,可以去学习jenkins、docker进阶、kubernetes,毕竟云原生最近势头也很猛。
除了这些,我还有很多的不足:
- Netty框架只会基本运用,不知道原理
- 设计模式只会常用的几种且理解不够深
- 数据库只会CRUD,不会调优
- 数据结构和算法也是半桶水
在知乎看到的十万个问题,同时我也想问自己:
- 关系型和非关系型数据库使用场景?
- 数据库的三大范式真的要循规蹈矩吗?
- 手写数据库连接池怎么写?
- Java常用工具类积累了多少、理解了多少?
- 给你一个常见的Java类你能一口气说出它是线程安全的还是线程不安全的吗?
- jvm调过参吗?
- gc原理了解多少?
- rbac权限模型实现过吗?
- Java io nio玩得六不六?
- Java各种并发工具类玩得六不六?
- jsp、servlet原理说得明白吗?
- 九大内置对象、四大作用域、三大组件都有哪些适用场景?
- Tomcat运行机理?
- Apache顶级项目了解多少个?
- orm的原理?
- 高并发量怎么处理?怎么写出高并发的程序(几十几百万的并发量)
- 如何提高系统的鲁棒性?
- 分布式系统怎么对session做缓存?
- 全文搜索引擎Lucene、solr、elasticsearch了解多少?
- Java常见框架了解多少?各自的应用场景又是怎样的?源码仔细研读过吗?c3po,DBCP,Druid,Struts1,Struts2,spring,springMVC,hibernate,mybatis。springboot,springcloud,微服务了解多少??
- 消息队列rabitmq、kafka了解多少?
- hadoop、spark、spark streaming、storm、MapReduce、ZooKeeper、Hbase、Hive了解多少?
- Linux玩得六不六?
- 如何做大数据实时流处理?
- 集群和分布式搞过没?
- Java经典书籍读了多少本?
距离我的中大厂距离还很遥远,但努力就一定会有回报。永远不要停止学习的脚步。
问题和反馈
问题
1.感觉书上对UML的介绍都太抽象了,我可不可以理解为UML就是一种规范。
2.在公司工作了一段时间,感觉公司没用过UML,对于中小型项目来说UML建模是不是没有必要,感觉快速开发模式更适合中小型项目。
3.第三章3.2.2 修饰的描述:“修饰是对规格说明的文字的或图形的表示”这句话我不太理解,修饰为什么是文字或图像的表示,我上网查阅资料显示不出对修饰的讲解。
4.第三章3.1UML构造块描述"构造块指的是UML的基本建模元素",那么一个类图或状态图属不属于构造块。
5.第三章3.2.4UML拓展机制-构造型中提到"构造型是将一个已有的元素模型进行修改或精细化,创造出一种新的模型元素",意思是建模者可以自行定义修改元素吗?
反馈
上了一段时间的UML课,感觉特别抽象,虽然有举例子帮助学生理解。但毕竟是偏理论,需要时间去消化。希望老师可以在讲完某一模块或知识点后给我们留点时间去自己思考、琢磨。
标签:Java,成长,学习,源码,JVM,UML,历程,多少 From: https://www.cnblogs.com/lyx0912/p/16711613.html