犹豫了很久,还是打算简述一下自己学java 的历程,花了些时间,但结果不赖
文章目录
- 从0的开始
- 开始加速
- 过度项目学习
- 懵懂的进入项目
- 进入综合项目学习
- 第二次学习开始
从0的开始
没有计算机基础,英语也非常糟糕。
起初也时常在想,这样的现状真的能学到最后吗?
仔细想想,现在的生活并不如我所愿,照顾不好自己,也难以照顾家人。
浑浑噩噩继续下去,我一定会后悔无能为力的自己。
去努力、去尝试、即使事与愿违也不会后悔
辞掉了销售了工作,找了个超市上班 上班时间 8:00-5:00
开始去问做java的人,该怎么开始学,该学些什么。
第一阶段学习路线
开始计划学习时间,每天回家竟可能的耐下心来去看视频。
开始加速
不知不觉中坚持了一个月,看完了java基础,出去和做开发的朋友吃饭,中间也一直在问各种有关开发的问题。
感觉第二阶段需要重点去学习SQL
了解前端 js、vue
在此期间,感觉自己应该跟块的去学习,需要花更多的时间去准备才行。
这一阶段的sql 学习 自我评价比较糟糕
最开始学习,只看了bilbil的视频,对数据库的整体理解,算的上云里雾里,给我造成了走弯路的困扰、这里推荐各位,不要想着3-4天速成。要精心下来好好理解 select 这类语法,和运行逻辑
后面我自己 买了《SQL入门金典》 读完之后感觉也比较一般,主要提升我理解的是 牛客网 、力扣 、mysql45讲
- 力扣: 并不推荐刷sql 感觉阅读感不太好
- 牛客网: 之前是免费的,现在立马的部分sql题开始收费了。我把所有sql都写了一遍 (这里看到 窗口函数的题 mysql 8.0的 功能,建议不用深入了解)
- mysql45讲: 将的是底层方面的知识,对写sql没有比较直接的帮助,但内容非常有价值,建议作为提升资料去学习
现在工作中,我也能感觉的出来 很多同时其实对sql 的优化,和一些底层的细节并不够理解。
mysql45讲
非常推荐作为提升的内容
web学习
这里当时看的是这个 内容 web 其实知道今天,我已经没怎么自己写过前端代码,只是理解和能看。也有几位好友都推荐我去补补前端,说前后端都能做,更好找工作。
在这一阶段中、手机静音停止了所有的社交,每天 7:00上班-4:00下班
。
这个阶段中不像是最开始,每天看一会视频就会想去打打游戏,看会抖。自己慢慢的习惯了这种学习方式、经常 除了吃饭,就是坐在电脑前,到十点钟。
过度项目学习
这一阶段,我的影响已经不多了,主要需要学习的内容
git : 看了B站的视频后,我还是推荐直接看 这个位子的资料
推荐软件 sourcetree:我个人基本不用idea里面集成 git 工具,我觉得这个工具图形化更加方面,同时方便管理多个项目
postman
一个老牌的接口调试工具,虽然我也喜欢用,但是这软件可以离线使用,内网开发的公司还是得用这个我跟推荐使用apifox
maven 包管理工具,并不复杂,但需要耐心
网上学习资料中,尚硅谷、黑马、动力节点、等教材这阶段都不会去教
Docker
和Linux
的知识,我个人推荐,给自己足够的时间和耐心,学这两个技术,docker 可以更佳便捷的安装各种 开发软件和环境。不可否认是现在大公司-云原生中必备技能
而 linux系统才是 程序主要运行的系统。我自己是用mac在学习,各种命令都大差不差。
懵懂的进入项目
来到这个阶段我用了3-4个月的时间
后面还有无数的坑在等着我、自己摸索真的是非常累的一个过程,但是收获颇丰,知道今天,我已经就的这段学习时光,让我真真学会了面向互联网学习。
高质量的学习内容 永远在
官网
、个人博客
、github
开始学习ssm、依旧是b站视频。如果在这个阶段你良好了掌握了maven
和git
就不会被一些版本冲突、环境问题、等非代码因素导致的问题困扰。我之前在这些不理解的问题上花费了大量时间。
如果此阶段你是通过慕课网
、腾讯课堂
等一些付费专栏去学习,一般情况下会得到 一定的帮助。但是,并不是所有的付费内容都有帮助。这里可以告诉你,有些平台你给付费课程差评,是被删评论,还无法退款。体验真的很糟糕。
这一阶段需要学习的常用技术
redis 不要听网上瞎吹,要掌握8种类型,理解类型的底层结构。 这里重点要去掌握5种基础类型,并且理解他们的区别,这会用到不同场景,不同业务。集群模式,个人建议了解为主。如果可以使用docker
集群搭建会变得非常简单。主要了解 集群状态下去,个节点之间的问题处理,和数据同步的问题
SSM 这里建议找个短切简单的视频看就行,处理需要重点了解 spring。mvc你天天都会用到,mybaits,更多是会使用即可。
进入综合项目学习
前期我花了2个月的时间 去学习了b站上的项目,这里(我个人是偏向后端内容的学习)
吐槽点、确实是有项目可以学习,作为入门学习够,但是不够完整(公开的代码资源、还有部分的版本问题、确实的录屏等)
我曾连续16个小时,去排一个环境的bug真的是非常崩溃。对初学者来说这是我最难忘且感觉最底效
学习方式
这里就直接发几个我个人推荐的学习内容
付费内容
微信小程序开发
微博开发 这个真的算是我入门的项目了,前13章真的很不错,建议细心的去一步步实现代码功能。 十三章以后的内容讲的: es篇讲的太浅了,es根据不同版本和springdata 的api是不一样的,而且一般公司不会用到,不推荐学习。zk和con 比较老的组合。基本使用nacos、或者Double。再往后 sprongCloudAlibaba的内容都要讲到,可以听听,但离实际使用有些距离。作为入门,我真的给高分。
Ruoyi自己去摸索看这个项目,你会感觉非常困难,这并不是教学项目。里面的思路,功能都很完整,是切实可行的软件。 不过作者有提供教学讲解视频(虽然我没买,自己把代码看了很多遍) 但这个项目值得学习。后面我好工作也发现,有的公司用的就是这个项目去二开的。
此阶段,我开始用
云服务器
我的sql、redis等各种中间件都是放在云服务上远程链接等。中间也尝试了内网穿透
让项目暴露到公网
在项目阶段的学习,一定要不懂就问,朋友,社区,各种技术群。微信也好、qq也好。多去问,总会遇到有人愿意伸出援助之手。
我遇到有老哥帮我远程debug教我看 web设置。拉我代码帮我排错。给我问题的解决方案的人、给我文件解决文章链接的人等等。
顺便发下这阶段的学习记录
开始一点点调试微信小程序
去图书馆啃书询问别人这里的一个bug
开始试着耐心的去读ruoyi源码
这是当时看到一半发现b站的这个项目有环境问题 没法继续下去的时候
这是学习过程中买的书,基本是带去中午休息的时候读完的
一个也不错的开源项目
第一次找工作时准备八股文的时候
当我做完这一切的时候,过去了9个月的时间。当时出去面试,页面上了一家小公司。但是工资给的不高。身边也有朋友劝我说
你已经学了那么长时间了,现在进了家公司,接下来了你能一边拿着工资,一边学习
。
其实当时我也很犹豫,一边想着,也许我就这样了。另一方面,我不甘心,不甘心起点这么低。去找了那家公司的组长简单的交流后道不同不相为谋
。组长满嘴的道理空话,我认定在这里,只不是是浪费我的青春而已。
最好了充足的准备,休息了几天,就开始我我第二次学习。做好规划、给自己足够的耐心、和时间
。也许在当时看来,这是一次可能没有结果的尝试。但好在,我日复一日的走到了最后。
第二次学习开始
这一次我思考了再三,还是报名了一个培训班(这里并不鼓励大家盲目报班)我会结合自己的所看给大家客观的去分析
半年的时间,每天6:00
起床坐车 10:30
回去睡觉依旧是减少社交,和娱乐的半年。
首先培训机构大多会虚假宣传学完的朋友的工资、而且大多数不会度过试用期。
老师也是都是按着教材去按部就班的授课(非常乏味 - 我真真在培训学到的技术也许只有2成)。
当然确实会有技术比较好的大牛老师,但是你不去问一些比较底层,或者设计模式这类的问题,大部分老师的水平都差不多
在培训机构的这段时间我称自己为做末班车的人
应为有前面9个月的学习,对于大部分基础的知识,我已经能熟练掌握,我觉得自己欠缺的是独立开发编写项目的能。
第一个月
班中-一位风趣的老师讲java 基础 对java8的新特性 讲的非常少
我自己除了用 新特性去完成老师所有的要求外。我把更多的时间花在了io流、多线程。和算法的学习上。几乎每天在力扣
刷2-3个题。我技术很菜,但日积月累,也会有自己的一份收获。
第二个月
班中两位老师 一位讲sql、一位讲web
我还是没听什么,感觉钱都百搭了,2w来块
由于有在即刷 牛客网 sql
题的过程,老师讲到我感觉完全不需要听,我去读了MySQL45讲
非常推荐,内容硬核,深入底层。
同时还读了廖雪峰网站对区块链,有了一定的了解,搜索了一些资料阅读。
前端部分的学习,我把更多的时间放在了Vue 这里并不推荐大家学我,我只是对前端单纯的没兴趣
第三个月
开始做项目 一个使用ssm 实现crud的项目,中间用了oss
先前自学中,我有6和左右的项目学习,这个阶段的技术我基本都已掌握。我开始大量去看 分布式的文章,和各种的组件的使用。这是期间看到的非常不错的一些资源
阮一峰 这篇文章里讲了一些 Spring Security OAuth2 使用token在分布式做鉴权的机制
美团沙龙 在这里面读了一些jvm文章,对多线程有了更深入的了解。 (从这时开始,我发现讲很多授课老师的对技术的底层的理解都有问题。CAS、这里推荐读 《深入理解JVM》)
逃离沙漠 对Security 有全面的讲解,责任链
MrBird 强力推荐 这个大佬的博客,每一篇的案例都是切实可行,能编写启动的。非常细心,是我很喜欢的风格,虽然部分技术已经不够新颖,确实让我学到了很多。
第四个月
学习前后端分离项目
此阶段,我还是把跟多的重点放在了自己身上。老师教学的技术站,我几乎能独立编写。所以一边完成,老师的任务。一遍我自己开始编写项目。
当然,我的编写主要开始参考了ruoyi、和微博开发
第五个月
依旧是在讲项目、这一阶段还是给了一个搭好了的项目框架单体项目、给了一些名好名的接口,让我们去实现。
从这个时候开始,几乎班里很多人的,sql能力就会明显问题编写不了sql。而且犹豫接口也是提前写好的,需要的传参数,和库都是现成了,不需要自己的设计。就不会暴露出太多的问题。(我后面工作,直接给原型,表和后端都要自己从0开始写)
从这里开始我就已经开始准备面试了,这里是我推荐的一些网站
强力推荐 真的靠谱
计算机网络 通信协议 这个并不能给编码带来直接的帮助, 但是在我现在看到更多的技术后,才知道其中内容带来的意义
凤凰架构这里让我开始认识云原生,也是我接下里的学习方向
clay 对一些分布式的技术有讲解 这个人的博客我也觉得很有意义
常见21种设计模式 设计模式我一直都觉的是一种思想,不会影响工作的主要,尤其是在前期。他真真有用的时候更底层的开发的时候,前期有时间看这个不如多去理解,面向对象的编程,我入职后发现很多人都不会吧公共内容提取的到夫类,之类的操作,很多共性代码都是可以竟可以抽象、提取的。
左耳朵耗子 一位成功的大佬
第六个月
这个月的 2位老师,真的很有技术,几乎能解答我的所有问题,也是我觉得2w花的值的地方。
这2个月的内容,我的经历都放在了听课上面,有多余的时间才会去看看书。
这个月讲的是电商项目
后面我才知道这个电商项目是围绕着一本书去写的后,我又吧书读了一遍,发现还是真实(当时也不知道说些什么,就感觉很奇怪)
顺便对电商项目做个点评
- 确实又设计到一些 多线程,和并发冲突的解决,但细读不够随着后面我对多线程的更多理解,发现里面的并发解决方法并不是那么的可行
- 整个技术中,并使不所有内容都不错,真真感觉是这个项目独到的地方可能也就那个3-5个点。大多数的还是api的调用
- 时间毕竟设计的比较短、其中也是留了一些坑,被老师用委婉的方式带过。(这里开始其实班上大部分人已经更不上教学速度,甚至理解,或实现老师的代码了、光是抄都有相当一部分人都不能让代码跑起来)
第七月
这个月就是一直在讲各种复杂的原理知识,枯燥乏味。大部分人听的都睡着了。
到这里培训班的学习基本告一段落
- 后面就开始自己投简历找工作,当然依旧有一部分的人是过不了面试的
- 一部分人没有度过试用期
- 一部人人面试一直被打击最后选择 运维,实施,数据管理员等
其实在如今互联网真的十分发达,java的学习资料在网上,基本都能搜索到到,你只需要耐心、和时间基本都完成自学。如果不能律己即时到了培训班,你依旧会听信别人的速成、依旧会机械式的学习、会投机取巧。你稍微努力就像获得回报是很难在工作中留存下来的。(我在公司中看到了新人很高的淘汰率),有些人付出了很多,还不敢有丝毫松懈。而你稍微努力,凭什么能获得成功?
一路走来,庆幸我的好运,总能遇到给予我帮助的人。也加入了不少社区和群,接触到了很多的大佬,和努力的人。起薪20-30k的人真的有。当然我最后也不算太差(能照顾好自己,照顾好家人)。
总体学习时间,我花了17个月。一年半转瞬既逝。期间我曾是那个登山的人,后来我也看到了很多登山的人,自学的人真的很多,java没有你想象中那么难愿你多点耐心、时间。
Only make yourself better,Everyone will be close to you.All good things will happen to you.
这一切的都是我的心血来潮。那些受伤的地方终会长出强壮的翅膀、带我去更远的地方。