java该怎么学

很多人想学习java,或者正在学习java

学习一种新的知识之后,就像船已经下海,航行在一望无际的海面上,看不到起航点,也望不到想要到达的彼岸,我们会恐惧。所以我们需要知道自己的位置,这样才能有希望,同时具备应对当前位置可能出现的危险。

本文主要结合自己的经验说说java该怎么学,java各个阶段中有哪些主要任务。
每个人的成长和发展阶段都不尽相同,仅供参考,希望能给看到的你一些帮助和启发

不对之处,敬请指出

往下


〇、程序执行的概念

如果对编程零知识的可以先简单了解程序执行的一些概念

1、简单比喻,一个程序就是一本特殊的书籍,每个程序都有一个入口,也就是书的封面,只能从封面开始翻书读书(可以说我们demo的main函数就是程序入口)
2、书是一行一行读,从上往下,java程序的执行亦如此,如果某个词语有注解,我们跳过去看完注解还是会返回来继续往下读,这和调用方法类似。
3、读书的过程中我们学到知识,程序执行过程中也会有结果生成,或打印结果,或存库结果
4、书读到一半,或者读完了,我们会合上书本,回到封面。程序亦如此,有入口有出口
5、如果你反反复复一直研究,一直不合上书本,也类似程序,程序一直循环,永远不停止。


一、java用在哪里

在学习之前,我们可能也关心java用在哪里,将来的从业方向是什么。java主要的用处有几点:

1、java是后端语言
java用于开发后端程序。我们知道一半的软件都分前后端,前端用于显示与交互,后端的职责在于处理业务。显然,java主要的作用是处理业务数据。
细分起来主要包括:处理和存储用户输入的数据;提取和处理用户查询的数据;自动完成一些需要的数据处理。

2、java开发服务器程序
java是跨平台的语言,所以java程序可以运行在任意安装了jdk的系统环境中。通常后端程序都会开发成后端服务,所以java通常用于开发服务器程序。

3、做安卓软件
安卓是基于Linux的操作系统,其中源代码就是Java,市面上所有的安卓手机都是修改Java运行的


二、java的核心概念

java最本质的特征是 一切皆对象
一句话说明:一个类 生成一个对象,对象里面有属性和方法,属性存值,方法执行计算。
在java的世界里,99%的做的就两件事:对象引用对象的属性,对象调用对象的方法。

所以说在开发或者学习java的过程中,只需要带着这样的问题:
什么时候需要new一个对象,哪个对象的哪个属性可以用,哪个对象的哪个方法能计算出我现在要的结果?


三、java该怎么学

学习一种新的知识,了解他是最基本的。求同存异,每个人对新事物概念的学习过程,吸收掌握的过程都差不多。对于学习java,也有其特殊性,我的建议步骤如下:

1、概念:首先java基本概念看一遍,有个大概的整体轮廓就可以跳过。
很多人确倒在了这一步,主要原因在于太过纠缠,身陷其中,然后发现java理论知识复杂,难懂,最终放弃。其实完全没必要,高级语言侧重应用,用多了就能理解,一定要建立这样的学习思路!

2、编码:很多学习的书籍都有编程例子,可以跟着敲,运行比对结果。学java一定要上机操作,光看书不动手看一万年也没用!尽量每个知识点的代码示例都上机敲一遍。这一步骤是用实践验证理论,绑定理论与实践,加强理论知识理解与记忆,锻炼编程思维与动手能力。

3、工程:在第二点,接触的知识都是零散的,这时候需要自己去网上找一些小型的project,下载进来导入开发工具,自己调试运行,解读简单业务,调试运行,跟进代码执行步骤等。这一步骤主要是将零散的知识点相结合起来,点成面

4、项目:一个项目通常是有多个工程组合在一起,工程是面,项目就是一个立体。就代码层面,项目还包含开发框架,通讯协议,设计模式,编程规范等等。这一阶段,需要进入工作中才能正在接触以及系统地理解。但是在学习阶段还是可以做些事,比如当下流行的开发框架自己要去学习,数据库要学习,学习的思路也一样:概念–>编程–>项目


四、成长阶段

以下主要是阐述java开发过程中各个阶段的核心任务。其他的不代表不接触,不学习,有能力的可以往上一级。但是跳两级以上,我个人觉得积累的不够的话搞不定,普通人慢慢来,急不得。

1、选择阶段:
了解java的发展前景,了解java的学习难度以及自己可接受的程度,自己不喜欢不要强迫自己,编程很枯燥,没有兴趣不要硬上。

2、理解与应用:
此时已经进入正式学习了,这个阶段需要迅速了解java的大概,培养编程思维与敲代码手感,可能还遇到各种软件的安装与应用,不要心急,多查资料。循序渐进

3、入门阶段:
此时应该已经找到一份工作了,正在做java的开发,虽然还有很多不懂,但是希望保持对未知的渴望。

此时应该多学习,多了解以前认识的各种java概念,java组件在项目之中所扮演的角色,多问为什么,为什么这么用?为什么不用那个而用这个?如果这段代码我这样写会怎么样?等等问题,有疑问自己先想办法验证,可以的话做好总结与笔记记录。搞不定就向前辈寻求帮助。

现阶段主要目标是应用,不管什么东西,拿过来跑起来再说,扩大自己会用的范围,理论知识平时慢慢积累,不要想着完全理解再用,不现实。

4、初级阶段:
此时差不多已经沉淀一年半载了,此时java相关知识都已经掌握并熟悉应用,这个阶段有两个方向需要齐头并进,开发框架和业务知识。框架决定你得架构高度,业务决定你的项目质量。

现在java所有的开发都离不开框架,从早期的ssh,ssm,到现在的springboot,springcloud。好的框架能带来高效的开发和部署,也能有不错的性能。这个阶段一定要主动去理解框架的核心功能,看看源码,多比对,知道什么时候能用什么时候不可以用。

软件为业务服务,在工作中,实现不了相关功能,实现不了业务,满足不了需求的软件就等于白做。
在java之路上,最先遇到瓶颈的不是技术,而是业务!不熟悉业务导致自己没有开发思路,糊里糊涂地就把事情做完了,做完了之后都不知道自己做了什么,或者说你做的这个东西在整体属于什么位置,起到什么作用,带来什么影响。这些不清醒,就不要谈跟高层次的架构设计了。

所以说这个阶段主攻框架和业务,而且业务>框架

之前是会用,现在要求能用好

5、中级阶段:
这个阶段继续提升业务转化技术的能力,强化技术和业务的结合。就是说,你知道这个业务是什么了,他需要什么也清楚了。但是一个关键的问题是,如何实现?

一定要突破现有的思维去思考,虽然当前已经有了一个解决方案,但是自己应该多想想,换不同的角度去想其他的方案,然后对比,权衡,验证,如果方案更优,就提出来讨论,能用就用。能对业务和技术多维度结合思考,这样能提升自己的思维能力和业务分析能力。

技术为业务服务,业务促进技术提升。

这个阶段还有一个需要注意的,团队中引入一种新的技术,组件,或者方案调整,不管自己有没有参与,自己都要带入进去思考,就是说这个东西处于架构中的什么位置,为什么用,变更之后会带来什么影响,总之,不管遇到什么问题,自己要主动站在整体的角度去分析理解,不要觉得不是自己的工作,懒得动。记住!每一次学习的机会都不应该放过。

这个阶段是提升整体观,多维度思维。

5、高级阶段:
这个阶段应该具备整体需求分析和架构设计能力。
①、接到一个项目,首先理清需求,要把需求细化,拆分,评估时间
②、需求讨论好之后,开始准备技术选型,包括项目服务网路架构,开发框架,数据库,基础组件,中间件,开放能力的协议,整个架构的扩展性,边界,承载能力,性能瓶颈估算
③、设计的架构一定要解耦,各个独立模块之间不能耦合,不然今后扩展一定受阻
④、要有一定的预见性。根据需求分析,知道那些需求今后很大可能会变更,提前做好架构上相关的后手,避免今后被动
⑤、落实好编码规范,这个一乱,后面就很难有时间修复了,前期务必盯好

这个阶段是设计能力,不仅设计当前,还要有未来的整体把控。把未来可能出现的问题提前解决,禁止现在未解决问题扩散到未来


五、java开发过程中需要注意

1、多思考,多总结

2、避免重复造轮子
自己搭的项目怎么折腾都行,但是在公司开发过程中一定要时刻留意,当自己加入一个新的东西的时候一定要在项目中搜索以下是否已经有可用的,经常犯的类有:工具类,基类,中间件类,接口类
自己造不仅浪费时间,还冗余代码,被发现后返工累的也是自己

3、严格遵守编码规范
进一个新的项目,一定要问清楚当前的编码规范,不要按照自己以往的经验,每个公司的规范都有差异。

4、先验证再提问
就是有疑问时,不要轻易问别人,自己查资料验证解决的问题收获的果实远远大于直接问别人。当然,一个问题自己也不能纠缠太久,简单问题搞几小时都出不来那就得不偿失。

5、学会调试
我愿称之为编程之光,程序的执行对于我们来讲,看不见,摸不着。如果只是通过一个结果来判断程序执行是否正确,中间过程全靠推理,这样的学习方式对绝大部分人都是灾难。
但是调试让我们可以清楚看到程序执行的每一步,每一步的变化都了然于心,不管是学习也好,找问题也罢,debug绝对是功不可没。所以,一定要很好利用这个功能。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cy谭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值