学弟:学Java一般要多久能找到工作?需要参加培训班吗?
大家下午好啊!
早上起来刷知乎的时候偶看到一个问题:“学 Java 一般要多久能找到工作?需要去千峰、达内报个班吗?” 。
看了一下回答区,发现很多回答都挺误导人的。
之前也回答过很多类似的问题,于是我就根据个人的经历和感受简单写了一个回答。希望能帮助到也有类似问题的小伙伴。
个人能力有限,文中观点仅代表个人看法!如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!
下面正文。
01 是否要参加培训
其实,真心没必要从众!很多人看到身边的小伙伴参加培训了,自己也按捺不住,也去参加培训,结果发现效果并不是自己想的那样。
参加培训班之前,一定要想清楚:“自己为什么报培训班?培训班能给自己带来什么帮助?”。
对于培训班,网上有很多人挺偏激的,觉得培训班出来的都是“垃圾”,觉得人人都应该自学。我个人是非常反对这种看法的。
客观点说,我们不能因为一些培训班垃圾就把所有培训班给拉下水了!这是不厚道的。
自学能力固然重要,但是,是否需要参加培训,还是要看人的。
毕竟,并不是每个人都有非常清晰的学习目标和比较强的学习动力,有一个比较靠谱的学习路径和学习氛围,确实能够让很多初学者少走很多弯路。
而且,很多小伙伴是跨专业过来的。他们也想自学,也不想花钱参加培训,毕竟培训费用还是不小的。然而,由于没有计算机基础是很难自学的,他们大部分参加培训也是无奈之举。
真心没必要看不起参加编程培训的小伙伴,编程培训也属于技能培训的一种,没必要带着有色眼镜看待。
不过,前提是你要参加培训的话,尽量要找一个靠谱负责一点的机构。 大部分培训班的培训水分特别大,说白点,明面上标榜着自己对标阿里 P6,P7 ,实际上教的内容很水,老师的水平也很低。
对于时间比较多的小伙伴(比如在校大学生),有了学习路线之后,你也是完全可以自己学习!
02 个人自学经历分享
拿我自己来说吧!我本科学校很一般,荆州的一所双非一本。在大二上学期末,最终确定了自己以后要走的技术方向是走 Java 后端。于是,我就开始制定学习计划,开始了自己的 Java 后端领域的打怪升级之路。
到了大三,我基本把 Java 后端领域一些必备的技术都给过了一遍,还用自己学的东西做了两个实战项目。整个过程一共花了我一个暑假+半个学期,每天的学习强度基本都在 10 个小时以上。
一个是跟着老师一起做的绩效考核系统,类似下图这样。
一个是跟着网上视频做的分布式商城系统,自己对于其中的一些地方做了简单改进和优化,比如增加了缓存 Redis。
整个过程一共花了我一个暑假+半个学期,每天的学习强度基本都在 10 个小时以上。
所以,在我看来:自学 Java 想要找到一份工作的话,学习强度比较高的话大概需要半年时间,学习强度正常水平的话大概需要一年。 对于没有任何编程基础的小伙伴来说,这个时间或许还要继续延长一些。
对于每一门技术,我会去网上找一些常见的面试题,并把这些面试题作为重点来复习!同时,掌握这些面试题,又让我对这门技术有了更深刻的认识。
知识点差不多学习完之后,我每天的任务基本就是刷刷算法题,写写代码,总结一下常见的面试问题。
这个期间还接过一些外包做(大三下学期实现经济独立,还赚了一些钱),还和一些朋友参加了一个软件设计大赛。这让我的编码能力有了非常大的进步。并且,让我的简历也有了更多可以写的东西。
我将自己接私活的经历分享在了这篇文章中:唠唠嗑!大学那会接私活赚了 3w+ 。
03 重视项目经验
另外,不论是自学还是参加培训,很重要的一点就是项目经验。 你的项目经验很大程度上决定了你能否有机会面试,也很大程度上决定了面试官会在面试中问你什么问题。分享 4 个面试被问项目经历的小技巧:
1.提前搞清楚项目的架构图、技术选型等等。
比如下面这个就是我之前写的一个简易 RPC 框架(guide-rpc-framework)的架构图。
再比如下面这个是一个微服务的电商网站的架构图。
2.提前想好项目的亮点,针对项目涉及的关键技术进行深度复习。
比如说,你的项目用了消息队列的话,你就很有必要提前想好怎么回答消息队列相关的一些问题:消息队列解决了什么问题、常见消息队列对比、如何保证消息只被消费一次、如何保证消息不被重复消费......。
3.引导面试官问你熟悉的技术。
比如说,你对消息队列比较了解的话,介绍项目的时候就可以多介绍一下自己通过消息队列解决了什么问题。
4.突出个人的贡献比如自己在项目中解决了什么问题,而不只是叙述自己做了什么。
5.提前想好项目的难点或者说自己做的过程中遇到的问题。
昨天就有个球友问到了类似的问题:
04 最后
讲真,你们比我当时自学幸福多了!因为缺少指导,我自学那会走了很多弯路,就比如我当时把一本已经过时的书《Java Web 整合开发王者归来》看了两遍,为此还逃了很多课。
其实,这本书的有些理论内容还是不错的,就是里面讲解的知识点有点过时了。
我的第一个 JavaWeb 项目就是参考这本书对 Struts2
的讲解做的一个图书管理系统,类似下面这样。
现在回想起来,感觉学习 Struts2
纯粹是在浪费自己的时间,对于后续学习 Spring 也没有起到任何帮助。
最后,Java 后端的 2021 版详细学习路线我也写过:2021 最新的 Java 后端学习路线!凎! 。如果你不知道如何学习编程也没关系,我也写过自己是如何学习编程的:我是怎么学习编程的? 。
共勉~
推荐👉 :周志明老师的又一神书!发现宝藏!