素材巴巴 > 程序开发 >

Java自学之路,目前已在深圳找到工作,月薪24K!!

程序开发 2023-09-24 06:40:14

一.如何选择职业方向

我见过很多之前都不是计算机专业出身的,现在从事Java开发或者大数据等职业,而且现在做的都还不错。我想这些人应该都是经过深思熟虑的做出选择的,或者是人云亦云,不过都已经走出来了。我是从事JAVA这块十多年,从初级开发到现在架构师,确实一路经历很多。

就目前主流互联网公司,JAVA的应用场景还是最多的,比如大型的分布式系统、微服务架构,基本上服务端开发用的多数是JAVA。这就决定了市场需求,如果技术还可以,找工作不是问题。当然,做IT这块有很多选择,大致有几个方向:

1.前端工程师

大型互联网公司都是前后端分离的,前端负责前端开发,比如H5、APP等工作,后端服务服务端开发。前端现在也很复杂,需要掌握HTML、css、javaScript这些基本技术外,还需要一些流行框架,比如Node、angular2、vue.js、react等,这些更新都很快。

优势:前端的起薪比较高,我觉得前端现在很紧缺的,薪资普遍比后端高点。

劣势:对于职业规划上,前端以后可以做前端架构师、前端的Team Leader。但是很少见到技术总监、CTO这些M级职位是前端出身的,当然,也不是绝对。

2.大数据工程师

大数据之前还是很抢手的,但是目前市场应该趋于饱和,也是不错的职业方向。如果你现在是DBA,我想你转大数据应该很快。比如你做数仓Hive上写sql,估计一天就可以转型成功。所以现在很多DBA转大数据,而且感觉很简单,so easy,但是估计只会写SQL。如果你是数仓Hive上写SQL的,我的建议是写个半年就可以了,多了基本上就废了。技术栈如下:

Java语言、Linux 、Hadoop(HDFS+MapReduce+Yarn )、 HBase、Hive(Hql基本操作和原理理解)、 Kafka、Storm/JStorm、Scala、Python、Spark (sparkCore+sparksql+Spark streaming ,或者加上MLLIB) 、还有(Sqoop/Flume/Oozie/Hue等)。

Spark可以用scala或者java,用scala操作RDD比较方便,前提是有学习成本。scala一行代码搞定的,用JAVA有可能几十行,但是一些其他中间件基本上都支持JAVA,用scala就少些,集成个方便比较麻烦。

流式计算,Flink未来应该是趋势,Spark streaming严格来讲是批处理。

3.JAVA工程师

JAVA已经流行了很多年了,不过现在GO语言慢慢的也在兴起。大型互联网公司分布式架构,服务端语言大多数是Java语言,周边生态也是最全的。

做后端的以后职业规划可以有技术型,比如技术专家、架构师。管理可以往Team Leader、技术总监、CTO。

其他还有很多选择,比如数据工程师、机器学习、量化工程师,也是不错的选择。

二. JAVA需要学习的技能

如果你坚定的选择Java,那就开始吧。

1. JAVA基础

这个是基础,是以后发展的根本。

你可以选择从看书开始,比如JAVA编程思想、JAVA核心技术卷,不过我不建议先从这里开始,翻译过来有很多语言比较晦涩,而且书也比较厚,坚持学完估计会花不少精力,也会有挫折感。

你可以选择网上一些免费的教程,如果你找不到合适的,可以进我的Java技术交流圈766328863自行下载,所有Java学习资料都在群文件里,你需要的全都有,进去要跟大家多交流学习哦。

学习过程中,重要的事情说三遍,动手!动手!动手!理解的再好,都没有动手来的彻底,还有一点就是做笔记。

需要学习,面向对象、注解、泛型、多线程、IO、JVM、集合、反射、网络编程、设计模式、JDBC等技能。学习过程中,随时做些小的项目。

2. JAVA WEB

语言类,html、javaScript、css(了解)、Servlet、XML、AJAX、JQuery、http协议。

框架类,Spring MVC这个就可以了,像Struts、Hibernate、Webwork这些你可以忽略了,即使遗留项目,现学也来得及。

3. 数据库

项目都是动态的,肯定离不了数据库,也是以后工作中经常用的。如果时间有限,基本上MySQL要掌握。

4. 缓存

系统中很多数据是要放入缓存,缓存速度很快。Memcached由于只放内存,断电会丢数据,Redis现在是主流,需要掌握如下:

5. 工具类

6.框架类或中间件

7. 数据结构与算法

线性表(数组、链表)、栈与队列、树与二叉树(树、二叉树基本概念、二叉查找树、平衡二叉树、红黑树),这些还是要会的。

关于LeeCode,如果你校招进大厂,这个你要好好刷刷了,你即使是神童,不刷你也搞不定。现在很多社招也会面这个的。

8. 操作系统

Linux操作系统的常用命令会用一些,工作中大概率会用到的。至于select、epoll、Zero以后可以慢慢学习。

三.怎么学习

1. 善于借助搜索工具

遇到问题,恭喜你,有问题才能进步。先想着自己解决,不行解决搜索引擎,比如百度、google。搜索也是有技巧的,不妨先学习下搜索的技巧。如果能阅读源码肯定是极好的。

切记,不要很随便的问身边的同事技术问题,除非你觉得是合理的,工作中要树立自己的品牌,千万不要被别人打上不好的标签。

2. 官方文档是不错的学习途径

想学一门技术,最先去找官方文档,基本上文档都是可以接受的,当然,你的英文要好点,不好也没关系,借助有道,慢慢的就可以了。实在不行就找一些网上的视频教程,但是最新的有可能没有,或者是别人总结过的,有可能被带歪了。

3. 善于做笔记或者写博客

无论学什么,能用自己的语言总结出来,都会有新的收获。即使过了很久,翻开笔记或者博客,很快就会把只是串起来。还有一点,写博客可以拓宽自己的知名度。

我其实很少写博客,但是笔记会每天都做的,不断修改。若干时间后,翻开之前的笔记,妈呀,这太low了吧,有这种感觉说明进步了。

4. 动手做项目是成长最快的方式

重要的不需要解释了。

四.怎么写简历

1. 简历要中肯

简历写的中肯合理,比如初学者写精通分布式架构,面试官肯定觉得这是神童,会问你分布式常用架构是什么、调用链监控怎么解决的、熔断、限流。或者简单点问分布式事务,两阶段提交、三阶段提交、CAP理论、Base理论,你怎么解决分布式事务问题的?

你可以这么写,了解分布式架构,面试官问你,最起码可以答出来12来。

切记,简历不可以造假,写的内容自己心里有数即可。

2. 简历中要有亮点

多写项目经验,不要通篇都是会哪些技能。如果我是面试官,我提问会很迷茫。项目经验多写自己参与的部分,遇到哪些难题,解决方案是什么,这个看起来比较nice。

我其实比较讨厌,上来就写做过OA、CRM啥的企业管理软件,因为写的人太多了,有点普通,问你工作流引擎还不一定答出来。

如果你做过电商项目,写个订单状态机设计还是不错的,最起码每个订单不是硬编码,可以自由配置。还有库存超扣怎么解决的,这些都可以的。

以上就我的个人经验,如有不妥,请指正,愿你在未来的职业中星辰大海。

最后

如果你正在入门学习,可以申请加入我的Java技术交流圈:766328863,有什么问题都可以随时来交流分享,

群文件我上传了我做Java这几年整理的一些学习手册,面试题,开发工具,PDF文档,书籍教程,简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,需要的话你们都可以自行来获取下载。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。