如何避免闭门造车,高效学习Java编程?
Hello!这里是W3Cschool编程狮的小狮妹。
Java是一门非常流行和实用的编程语言,很多人想要学习Java,但是却不知道该如何学习。有些人采用了闭门造车的学习方法,就是按照教科书上的内容,从头到尾地学习Java的各种语法、API、参数、对象等等,然后再学习数据库和Spring Boot框架等技术。
这种学习方法看似全面,但是实际上很低效,因为它脱离了Java开发项目的实际需求。用这种方式学习Java,可能会花费很多时间,但是学完后却发现自己不能做出真正的Java项目,也不能通过面试找到工作。
那么,如何避免闭门造车呢?如何学习Java才能高效地达到找工作或做项目的目标呢?这里小狮妹要给你介绍一种从职位介绍到面试实战的高效学习法。这种学习法的核心思想就是:先了解需求,再精准学习。
在开始学习Java之前,你要先明确自己的学习目标和方向。你要知道你为什么要学Java,你想用Java做什么,你想找什么样的工作。这样你才能有针对性地选择合适的学习资源和方法。而最直接最有效的方式,就是去看职位介绍。
职位介绍是企业发布的招聘信息,它可以告诉你企业需要什么样的Java开发人员,他们要求掌握哪些技能和知识,他们提供什么样的薪资和福利。通过看职位介绍,你可以了解市场上对Java开发人员的需求和水平,并根据自己的情况和目标选择合适的职位申请。
比如说,如果你想做后端开发,那么你就要关注后端开发相关的职位介绍,并了解他们需要掌握哪些技术栈和框架;如果你想做全栈开发,那么你就要关注全栈开发相关的职位介绍,并了解他们需要掌握哪些前端和后端技术。
看职位介绍,你还可以知道自己需要达到什么样的水平才能找到工作,以及需要学习哪些内容才能达到这个水平。比如说,你看到一个后端开发的职位介绍,他们要求你掌握Java核心语言、数据库、Spring Boot框架等技能,并且能够使用Spring Boot和JPA实现增删改查功能。
那么你就知道,你的学习目标就是学会这些技能,并且能够用这些技能做出一个增删改查的项目。这样,你就有了一个明确的学习方向和计划。
在确定了学习目标和方向后,你就要开始学习Java了。但是,你不要盲目地去学习所有的Java知识,而要抓住主干,围绕主干学技术。什么是主干?主干就是你的学习目标所需要的核心技能和知识。什么是围绕主干?围绕主干就是在学习主干的过程中,遇到不懂的或者不熟悉的知识点,再去查阅或者补充。
比如说,你的学习目标是使用Spring Boot和JPA实现增删改查功能。那么你的主干就是Spring Boot和JPA这两个框架。你要把这两个框架的基本概念、原理、用法等内容学透彻,掌握它们的核心功能和特性。
在学习这两个框架的过程中,你可能会遇到一些Java语言或者数据库方面的问题,比如Java集合、Java反射、SQL语句等。这些问题就是围绕主干的知识点。你不需要系统地去学习它们,只需要在遇到不懂的时候,去查阅相关的资料或者教程,理解它们的含义和用法即可。
这样做的好处是你可以避免学习大量用不到的知识,节省时间和精力;同时,你也可以保证自己掌握了最重要最核心的知识,提高自己的技能水平。
在抓住主干围绕主干学技术后,你已经掌握了一定的Java知识和技能。但是,这还不够。你还需要通过案例全面整合技能。什么是案例?案例就是一个具体的项目需求或者场景,它可以让你把你所学的知识和技能运用到实际中去,检验自己的掌握程度和解决问题的能力。什么是全面整合?全面整合就是指在做案例时,要尽可能地涉及到你所学的所有知识点和技能点,并且要注意它们之间的关联和协调。
比如你要做一个增删改查功能的案例。那么你就要考虑以下几个方面:
- 数据库设计:你要根据需求设计合适的数据库表结构,并且使用SQL语句创建表和插入数据。
- 实体类设计:你要根据数据库表结构设计对应的Java实体类,并且使用JPA注解标注它们之间的映射关系。
- 业务层设计:你要根据需求设计合适的业务逻辑,并且使用Spring Boot提供的依赖注入和自动配置功能,将实体类、数据访问层和控制层等组件整合起来。
- 数据访问层设计:你要根据需求设计合适的数据访问接口,并且使用JPA提供的简化方法或者自定义查询语句,实现对数据库的增删改查操作。
- 控制层设计:你要根据需求设计合适的控制器类,并且使用Spring Boot提供的注解和模板引擎,实现对用户请求的接收和响应,以及对页面的渲染和跳转。
- 测试和调试:你要使用Spring Boot提供的测试工具和日志工具,对你的代码进行单元测试和集成测试,并且及时发现和修复错误。
这样一来,你就可以把你所学的Java知识和技能全面地整合起来,形成一个完整的项目。这样,你就可以检验自己是否真正掌握了Java开发的技能,以及是否能够解决实际的问题。
在通过案例全面整合技能后,你已经拥有了一个可以展示的Java项目。但是,这还不够。你还需要参加面试实战。什么是面试实战?面试实战就是指你要把自己当成一个真正的求职者,去参加一些真实或者模拟的Java开发岗位的面试。通过面试实战,你可以进一步提升自己的Java知识和技能,同时也可以锻炼自己的沟通能力和应变能力。
为什么要参加面试实战呢?因为面试是你找工作或者做项目的最后一关,也是最重要的一关。如果你不能通过面试,那么你之前所学的所有知识和技能都没有用。而且,面试不仅仅是考察你的知识和技能,还考察你的思维方式、解决问题的方法、表达能力、团队协作能力等方面。所以,你要在面试前做好充分的准备,才能有更大的机会成功。
那么,如何参加面试实战呢?有以下几个建议:
- 投简历:你要根据自己的情况和目标,选择合适的职位投递简历。你要确保你的简历简洁明了、突出重点、符合职位要求,并且附上你做过的项目或者作品。
- 面试准备:在收到面试邀请后,你要根据企业和职位的情况,做好相关的准备工作。比如说,了解企业的背景和业务、复习相关的知识点和技能点、准备一些常见或者可能会被问到的问题和答案等。
- 面试过程:在面试过程中,你要保持自信和礼貌,积极主动地回答问题或者展示项目,并且注意倾听和沟通。如果遇到不懂或者不会的问题,不要慌张或者撒谎,而要诚实地承认,并且尝试用自己已有的知识或者思路去解决或者推测。
- 面试反馈:在面试结束后,你要及时地向企业或者面试官表示感谢,并且根据面试的情况,总结自己的优点和不足,找出自己的学习方向和改进方法。
通过参加面试实战,你可以实际感受到Java开发的工作环境和要求,并且可以根据自己的表现和反馈,调整自己的学习计划和方法,从而更快地提升自己的Java水平。
以上就是小狮妹给你介绍的一种从职位介绍到面试实战的高效学习法。这种学习法可以帮助你避免闭门造车,更有针对性和效率地学习Java。
大学四年,总结出一套合小白的Java自学路线和方法
无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班。报班通常太费钱,时间又不自由;自学又不知道如何下手,担心自己坚持不下来。怎么办呢?
本文将解答你自学Java的N种问题:
你适不适合自学Java呢?
如何自学Java呢?
有没有靠谱的Java自学资料推荐?
怎样让自己看到进步,坚持下来?
……
以上问题,课程中我都会呕心给你梳理答案,赶快开始学习吧。
在自学前你可能会因为自身的条件有很多困惑和疑虑,不清楚自己是否适合自学Java。下面我们来做个测验,来检测一下你是否适合自学Java。
第一道题:你对学习Java的信念有多强?
最低分0分,最高分5分,你给自己打几分?
对学习Java抱有坚定的信念是学习Java的必备条件,如果你给自己的打分小于等于2.5分,建议你直接放弃学习Java吧。如果你给自己的打分大于2.5分(越高越好),恭喜你,第一关的考验过了!
第二道题:你学Java的目的是兴趣提升 or 就业?
如果你学习Java只是兴趣提升,那么你无论是自学或者报班怎么学都是适合的,因为你不差时间。那么后面的考验题你也可以直接跳过,看后面的干货。
但如果你是为了就业而学习Java,那对学习Java效果和时间都有一定要求,还要满足社会岗位要求。建议你好好考虑报班还是自学。
如果你大于30岁的话,我已经不推荐你学习Java了,一方面30岁后学习能力和精力堪忧,另一方面30岁的Java初级小白几乎找不到工作。
但如果你小于30岁的话,那你的客观条件还是可以学习Java的。剩下的就要考验你的自控力和毅力了。
第三道题:最低分0分,最高分5分,你给自己的自控力和毅力打几分?
如果你的打分小于3分,我建议你报班学习Java,自学不适合你。(如果你不能确定自己的自控力水平,你也可以去网上找一些自控力测试的问卷。)
但如果你自控力较强、个人时间较多、热爱独立思考钻研的话,那么恭喜你,我认为你是非常适合自学的。如果你也选择自学,那么本课程的内容你可以好好学习借鉴,相信你一定可以找到一条适合自己的道路!
最后你也许会问,性别、英语水平、数学水平、是否为科班等是否影响自学Java,如果你上面的测试都通过了,这些其实都是一些非关键性的影响因素。
我们用一张图总结一下以上的所有问题:
虽然性别、英语水平、数学水平、是否为计算机专业都等不是关键因素,但当你是女孩子,英语、数学水平较差,非计算机专业相对于男孩子,英语、数学水平较好的计算机专业还是会有一些影响,为了达到同样的结果可能需要付出更多的努力。
我们这里拿计算机专业和非计算机专业比较一下。
计算机专业和非计算机专业自学Java的区别?
虽然说计算机主要靠自学,但是计算机专业的学生相比非计算机还是有很大优势的,大部分计算机专业是有开设Java这门课程的,可以让这些学生在学习Java的道路上快速度过\”冷启动\”;还有一些重要的基础课,例如数据结构、操作系统、数据库、计算机网络等课程能够帮助学生更深入地了解计算机,学习起Java语言也能有更深层次地理解。
而非计算机专业在自学Java时,会因为有原专业课程、作业的限制,学习时间相比计算机专业学生少了不少,但这些问题是可以被克服解决的,可以多花一些课余时间、周末时间,学习练习Java,也可蹭一蹭计算机专业开设的Java课程,多与计算机相关专业同学交流碰撞。自学Java的心态也很重要,不要因为被本专业课程拖累而埋怨,要乐观地去面对学习上的困难,有长远的眼光,阳光总在风雨后!
总的来说,计算机专业自学Java资源、时间更多,更需注重自学的方法和内容;而非计算机条件较难,除注重方法和内容之外,重要的是要坚持在百忙之中挤出很多时间留给Java,这对毅力是非常大的考验。
当你适合自学的时候,那么你就要寻求好的方法提高自学Java的效率,如何做呢?看看下面内容吧~
这里我总结了三大点,分别从认识、方法、反馈角度来写,其中一定有适合你的方案!
自学Java前,要对Java和Java体系知识有一定认识,心中有个大概的轮廓去学习,方能更踏实。通过几个问题了解Java。
什么是Java?
Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种跑在JVM上的语言,Java编译后是字节码,而JVM会把这些字节码解释成机器码,然后做出相应的动作。
Java能干什么?
Java当前用的较多的就是做后端开发、大数据开发、安卓开发,这是当前Java技术栈较为热门的三种岗位,其中以Java后端的市场需求最大。Java也可以做桌面应用开发、游戏开发,但需求相对较少。
国内大厂,像阿里巴巴、美团、京东、拼多多等,使用的主要语言都是Java,大部分中小企业为了成熟稳定也选择Java作为后端开发语言。此外,很多著名的中间件是由Java编写的,例如:Elasticsearch、RocketMQ、Hadoop等。
Java入门部分:
- JDK、IDEA安装,第一个HelloWorld
- 基础内容:输入输出、命名规范、注释
- 数据类型:基础数据类型(及其包装类)、引用类型
- 修饰符:访问修饰符、非访问修饰符
- 运算符:赋值、算数、自增自减、比较、逻辑、位、三元运算符及其优先级
- 控制流程:条件判断、循环语句
- 数组、字符型
- 类与对象
- 面向对象三大特征:继承、封装、多态
- 日期、正则、大数运算(简单了解)
Java进阶部分:
- IO常见文件操作
- 集合框架:ArrayList、LinkedList、HashMap、HashSet、ArrayDeque等
- 异常处理
- 泛型
- JDBC
- 网络编程
- Java8新特性(Lambda)
- 反射、注解(有点难)
- 多线程、高并发
- 23种设计模式
- 树、红黑树、B树、散列、堆、图等
- 算法:十大排序、二分查找、分治、贪心算法、位运算、回溯、动态规划、搜索算法(bfs、dfs)、最短路径(Dijkstra、Floyd)、最小生成树(Prim、Kruskal)、并查集、KMP等算法
- HTML、JavaScript、CSS
- XML、JSON
- Tomcat
- Servlet/JSP(以Servlet为主)
- JQuery、Ajax
- MVC
- Cookie、Session
- 过滤器、监听器
- 文件上传下载(Servlet3.0)
- Linux
- ORM框架:Mybatis
- Spring全家桶:Spring、SpringMVC、SpringBoot
- 安全框架:Shiro、Spring Security(可选一种先学)
- 其他框架:Swagger(在线接口)、Log4j2(日志)、Quartz(定时)等
- 微服务:SpringCloud、Dubbo等
- 版本控制:Git、SVN
- 包管理:Maven、Gradle
- 关系型数据库:MySQL、Oracle等
- 非关系型数据库:Redis(缓存)、Memcached(缓存)、MongoDB(文档型)等
- 搜索引擎:Elasticsearch、Solr等
- 消息队列:RocketMQ、ActiveMQ、RabbitMQ、Kafka等
- Web服务器:Apache、 Nginx
- 容器:Docker、K8S
- 大数据:Hadoop、Spark、Strom、Flink等
当然,上面只是罗列了大部分知识点,还有很多知识比如日志分析监控(ELK)、持续集成、分库分表等也都是热门技术,Java后端技术体系庞大。这些内容可以根据你的工作或者兴趣,选择性深入学习。
自学Java一般有书籍、视频、博客等学习资料,这里主要讲解三者在自学Java中的异同点。
看书是最为传统的学习方式,我们从小到大大部分的自学知识是通过看书来获得的,所以可能很多人都喜欢和适应这种方式。书籍具有严谨、体系完整等特点,并且纸质的内容来回翻阅在回顾的时候也更便捷。
但看书也有一些缺点:可能分不清主次,在学习Java的时候其实是有侧重点的,而书上可能在这方面并不会有太多的介绍和标注,并且一些冷门淘汰知识可以不用学习(例如Java Swing部分);有些内容即使作者写得很棒了,但可能会因为案例、解释较少不能完全理解(尤其是小白)。
比起书籍,更多人愿意看视频自学Java,因为看书时大部分人会觉得比较枯燥。但是视频就不一样了,视频中老师们通常会边敲边讲解,更易于知识点的理解,并且人是感性动物,看视频就如同与老师交流,好的老师会让学习效率直接翻倍。
看视频当然也会有些缺点,视频时间较长较多,很难快速回顾学过的知识或者快速浏览章节内容,所以有可能会浪费一点学习的时间。
博客是程序员必不可少的学习资源,近些年高质量博客、文章也越来越多。这种博客文章阅读比较方便,内容选择也比较丰富,好的博客图文并茂生动形象非常有助于理解记忆,并且博客在代码拷贝学习方面更占优势。
看博客也有一些缺点:比如博客比较碎片化,体系不太完整。还有博客质量参差不齐差距较大,甚至有的博客还出现较大的错误,所以挑选好的博客是一大挑战。
总的来说,系统自学Java主力军还是 看视频和看书 ,可以以看视频为主,看书为辅,遇到疑难点不理解的可以通过搜索相关博客多看文章进行学习吸收。
图文类的教程网站:
菜鸟教程:https://www.runoob.com/java/java-tutorial.html 教程免费,适合基础入门
W3Cschool:https://www.w3cschool.cn/ 教程免费,适合基础入门
易百教程:https://www.yiibai.com/ 教程免费,适合基础入门
How2j: https://how2j.cn/ Java基础到高级,还有各种框架、中间件教程
回车课堂:https://ke.boxuegu.com/ 以关卡形式教学,从基础到高级,文章内容质量比较高
书栈网:https://www.bookstack.cn/ 免费的在线电子书、笔记、文档网站
还有其他免费图文教程、个人站点的例如importNew ,我要自学网等也可看看。
刷题网站
力扣:https://leetcode-cn.com/problemset/all/
牛客:https://www.nowcoder.com/
适用ACM选手的一些刷题网站:杭电oj、 Codeforce、 Vjudge 、Atcoder
Java开发也要刷题吗?那是肯定的,找工作无论大厂小厂(尤其大厂)避免不了笔试题,力扣和牛客上都有剑指offer,建议刷2-3遍,力扣hot100一定要刷一下,如果冲击大厂那一定要刷200道以上才行。
推荐书籍
自学Java我推荐的书籍为《Java从入门到精通》,有案例、代码跟着学很容易懂。
当然被业界称为为四大名著书籍质量也不错:
《JAVA语言程序设计》—-初级
《JAVA核心技术》卷I—-初级、《JAVA核心技术》卷II—-中级
《JAVA编程思想》—-初级~中级
《Effective Java》—-中级
在跟着书籍学习的时候,有困难的内容也可以先放一放,还有Java Swing等窗口应用部分也可跳过。这些书不需要全买,有一本工具书就足够了。
学习很容易遗忘,因此要时常回顾。不推荐视频作为长期回顾的方法,更推荐博客、纸质书回顾,因为它们可以快速定位,很多内容看一遍就想起来了。
除了回顾以外,交流可能是另一种锁住知识的好方法了,通过交流倾听别人的意见,能深入思考,加深对知识的理解。交流的方式和途径有很多
和身边人交流:最方便和高效的交流方式就是和身边同学、舍友、一起学习的人进行交流,一起学习进步共享学习的心得;
社群论坛交流:最大众化的就是添加一些QQ、微信的技术交流群或者在一些问答论坛交流,群中或者论坛中会有不少大神或者志同道合的人能够帮到你。作为技术人加几个技术社群、多逛技术论坛还是很有必要的。
当然还有一种方式并不一定适合所有人,就是和\”自己\”交流,将自己的学习内容重难点以笔记、文章形式输出出来,虽然这会耗费大量精力和时间,但这不断思考、优化、写的过程会使你对知识印象更深刻。
上面已经介绍了高效自学Java的关键点,下面来推荐实用的Java自学路径。
这个路径是我为你呕血整理而成,它结合我个人的自学经历与大牛的学习建议,避免了学习的坑。路径分为四部分:
- Java基础学习阶段
- JavaWeb学习阶段
- 框架学习阶段
- 自我提升阶段
学到第三阶段,就达到初级程序员的水平,可以找工作了。第四阶段——自我提升阶段——里的知识是Java高级和框架两部分里的需要深入学习的知识,你可以一边工作一边提升,其他内容是。
这里我推荐的自学路径,以视频为主。因为Java路径中的各个阶段相对独立,不必追求一家视频,但同一阶段建议看一家视频。
前面的内容学起来相对简单,是自学的核心内容,但是度过初期要学什么也要有个大概的了解,这里简单介绍一下并推荐部分书籍。
- Java并发编程:《Java并发编程实战》
- JVM:《深入理解JVM虚拟机》
- MySQL:《MySQL技术内幕》
- 23种设计模式:《大话设计模式》
- 数据结构与算法:《数据结构与算法分析Java语言描述》(机械出版社黑皮书),坚持刷力扣
- 操作系统、计算机网络
- JDK源码、框架源码
- Redis、MQ等主流中间件
- 大数据、分布式、微服务、容器等部分
这部分的学习可能比起前面会枯燥一些,但想要变强突破初级的瓶颈就得沉得住气,静下心来学习。
在自学Java前或者自学中你会不会有这样的疑惑:
自学Java,学多久可以找到工作?
进大厂和进中小公司自学Java的侧重点有区别吗?
为什么学了那么久还只会“Hello World” ?
编程能力从什么时候开始突飞猛进?
以上选项无关对错,让我慢慢给你唠~
1 自学Java,学多久可以找到工作?
如果是小白的话,每天保证8小时以上的学习时间,达到Java初级程序员的水平最快也要6个月。前5个月正常学习Java技术,最后一个月准备简历以及面试。Java面试非常重要,要找一些面经将面试常考的问题搞明白。
2 进大厂和进中小公司自学Java的侧重点有区别吗?
大厂更重基础,需要你对学习的Java内容有透彻地理解,以及学习和理解数据结构与算法、操作系统、计算机网络、设计模式。而小厂更重项目和框架的使用。因此不同的定位,决定了在学习和面试准备的时候要有不同的侧重点。
还要提一点,大厂都注重编程能力,会笔试算法题,对应届生的要求更高,所以如果有条件的话一定要把剑指offer刷2-3遍,力扣最好能刷100题以上(学生的话刷200题以上)。
3 为什么学了那么久还只会“Hello World” ?
学那么久只会\”Hello World\”就是因为只看不练或者练少了。很多人在学习时眼高手低,不去敲代码或者只是copy一下执行,到后面碰到有难度的代码,就发现自己啥都不会。
解决这个问题一方面是学习途中遇到的案例都要动手敲;另一方面就是要刷题巩固,因为跟着案例,逻辑上还是有所依赖,但刷题时必须要自己充分思考才能通过。
所以自学Java,要一步一个脚印,每部分的案例都要动手去实现,并在实现的基础上去巩固和创新。
4 编程能力从什么时候开始突飞猛进?
编程能力的进步靠练习,一般突飞猛进会有两个阶段。
第一个突飞猛进就是学完Java基础部分。刷了100题左右,这时候遇到简单逻辑题都可以轻松解决,自己的逻辑能力、编程能力都有不错的提升,你会觉得自学Java这么久,努力没白费。
第二个突飞猛进的体会就是独立完成一两个项目的后端模块时。从搭建项目、到MVC分层编写业务逻辑代码会让学到的知识真正应用起来,自己会有点窃喜:哇,我自己也能写项目啦!这时候就是编程能力的第二次突飞猛进。
当然,后面可能也会因为一些其他原因让自己再次突飞猛进,但总的来说,想要突飞猛进,就要在短期内高强度学习、高强度敲代码。
如果你觉得这篇文章对你有用,那么请你不要吝啬你的点赞收藏和关注!
零基础学习Java的小伙伴,在遇到以上任何的问题,或者是学习方法,学习效率,学习路线,学习教程等问题,都可以关注我并私信我发送 “ 编程 ” ,我拉你来我的十年Java学习群,对自己学习Java有帮助!
最新学习java的好评网站(从入门到面试)(不止java)
首先重磅编程导航是鹅厂程序员鱼皮自创的网站,里面各种各样的资源全都有,java,python等。还有分门别类的学习书籍(PDF)。都是免费编程导航
自学java必备网站,网站包含有算法、计算机基础、数据库、java、系统设计、面向对象、编码实践全是学习java的干货知识,没有废话!
CS-Notes网址链接
类似于一个程序员的今日头条,带你了解程序员国际新闻里面还有各式各样的语言教程不过我喜欢的是它里面的码农工具:MD5加密、xml、json格式转化等等,有兴趣可以自己去看一看
码农网链接地址
如果你想要的看视频系统的学习的话,蓝桥云客或许是一个不错的选择
蓝桥云客链接地址
java程序员还要学习一些前端知识,菜鸟教程真的推荐,相信大家都知道这个网站,里面有各种各样的教程,关键的是里面还有参考手册妈妈再也不用担心我找不到文档了
菜鸟教程链接
程序员的梦工厂。这是很多大学生魂牵梦绕的自学网站,上面学习视频一套全,这里我就不多介绍了。
慕课网链接地址
良心的java免费学习网址,从一个视频,demo做起。一点一点徐徐渐进带你从入门到入土。
How2J的java教程地址
学习前端的时候遇到不会的需要查文档,上W3school!
W3school链接地址
学习了那么多知识,是时候去面试试一试了面试神器网址,谁看谁知道JavaGuide网址
刷算法不知从何下手可以去这个网站看一看,真的可以代码随想录链接
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。