Java

非科班自学转行Java,学到什么程度可以找工作?

2020-12-11  本文已影响0人  笃学私教

问题一:非科班是否可以学好Java?
问题二:转行自学Java需要注意哪些问题?
问题三:Java学到什么程度可以找工作?

解决问题一:非科班是否可以学好Java?

很多初学者在刚开始学Java的时候,由于自己是飞科班毕业出生,担心学了Java技术出来找不到工作。其实对于这个问题,我觉得大家有点杞人忧天了。你要知道,现在Java行业,永远看中的都是你的技术水平和项目经验,只要你的技术符合市场技术栈的需求,想要找到合适的岗位工作,问题不大。再者来说,即使你是科班毕业出生,你所占据的优势也就那么一点而已。

解决问题二:转行自学Java需要注意哪些问题?

对于Java这个行业什么都不了解的情况下,比如:不知道未来发展趋势,不知道学习Java应该注意哪些初始问题,不知道具体的学习规划学习路线等等,一味的买书看书,看视频,到了中期阶段萌生放弃的想法,和主要是因为觉得自己越学越迷茫,也知道自己这样学找不到工作,这是初学者最大的误区。

当初在学Java的时候,学习过程中没有同学可以交流,学习沉浸在自己的世界里,总认为自己什么都可以搞定,而且很多知识不会了,直接就过去了,并没有深究,而这种学习态度也注定了学习效率是失败,学习Java一定要有讨论钻研的过程,只有跟不同的交流才能了解到你自己不知道的东西。

对于java从来不了解的行业,同时没有一个这个行业比较厉害的人引导,有一点很重要“方法不对,努力白费”所有的java大神都有自己的学习方法,而学Java的学习也基本是一致,而对于一个什么都不懂的初学者根本不会知道怎么学,这也是造成失败的最直接原因。

对于新手来说,学习一个技能肯定是买书看书,但是后来我才实践的证明,对于一个啥都不懂的初学者来说看书基本可以成为无用的,因为这样的结果就势必会造成大多数人的情况:能看懂,但是永远不会写,这就是我最初出现的问题,非常烦人,所以建议初学者少看书,多动手,必须弄清楚Java的效率学习方法。

好像大家都有一个毛病,就是到处搜集资源,云盘里有很多东西,但是基本是从来都不看,所以说视频在精不在于多,我当时自学java的时候也搜集了各种视频,这里看看,那里看看,学的一点都不系统,而且学了之后也找不到工作,视频一定要最新的,Java更新的快,旧的是不可以的。

解决问题三:Java学到什么程度可以找工作?

如果你也关注IT行业,你一定能发现,一直都有人不断地散布有关程序员的负面内容:什么Java开发饱和了、学Java找不到工作、程序员吃青春饭、中年危机有多厉害、35岁一定面临裁员、程序员秃头脱发穿格子衫、直男无趣不洗澡……等等等等。

其实说这些话的没有一个是程序员,都是柠檬精的抹黑或者外行人的偏见。这里贴一张2011年的老图,回头看看2011年就唱衰“IT民工荒”的那帮人,10年就快过去了,你们口中的“IT民工”至今依然领着傲人的薪水,互联网科技公司的薪资待遇领先其他行业好几倍,就问你们三个字:“香不香?”

实际上Java初级开发岗位对于从业者的要求并不高,通常能够熟练使用常见的Java框架就可以找到第一份工作了(很可能是外包)。但是外行人难免忐忑,心里没谱儿,到底Java学到何种程度可以找到工作呢?本文就从一个程序员是如何诞生的视角,以校招和社招两个角度向大家讲解面试官会问些什么以及求职者该准备什么。

面向校招编程

1、Java核心方面,集合,多线程,异常处理,IO,面向对象,泛型,注解,反射……各种编程通用语法大概率会问到,比如就问些ArrayList和LinkedList的差别;用Java实现堆栈,链表,队列,散列表,树等的数据结构;操练各种排序算法。

2、前端基础方面,HTML5 CSS3 JS(和Java一样复杂,会使用就行), 不要以为是后端工程师,不学前端,在实际工作中div+css布局一定要麻溜的,JS的dom操作必须给力。

3、web服务器方面,Tomcat和Nginx服务器搭建,配置文件,Servlet,JSP,Filter,Listener,http协议等。Tomcat目录结构必须了如指掌。让你手动部署个webapp总要会。哪里配置虚拟主机,哪里改端口号,web-info文件夹下的内容外部无法访问这些都要懂一点。

4、数据库方面,能会基本的增删改查即可,外带一些基本概念,比如事务怎么处理,JDBC里批处理怎么处理。会写增删改查的SQL语句,知道存储过程之类的概念,会通过索引优化查询条件,多表关联、左外右外不能怂,这里请注意,至少得用过一种商业化数据库,推荐Mysql。

5、Web框架方面,需要以全栈的形式,了解SSM,或Spring Boot或Spring Cloud从前端到后端的基本语法,至少能在项目经理短期帮助下,能照着别人的例子写代码。应届生候选人只要能讲清楚相关框架的语法点和流程即可,最多再附带说明下mybatis等组件的用法,至于redis,dubbo,根本没要求。需要有Spring+Spring MVC+mybatis框架的实际操作能力(不是商业项目开发能力),至于有Spring Boot或Spring Cloud,那更好了。了解Spring里IOC, AOP,Mybatis里的ORM过程是WEB框架考察核心。

6、综合技能方面,能知道基本的数据结构知识(线性表外带排序外带一些树的技能),基本的操作系统知识(一般仅限于线程进程概念),基本网络通讯知识(一般仅限于网络通讯模型和tcp udp协议),但这仅仅是“需要知道”而已。

如果你是一位普通的大学生:

起码要学好计算机专业的“四大课”——

  1. 数据结构
  2. 计算机组成原理
  3. 计算机网络
  4. 计算机操作系统

大学生学好计算机四大专业课无论是应对校招,还是考研皆可,不负青春。

如果你是一位优秀的大学生:

《剑指offer》刷一遍,有些重点的题一定要滚瓜烂熟;

  1. leetcode有时间一定要刷,对解题思路很有帮助。
  2. 去网上(GitHub)找项目做,并且把这个项目做成面试中最大的筹码。
  3. 这就需要你对于你的作品中的每一行代码都要很熟,用到的技术不仅要会用,还要理解底层,并且像“练号”一样的不断完善它。

如果你在面试中祭出你的作品,那面试官的问题一定是围绕你自己做的项目开展的,想一下,你把面试官带进自己的领域,又侃侃而谈,就像邀请面试官来家做客一样自信满满的表现,一定给你打高分,offer准没跑了。

面向社招编程

如果错过了校招机会,只能面向社招的话,那么无疑是从“Easy模式”瞬间提升到“Hard模式”。不但面向校招编程所需技能一样都不能少,还需要多多益善的商业项目实战经验。这还真的就像玩游戏选择难度一样,还是同样的配方,还是熟悉的味道,只不过需要你操作更强,出错更少才能过关。

这就需要你必须是“过来人”才能通关hard模式,也就是社招通常要求的“三年工作经验”起步。没有人开局就Hard模式通关的吧?除非是个脑残游戏,Java可并不脑残,那该怎么办呢?说白了就是相比校招,需要更多的商业项目经验。

顺便在这里说一下,如果你现在也在学习Java,了解Java,渴望成为一名合格的Java开发工程师,在整个Java入门的学习过程当中,有遇见任何关于学习方法,学习路线,学习效率等方面的问题,都可以随时来一起交流探讨:Java技术交流圈子 这里面聚集了很多正在转行自学Java的初学者,非常活跃,有任何不懂的地方都可以随时在里面问,不忙的时候我也会抽出一定的时间给大家进行解答。

注意商业项目经验,是指的真实项目经验,所做项目可部署上线,不是应届生做毕业设计用的那种学习项目。如何才能刷到真正的商业项目实战经验呢?无非就是前期疯狂的不要钱刷实习,找各种机会参与到真实的项目中,并且尽可能的把Java技能树全部点亮。

社招的面试官问的问题可就没有校招时那般“小儿科”了,问题会涉及日常开发工作的全部技术栈的方方面面,对于面试者来说就要准备得面面俱到了。

什么源码剖析、JVM底层调优、Nginx性能调优、算法深入、LeetCode中级题、分布式部署方式、微服务设计思想、Redis\MemberCache\RocketMq\kafka\ElasticSearch等中间件、Dubbo高可用、Netty对RPC框架序列化、服务治理……等等等等等

社招的要求每年是水涨船高,你很可能还需要看这些书:thinking in Java,effective java,深入理解java虚拟机,java多线程,java并发编程实战,springmvc,dubbo,netty实战,高性能MySql,Redis实战,深入理解Nginx,Springboot,Springcloud,jdk集合源码,jdk并发包源码。

看完这些,找个一二线互联网工作不成问题。

最后,既然选择IT行业,就要有终生学习的觉悟,Keep Leaning :)

上一篇下一篇

猜你喜欢

热点阅读