本人去年12月自学java web,今年五月跳槽到了新公司做java web,以下皆为本人实际经验。
现在java web最流行,本回答假设你学java web(如果不是也建议学java web)。
针对你的问题,只回答学到的程度,不写不必要的东西(比如:如何学。如何学,请看我此分享:【我是如何下班后自学Java并拿到多个offer的 - 今日头条】https://m.toutiao.com/is/ee3CaCq/)。
Java Web有如下技术栈:Java基础、数据库、缓存、框架、分布式、消息中间件、大数据。
1.Java基础
基本代码的编写(比如:排序、递归)、类集(List、Set、Map)使用、多线程使用、JVM基本原理
2.数据库
掌握增删改查语句、索引的基本概念及用法、事务的概念及用法
3.缓存
Redis用法
4.框架
SpringMVC用法、SpringBoot用法
5.分布式
SpringCloud基本用法
6.消息中间件
RabbitMQ用法
7.大数据
ElasticSearch用法
以上,都需要通过小的Demo来掌握用法。然后,找个简单一些的项目理解下项目实际使用就可以了,本处推荐:《深入浅出Spring Boot 2.x》(此书有一章内容很适合作为项目练手,而且有SpringCloud入门级案例。第15章 实践一下——抢购商品;第17章 分布式开发——Spring Cloud)。我有此电子书,想要的可以私聊我。
理解项目大概流程就可以投递简历找工作了。
注意:先投递意向不强的公司,通过面试积累软知识、原理类的经验,没遇到不会的,要记下来,尽快上网查询或者看书查询然后掌握。比如:
1.Java基础
HashMap是如何实现的
2.数据库
索引在什么时候会失效
3.缓存
如何避免缓存穿透
4.框架
SpringMVC请求流程
5.分布式
feign熔断的原理
6.消息中间件
RabbitMQ的延时队列是如何实现的
7.大数据
倒排索引与正排索引的区别
建议你现在就投简历找工作吧,如果能找到一个差不多的单位,就去工作。
这里的差不多的单位,如果你的学历不是很高,学校不是特别好的话,其实我的要求很低:正规单位不管大小,开发岗,工资够你吃住行的开销就可以。
自学三个月,不精通是正常的,后面最好在工作中去提高技术,当然你现在面临的就是找工作了,有两点建议:
1.简历的准备:
先在网上找一份简历模板,简单不花哨即可,主要内容包括求职意向、基本资料包括联系电话、工作经历(如果没有的话,最后编一些项目的经验)、专业技能、教育背景和自我评价。 当然很多招聘网站都有自己的简历模板,但是我建议你还是能单独的准备一个word文档,在通过各个公司官网投递简历的时候,可以根据他们岗位的招聘要求,酌情的修改简历上的内容。
2.面试的准备:
这一点也是非常重要的,很多时候,你虽然会敲代码,但是让你口述的时候却有一定的困难,我的经验是对你现在掌握的知识点,去整理一些问题和对应的答案,然后多背一背。
比如你学了Spring,常见的问题之一是“什么是IOC,简单介绍一下”,那么你可以准备这么一段话:
IOC,就是控制反转,也被称为依赖注入,是一种降低对象之间耦合关系的设计思想。在分层体系中,都是上级调用下级的方法,或者是下级的接口。 而通过IOC的方式,容器(Spring)会根据配置文件来创建被调用者对象,同时把被调用者的对象的实例化对象通过构造函数或者set方法,注入到调用者对象中。
优点:只需要修改配置文件就可以实现对象的热插拔。
缺点:对象是通过反射机制实现的,会对系统系能有一些影响
(这个是多年前我面试的时候准备的,现在Spring更多的是用annotation的方式,需要准备的话术又不太一样了)
祝你早日找到合适的工作,在工作中不断进步。
我是萌新程序猿,关注我,发现每一个用心的回答!
对于这方面我有经验,也可能是我运气比较好,概括一下,我碰壁了半年多后转方向学java,每天学习8-10小时接近一个月,投的第一份简历就面试通过,待遇还不错,比不上20几万的宇宙条等,但是比中小公司好很多。
我是怎么准备的呢?
虽然我现在专攻JAVA,但是我涉猎的范围比较广泛,我是从另一门编程语言方向转过来的,算是有一定的基础。
1.Java编程语言的基础语法。即J2SE的知识,不过因为我有这方面的基础,因此我直接跳过了这部分。
2.J2EE的学习。先学学maven、jdbc、junit、多线程等等,再学习j2ee框架,现在你先学习SSM框架就好。不过我没学完这一步就找到了不错的工作。
3.数据库知识学习。很多公司都会要求熟悉mysql、oracle等,我对mysql数据库比较熟悉,在面试过程中也多次被问到。
4.服务器。既然是Java那么你肯定学习Tomact服务器。
5.做个应用。你去找工作时最好能有一个拿得出手的项目,无论是网站、APP亦或是小程序,这样你后面进入工作上手也会比较快。
最好每天都汇总整理自己学习的内容,或者记录自己遇到的问题。我每天都会把我学习的知识点和遇到的问题及解决办法更新到个人网站和github中。
面试还是比较看运气的,说不定面试官就跟你看对眼。从你问的问题我认为你没有面试过,因为技术性的问题是有相关的技术部门的人来面试,而HR面试一般会问你考验情商的问题。
想面试就过的话那就是抓紧积累技术吧!
我是萌新程序猿,科技圈的事情欢迎邀请我来回答!
码了这么多字,点个赞关注下再走吧!!!
关注萌新程序猿(本人咯),了解更多IT以及程序猿的知识!!
目前Java开发主要集中在Web、大数据、移动互联网和人工智能等领域,当然很多工具类软件也采用Java进行开发,比如Oracle很多系列产品都是使用Java开发的。
转行做Java开发从Web方向入手是比较务实的选择,原因是做Web开发更容易上手,学习起来也并不困难。如果做Web方向的开发则需要掌握如下的内容:
对Java面向对象开发过程有清晰明确的理解,从类的设计、对象的创建到方法的调用都能独立完成代码的编写。掌握封装、继承、多态以及其衍生的相关具体开发内容,理解Java的多线程概念。
会使用Mysql或Oracle数据库,做Web开发需要频繁与数据库打交道,所以要熟练至少一个数据库产品。能完成建库、建表,能使用sql语句完成数据库操作,能自己编写存储过程语句(不需要太复杂),以及能独立完成一部分数据库优化操作。
能通过JDBC完成对数据库的操作,清晰数据库操作的步骤:驱动程序加载、数据源的定义、建立连接对象(Connection)、创建容器、执行Sql语句、遍历结果集、关闭数据库资源(结果集、容器、连接)。掌握DAO模式的编写规则,能独立完成基于DAO模式的数据库开发。了解连接池在数据库开发中的作用,能在实际开发中使用数据库连接池管理连接对象。
清晰Java Web开发的核心组件,了解Web开发的三层结构以及N层结构,清晰每一层的功能划分,能独立完成每一层的功能组件开发,并完成部署。了解Web Server的组成部分,了解其在Java Web开发中所起到的作用。了解MVC框架,清晰MVC框架每一部分的功能划分,知道该使用哪种技术完成具体的开发任务。
熟悉一种开源框架的使用,比如SpringMVC,了解框架在Web开发中所起到的作用。能通过使用框架完成Web开发任务,并部署到Web Server中。
转行做Java开发如果有扎实的数学基础,也可以从事大数据或AI方面的开发工作,由于大数据开发需要一定的数学基础,所以有一定的门槛。当然在大数据开发领域使用Python开发也是一个好的选择,毕竟Python比Java更容易掌握,功能也十分强大。
如果想做Android方面的开发则需要学习的内容要稍微少一些,在掌握基础的Java语法之后就可以学习Android开发了,Android开发主要集中在Activity、Intent、Service、ContentProvider、BC以及诸如手势、外设连接、数据库操作等内容。
目前很多公司的Java程序员都可以做Android开发,所以只掌握Android开发未免有些单薄,所以还是建议系统学习一下Java Web开发。
我做过的很多项目都是使用Java完成开发的,作为问答的签约作者,我在头条上陆续写了一些关于Java、Python的文章,里面有很多验证性实验,感兴趣的朋友可以关注一下,有问题也可以跟我交流。
那么这里题主问的是在技术层面上学到什么程度,那么答主也只针对技术层面来说说学到什么程度可以就业。其实能不能就业在很大一部分基础上和运气也有关系。那么答主先来说说Java学习整个流程,这样大家对于学到什么程度也会有一个直观的理解。
Java学习整个基础构建
java基础部分:
变量,数据类型,基本流程工作,循环,OOP,API内容。
Java基础部分学完并且能学好,其实后期对于后面的学习有一定的帮助,如果是零基础后期你会对于编程思想有更深的理解。Java基础学完,是不能能找工作的,你现在的技术还处于刚刚踏入小白境界。
Java基础内容比较多,对于零基础入门能坚持下来只能算基础入门
JavaEE基础:
jsp,servlet,tomcat,JavaScript,jQuery,数据库相关的知识点。
学完这些你基本上会了解到所谓的Java前后端交互,并且你可以拿这些技术做一些有基本功能的项目了,但是实现起来代码量会比较多,做稍微复杂一点的功能会比较麻烦,基本上什么事情都需要你去做。但是还不足以去找工作,还需要学习下面的内容,框架,框架这一块的东西是需要比较多的时间去写一点稍微大一点的项目去提升能力的。
学完JavaEE,只能算小白
框架:
spring必须的学的几个,spring,springMVC,springBOOT,springcloud
现在企业中如果你要能做最基础的开发工作,框架是最基础需要会的点。框架的学习可能会需要话比较多的时间去学习,最开始的话肯定是需要先会使用,如果探讨比较深入的东西那需要学的东西就更多了。会用只是进入企业工作最基本的。学完这以整套你基本上就能去找工作了,但是不一定绝对能找到,能不能找到工作有很多原因。
学完框架只能算正式入门,但是找工作没有那么简单
只谈学习到什么程度能找到工作
以上是自学完所有的东西,基本上你就可以去慢慢面试,积累面试经验,如果运气好的话你可能可以找都工作,但是第一份工作,你最好也不要奢求有特别高的工资,比较你学的东西都只能算是基础。在就是找工作这个问题,为什么说是要看运气呢,因为现在市场原因,初级开发以及饱和,在就是如果你学历和专业不对口的话其实也很难收到面试邀请。收到邀请的话也需要你能面过,面过了你的工作能力是否能在规定的时间内完成任务如果完成不来你也有可能被辞退。但是自学对于企业来说真的会特别看着你的学习能力,和可塑造能力,在就是一些品格上的优点,因为确实自学能找到工作的人真的不简单就这个毅力是其他人无法比拟的。
在就是现在面试的要求是很高的,以上只能算你能基本最基本找工作的能力,有些面试会问到很多优化的问题,比如jvm调优,数据库优化,代码优化等等,所以要学的东西还很多。
总结:自学能找到工作的人真的很少,一般学完框架做几个稍微大一点的项目,基本上你就已经具备最基本的开发能力了,但是能不能找到工作真的需要很多因素。
以上是答主的个人看法,如果有更好建议的小伙伴可以在下方评论区留言给我,或者点个赞,加个关注我们一起探讨探讨。