哈喽,大家好呀,好久不见!咱依然是那个腼腆害羞内向社恐文静、唱跳rap篮球都不大行的【三婶er】
坦白地说,今天是偶然看到C站这个活动的,这个主题我颇有感触,刚学java时的场景,历历在目。所以今天就来分享一下学习方式吧,练习时长两年半,不喜勿喷哈哈哈哈哈…
【唱跳rap篮球🏀专栏】
- 一、it技术介绍
- 1.1、java是什么
- 1.2、为什么会选择java
- 二、学习前的准备工作
- 2.1、准备电脑
- 2.2、制定计划
- 2.3、学习途径
- 2.3.1、书籍学习
- 2.3.2、在线学习
- 2.4、分享学习工具
- 2.4.1、java环境(jdk)
- 2.4.2、项目版本控制(git、svn)
- 2.4.3、依赖管理(maven、gradle)
- 2.4.4、开发工具(idea)
- 2.4.5、数据库(mysql、sqlserver、oracle、redis、mongodb)
- 2.4.6、数据库连接工具(navicat)
- 2.4.7、服务器连接工具(xshell、tabby、xftp、finalshell)
- 2.4.8、容器化(docker)
- 三、学习时的具体操作
- 3.1、实际操作与理解
- 3.2.1、循序渐进学习
- 3.2.2、开散性思维
- 四、如何巩固学习
- 4.1、不懂一定要问
- 4.2、多总结、多记录、多分享
- 4.2.1、树状体系内容总结
- 4.2.2、记录异常
- 4.2.3、记录新东西
- 4.2.4、记录工具
一、it技术介绍
对于不同语言的开发者而言,大家听到最多的一句话可能就是:xxx是世界上最好的语言。
那行吧,作为主java开发程序员,咱也说一句:java是世界上最好的语言!如果有人跳进来打我膝盖,跪请各位java程序员护我周全。
偷偷告诉你,三婶儿这么说完全是因为对其它语言不大了解,不然可能也会说python、go…是世界上最好的语言。
1.1、java是什么
我们来看一下百度百科关于java的介绍。
Java 是一个通用术语,用于表示 Java 软件及其组件,包括“Java 运行时环境 (JRE)”、“Java 虚拟机 (JVM)”以及“插件”。 [1]
Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。
关于java到底是什么?不知道有没有人去研究过这个问题,并且可以很通俗的把“什么是java”给表达出来?
多数情况下,别人问你什么是java的时候,你可能想了半天不知道怎么描述,最后酝酿出来一句:java是一种编程语言。
当然,这么说完全没毛病。但是,如果你有一个非IT行业、从来没接触过编程的漂亮女朋友问你:java是什么的时候,你如何解释呢?
闭嘴吧,我没女朋友
试想下,如果你去国外旅游,周围都是老外,他们都说英语。当你和他们沟通时,是不是也要说英语?
这个时候,英语就是一个沟通的“桥梁”。你会,我也会,我懂你,咱们就能沟通!
换到编程里面也是一样的。java是一种语言,一种计算机可以识别的语言。当你用java语言编写一段程序运行时,计算机会运行程序识别你的意图,处理后返回给你想要的结果。
总的来说,java就是一种人和计算机之间沟通交流的语言。
1.2、为什么会选择java
java是我接触到的第一个编程语言,也是迄今为止使用最多的语言。
工作这么久以来,听到最多的一句就是:你当时怎么想着学计算机呀,很少见到女后端…
我说那不是怕毕业之后不好找工作嘛,都说计算机行情前景好,咱也来试试?
其实,第一次听到“java”这个词,是在2016年的秋天。
当时填报志愿确实很迷茫,家里意思是想让我报教师,老一辈的可能觉得教师行业稳定,铁饭碗。还有亲朋建议医生、空乘之类的专业。
害!现在想想,还真不知道当时为什么会先填了医学?咱就是说,填完之后就是一点也不开心,心里抵触感特别强,那也是我人生中第一次强烈意识到我不可能在医学方面发展。后来就改了志愿,换成了计算机。
作为一个一点不懂电脑的人,估计当时是觉得计算机专业毕业后好找工作吧。不过那时候java确实还没有现在这么卷。那时候头发也很茂盛…
二、学习前的准备工作
2.1、准备电脑
家人们,学习编程,首先要准备的就是电脑。不然巧妇难为无米之炊啊!电脑整上,整上!
2.2、制定计划
所谓机会都是留给有准备的人的,一点也不假。学习也是一样。
对于初学者来说,可以考虑制定适合自己的学习计划,比如:
第一天:开发环境配置
第二天:了解基本语法
第三天:对象和类
第四天:…
可以先把学习计划给罗列出来,由浅到深,循序渐进的学习。
进阶者的话,因人而异哦,根据自己的具体情况制定,这里不再过多bb了。
2.3、学习途径
2.3.1、书籍学习
虽然现在看书学习的人已经少之又少了,但书籍学习确实系统性很强,有不少好处。
书籍通常按照编程语言的结构、特点和应用场景来组织知识,使得读者可以获得体系化的学习。且书籍出版流程较为严格,每一处代码示例都是真实可行、易于理解的。尤其是java领域中技术大牛编写的书籍,更具有学习价值。
分享几本经典的Java学习书籍:《Java核心技术》、《Java编程思想》、《Java并发编程实战》。
三婶家里也有两本,哈哈哈哈哈哈。
2.3.2、在线学习
网络上有各种在线学习资源,不乏存在较多Java技术栏目,分享几个很不错的Java学习网站(不分先后)。
1、【慕课网】:https://www.imooc.com/
2、【极客时间】:https://time.geekbang.org/
3、【中国大学MOOC】:https://www.icourse163.org/
4、【CSDN学院】:https://edu.csdn.net/
5、【菜鸟教程】:https://www.runoob.com/java/java-intro.html
6、【how2j】:https://how2j.cn/
7、【程序员导航】:http://cxy521.com/
8、【bilibili】:https://www.bilibili.com/
今年AI炸裂,当然必不可少的辅助工具就是chatgpt。有好多开源的,比如https://chat.wuguokai.cn
国内的科大讯也不错:https://xinghuo.xfyun.cn/楼主内测使用,觉得还蛮不错。
2.4、分享学习工具
只学理论肯定是是不行的,得实操起来。这里分享一下常用的工具和包,中间件之类的就暂时不写了,太多了。
2.4.1、java环境(jdk)
jdk虽然已经更新到20版本了,但目前多数项目中使用的还是jdk8版本居多。楼主建议新手上路可以考虑jdk8练手,感兴趣的同学可以学习一些新版本中的特新性。
java中环境变量的配置,可以参考:https://blog.csdn.net/weixin_43770545/article/details/92140645?spm=1001.2014.3001.5501
2.4.2、项目版本控制(git、svn)
svn现在基本不怎么见使用了,较多的还是git。有一些操作工具,比如sourcetree。当然你也可以使用命令行操作,三婶就很喜欢命令行操作,很方便。
sourcetree官网:https://www.sourcetreeapp.com/
命令行操作三婶之前也有总结,可参考:https://wshanshi.blog.csdn.net/article/details/124555310
2.4.3、依赖管理(maven、gradle)
maven官网:https://maven.apache.org/
下载后记得修改配置文件中maven仓库、镜像加速。
gradle官网:https://gradle.org/
2.4.4、开发工具(idea)
idea官网:https://www.jetbrains.com/idea/
社区版本和正式版本都可以下载。基本使用的话,社区版本就可以了。
分享一下好用的插件:https://wshanshi.blog.csdn.net/article/details/91348227
2.4.5、数据库(mysql、sqlserver、oracle、redis、mongodb)
这几种数据库使用的都挺多的,大家可以根据需求选择使用。
mysql、redis、mongodb免费,中小型项目使用较多。
sqlserver、oracle收费,偏向金融性的项目使用较多,相对数据安全些。
2.4.6、数据库连接工具(navicat)
官网:https://navicat.com.cn/
2.4.7、服务器连接工具(xshell、tabby、xftp、finalshell)
这几款都是很好用的shell工具,可以实现操作服务器,以及上传下载。相比较而言强力推荐tabby,太好用啦。
tabby官网:https://tabby.sh/
tabby使用可参考:https://zhuanlan.zhihu.com/p/443550221
2.4.8、容器化(docker)
容器化形式部署、运行和管理就更不必说了,绝对是一个里程碑。dockerfile的定义、容器编排,使用特别方便。
docker官网:https://www.docker.com/
三、学习时的具体操作
学一样东西,首先要明白这个东西是什么,有什么用,怎么用。熟练了之后,再去研究怎么样能把这个东西用好,发挥它的价值。
比如这个手套,刚好用上,今天工地的砖格外烫手。
3.1、实际操作与理解
3.2.1、循序渐进学习
从基本语法开始学习,紧接着是基本数据类型,数据结构,再写一些算法、熟悉了之后开始了解面向对象、接口、框架…
初学我说不上有什么技巧,但是一定要循序渐近学习,别想一口吃成个胖子。
如果能够边学边理解,那是最好的。如果刚学的时候不大理解,也不要着急。多加练习,先熟悉起来,慢慢的后面就通了。
不怕你们笑话,楼主刚学java时,半年还没开窍,都急哭了哈哈哈哈啊哈。后来慢慢的就恍然大悟了,但是一定不要眼高手低噢,循序渐进、多加练习准没错!
可参照楼主上面分享的学习网址内容学习,加油鸭!
3.2.2、开散性思维
java刚学的时候好像是有点抽象,有些东西甚至很难理解。比如:面向对象、封装、继承、多态。
什么是对象? 当然不是现实中的那个对象(现实中你也没有女朋友啊,确实不知道对象是什么,哈哈哈哈哈哈)
其实很多情况下,编程中的一些术语,结合起现实生活中的例子,就很好理解啦。
试想下,你理想中的女朋友是什么样子的。
张三说:我喜欢长发、肤白、貌美、身高170、体重98、性格幽默古怪的女孩子…
李四说:我喜欢短发、肤白、貌美、身高160、体重98、性格可爱娇小的女孩子…
三婶说:我喜欢长得帅的、阳光开朗大男孩,给我来一大把…哈哈哈哈哈哈…
那么,回到编程里面来说,这些描述是不是可以提取出来一个抽象的对象?它包含了一些属性在里面?
举个例子,女盆友属性:
/**
* 女盆友属性
*/
@Data
public class Girlfriend {
/**
* 编号
*/
private String id;
/**
* 头发(长发、短发)
*/
private String hair;
/**
* 肤色(白、黄、黑)
*/
private String color;
/**
* 身高
*/
private Integer height;
/**
* 体重
*/
private Double weight;
/**
* 性格
*/
private String nature;
}
提取出相关属性,这就是一个对象啦。收集到的对象信息可以进行操作或存储,当我们库表中存储了多条数据信息后,也可以进行一些相关的业务操作。
比如:某海王同时拥有3个女朋友,有一天朋友问他和对象相处的怎么样?
朋友:”铁子,你和你新谈的对象相处的怎么样啊?“
他:“你问的是哪一个啊?哈哈哈哈啊哈哈…”
朋友:“身高170,长头发那个!”
他:“那个妹妹啊!相处挺好的,脾气也不错。”
在被询问的时候,某男是不是在脑海里进行了一个过滤?【身高170,并且留着长头发】的妹妹?
然后得到答案:是她啊(很像我前女友的那个)。
为什么会有“面向对象编程”的思想? 大家想一下,上面例子中某男的过滤,是不是类似编程中一个业务动作的处理?我首先收集到妹妹们的信息,存储起来。当我想去找到符合某些条件的妹妹,我就去各种条件筛选,拿到我想要的信息!
其实面向对象的“对象”,就是来源于生活,生活中每一个东西都可以抽象在编程中。
再举个例子,比方说:”水果“。提到水果,大家不乏想到:苹果、橘子、香蕉、榴莲…
如果有人问你水果是什么?你会怎么回答?你会指着苹果、橘子、香蕉、榴莲…然后告诉他这就是水果?
这么回答确实也没问题!但是,当你去水果店告诉老板帮你称两斤水果。老板肯定会问你要什么水果。因为水果只是一个抽象的统称,看不见摸不着。只有实例才是看得到的,比方说苹果、橘子、香蕉、榴莲。就是水果的一个多态体现。他们都可以被称作是水果,但你不能反过来说水果就是香蕉。
如果能够像上面这样,结合一些现实生活去理解编程,是不是就好学一些了呢?
四、如何巩固学习
4.1、不懂一定要问
学习过程中不可能一下全部理解,全面掌握。除非你是天才,哈哈哈哈哈。
当遇到问题时,不要躲避怕解决问题。可以先网上查一下资料,尝试一下自己解决。实在解决不了的,可以考虑向盆友或老师请教。
我之前带过一个实习生,写代码时抛了个异常问我。我看了一眼,就是一个常见的异常。我问他有尝试过排查解决吗,他摇了摇头…
有好多类似的同学,只看到异常了,但是不知道如何去解决异常。
这种情况下,你可以把异常信息拿网上搜一下,然后debug去看代码中为什么会出现这种情况。如果还不能解决,至少在请教别人的时候你可以大致说出问题所在,表达出你尝试了什么方法解决,仍没有生效。相信这种情况下,被请教人肯定是乐于帮助你的。
4.2、多总结、多记录、多分享
总结和记录无疑是一个好习惯。之前大学辅导员让我给学弟学妹们做个分享,我也建议他们多总结、多记录、多分享。
4.2.1、树状体系内容总结
当你学习了某块知识之后,可以边回顾边画树状体系图。树状分散总结,方便回顾、清晰明了,又加深印象。
分享两个好用的内容体系总结软件。
xmind中文网:https://xmind.cn/xmind8-pro/
gitmind官网:https://gitmind.cn/mindmapping?apptype=aps-360
如果你在学习完某块东西之后,可以完整的梳理出一个树状图。那么恭喜你,这简直泰裤辣!
4.2.2、记录异常
记录一些自己遇到的问题,踩过的坑。可以详细到异常的原因和解决方法。
当下次遇到同样的问题时,如果忘记了,还可以回顾一下。
不然到时候就会有一种:考试之前老师讲了某个题,但是你没认真听,等考试时考到了,你隐约记得之前是写在黑板右下角的那道,但就是不记得怎么解题的感觉…肠子都要悔青了…
4.2.3、记录新东西
好记性不如烂笔头,当你认真的学习了一个新东西之后,一定要记录下来。在记录的过程中,你会发现自己又深刻的学习了一遍。
4.2.4、记录工具
最后再分享几个好用的笔记软件吧,也有在线的。
【有道云笔记】:https://note.youdao.com/
【印象笔记】:https://www.yinxiang.com/
【语雀】:https://www.yuque.com/
【石墨文档】:https://shimo.im/