从零开始学习java一般需要多长时间?
其实学java一般要多久?因人而异,例如一个零基础的小白自学java,每天学习8个小时来算,而且在有学习资料的基础上,每天学习,从零到找到工作,起码要半年起步,而且还要有项目经验,否则是不会有公司要你的。而一个有一些基础的人,在经过有人系统的教学后,是可以很快学会掌握java的,大概3个月左右。不过java相对于C,C++java而言,java无疑简单了很多,不需要指针,不需要销毁对象,使得对java初学者来讲更容易入门,挫折感也少。
很多人自学java,因为抓不到学习java的重点,找不到学习java的方向。往往花费大量的时间和精力,而效果却不大。面试IT企业office时或者参与真正的项目开发忽然发现自己一无所知。
我认为正确的学习路径应该是一个月java基础,两个月JavaSE,半个月html+css+div,一个月的数据库,servlet+jsp一个月,然后SSH框架两个月。然后通起来串一遍,把知识结合起来,再做几个项目练练手,就差不多了。(其实学习java 基础部分需要时间不止一个月,至于说不止一个月,是需要你将java 基础部分完全明白,能够串起来综合运用,甚至需要两遍三遍;之所以这么说,不是为了说java 有多难,而是为了强调基础有多重要。)
我想要告诉你的是学习Java不难,但是也会很艰辛的敲代码。Java程序员经常需要加班,学之前要作好心理准备。其次一旦下定决心学java了,一定要坚持下去,不要半途而废。
java零基础的学生自学必然会耗费大量的时间和精力,而且如果你没有定制系统的学习方案,效果将事倍功半,上java培训班也是个不俗的自由选择,再加上自己的努力,一定可以学有所成,当然一定要慎重选择靠谱的机构。
最后学java依旧要看兴趣,如果你真的深入学习,你会发现“ 学java要多久 ?”是个毫无意义的问题,不要忘记,技术的道路更新实在太快。人只有在不断学习,才能走在技术的最前端。也许一辈子都要学呢。活到老,学到老,而且互联网技术更新迭代很快,只有不断学习才能更上时代不被淘汰。
总而言之,自学java是可以的,但效率会很低,对个人能力要求很高,时间也会很长,而且最重要的是可能找不到最新的学习资料(大多是收费),所以入坑需谨慎!
哈哈,但还是很希望大家来加入代码世界的。
原文链接: https://www.cnblogs.com/heqingxiaohuo/p/12076890.html
技术日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展。
网上的资料多如牛毛,但是很多时候我们缺的不是一个资料,而是一个学习规划!
就是说,做 Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学?
大二刚开始自学 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,自己一个人摸索了很长时间,后来才逐步建立起自己的知识体系。
所以每次有小伙伴问我 Java 的学习规划时,我都能理解大家所处的困境。
Java 开发涉及到的领域非常多,对于开发者而言要掌握的东西也非常多,初入行的小伙伴甚至觉得这些要掌握的东西非常杂乱,其实不然!所有要学习的东西都是有内在关联的。
松哥今天就来和大家捋一捋 Java 学习路线图,一起来看看都有哪些东西需要掌握,以及要按照什么样的顺序来学习。
Java 企业级开发涉及到的技能点实际上非常多,我将其大致归为以下五类:
在这个技术栈的基础上,你可以继续选择走全栈道路或者走大数据方向。
有的小伙伴可能会纠结于要全面还是要精通某一方面,其实这个无所谓好坏,关键是要看你自己。你是想去大厂做一个某一领域的技术专家,还是想自己独当一面,自己喜欢的才是最好的。
话说回来,即使你想钻研某一方面,也不是说这些东西就不用学了,即使精通某一方面,也必然是先广泛涉猎,再慢慢确定自己的方向。
松哥大学自学 Java 的时候就是这样,当我不知道哪些东西重要哪些东西不重要的时候,我就都学,反正大学生有大把时间,我甚至连 Dreamweaver,Fireworks,Flash 三剑客都学了,甚至利用 Dreamweaver 上简陋的功能做了一个动态网站。
这些东西你说学了没用吗?其实不见得。当我学了很多之后,在未来某一天,突然就顿悟了,把这些学过的东西串起来了,有一种醍醐灌顶的感觉。
先来看我画的思维导图:
JavaSE 这块其实没啥值得说的,基础的东西很多年都没有变化。而且 JavaSE 这块网上也有很多免费教程,
很多公司,用的 Java8/9/10,实际上还是写的 JDK1.5 的代码,但是这并不意味着我们就不用学习了。Java8/9/10/11 中的一些新特性还是有必要去学习下,特别是现在 WebFlux 逐渐被人们重视,一些从 Java8 就开始萌芽的理念与技术还是很有必要掌握一下的。
先来看我画的思维导图:
作为一名 Java 工程师,数据库的重要性不言而喻,这算是基本功,我们不能老指望着 DBA,毕竟配有 DBA 的公司只是极少数。有句话叫做 “SQL 写得好,下班下得早”。
当然数据库也有很多优化方面的问题,但是在大家刚刚开始学习的时候,我其实是不建议去学习数据库优化、主从、集群、读写分离这些东西的,这些可以等到后面学习微服务的时候再去学习比较合适,在刚学习 Java 没多久的情况下,就去学习数据库优化,极有可能让你对开发这条路打退堂鼓。
先来看我画的思维导图:
学习是给自己学的,不能偷懒,所以你看我这里列出来的知识点比较多,甚至又一些看起来好像过时的技术。
有人会纠结 EasyUI 要不要学,这个有点古老。我的意见是,如果你是在校大学生,那就学,反正有时间;如果你已经工作了,现在查漏补缺,那可以结合公司的技术栈决定要不要学。
其实 EasyUI 也不能算是边缘化的东西,如果你前端不用 Vue、React 或者 Angular,EasyUI 绝对是一个无法忽视的存在,学习一下 EasyUI ,也能让我们理解整个前端的一个发展过程。
一般来说,Web 基础学完其实是可以自己做一些简单的项目的巩固一下知识点,这块网上也有很多开源项目
至于这里列出来的其他技术点,都是常规技术,
先来看我画的思维导图
这里涉及到的东西就比较多了,也是学起来最最漫长的一部分。
这里我主要说说关注的几个问题。
我们说的 SSH 一般是指 Spring、Struts2 以及 Hibernate。这三个里边,可以确认不用学习的 Struts2,如果你大学刚毕业,进入到一家公司,用 Struts2 做开发,你进去干了三年,Struts2 用的滚瓜烂熟,出来跳槽却发现没有任何优势,所以我不建议大家在 Struts2 上花时间。
至于 Hibernate ,这个我持保留态度。为什么这么说呢?
因为 Hibernate 和 Jpa 之间有着千丝万缕的联系,Spring Data Jpa 结合 Spring Boot,还是有很多公司在用,而如果你掌握了 Hibernate,在后面使用 Jpa 的时候上手很快
就我目前了解到的情况,JavaEE 项目中,RabbitMQ 和 RocketMQ 使用较多,大数据中 Kafka 用的较多,传统的满足 JMS 规范的 ActiveMQ 使用较少。因此小伙伴们可以结合这样一个实际情况选择合适的消息中间件学习顺序。
这个阶段的知识点都搞定了,做个毕设肯定是绰绰有余了,出了学校校门找个实习肯定也够用了。
先来看我画的思维导图:
这一块,Spring Boot 和 Spring Cloud 是重点,这两个又分别涉及到诸多知识点:
SpringBoot:
SpringCloud:
学习 Spring Boot 的基础依然是 SSM,不建议跳过 SSM 直接学 Spring Boot。
Spring Boot 学完之后,也可以做个项目巩固一下
当你搞定了 SSM、搞定了 Redis、搞定了中间件,你再去学习 Spring Boot 就会发现他是如此简单!
至于 Spring Cloud,虽然 Netflix 公司的几个组件已经不打算继续开源了,但是对于大家而言,我觉得还是有必要去学习一下的,毕竟也不难,花不了多少时间,而且学习这些组件可以帮助大家快速建立一个 Spring Cloud 知识体系。
出了这两大块之外,剩下的就不用我多说了。MySQL 的进阶我是建议放在这个阶段学习的,像数据优化、主从搭建、读写分离等,我建议放在这个阶段。
上面的都学完之后,你已经可以站在一个比较高的角度来看待 JavaEE 开发了。
这个时候,可以考虑自己是想走 “专” 的道路,当一个技术专家呢,还是想走全栈的道路,以后自己搞个工作室之类的,抑或是想往大数据的方向发展都是可以的。