25届_Lyy 卍4678卍

学习规划(2022.4.10)

你这个,相当于是有一点 Python 基础的零基础选手了,不过现在大一,时间还多,大一大二多花时间在打基础上吧。

首先就是先把 Java 学好,之后学数据结构这些,暂时不给你安排太多,就先安排 Java 和算法的学习吧,后面根据你的学习速度在安排其他的。具体安排如下:

1、先学 Java基础,可以把练习跟着好好做一下,学完 Java 应该需要一些时间了,学完 Java 基础就继续学 Java进阶,这两门课讲的很细,可以好好跟着学。

2、之后开始学习 数据结构与算法,这是一门难又非常重要的课程(找好一点公司的必备课程),我就先给你安排这么多。

咱们的课程大纲看这里:所有课程大纲入口,另外,如果你对前端 html,js 这些感兴趣的话,想基础也是可以滴,里面有对应的课程。

然后学习的时候,记得每周来打卡下学习进度,比如可以参考他们的:24与25届做的比较好的成员示例

每周打卡

第一周(4.10-4.17)
Java基础(1-17)
前面的知识点都学了,只有程序控制结构会稍微难一点,需要多花点时间上手练一下。一些点习题还没有来得及做。老师在讲课中提到有可能会遇到的面试题(76,64集)还没有整理。下个星期应该会学得慢一点,还得分一部分时间出来给线性代数和英语的复习。

第二周(4.17-4.24)
Java基础(17-27)
这个星期学了很多很重要的东西,几个经典的递归案例还没有做,应该有点难度。数组,类与对象,方法,克隆与递归。这些听课都听懂了,难度也还能接受,就是要多回顾才能更熟悉。下个星期,应该能学到IDEA入门。

第三周(4.25-5.1)
Java基础(28-36)
1.感觉这个星期学了挺多东西的,但是好多的练习题都还拖着没有做。
2.完成了 可变参数与作用域,构造器与对象创建,this关键字,这些细碎的知识点都是围绕方法来讲的。然后超前完成了任务。除了学了IDEA入门,还有包与访问修饰符,封装与继承(重点),super关键字,方法的重写。只要把核心的原理弄懂了,理解起来还是挺容易的。
3.预计下个星期完成Java基础的学习,尽量完成练习题。
4.打算看看Java核心卷1.

第四周(5.2-5.8)
Java基础(37-40)
1.这个星期感觉状态没有之前的状态好。一个原因是在准备学校的线性代数开始,抽出的时间变少了。第二个原因是感觉学到多态的时候不知道哪一个点没有get到,卡住了。导致心态崩了。不过还好内心比较强大,返回多看了几遍,在加上配合《Java核心卷1》看了继承多态那一张,印象比之前深多了。

2.之后又往后面,学到Object类的时候,跟着老师看了几个方法的源码。初次看源码,真的头都大了,有点抗拒,太大一堆了吧。后来逼着自己多看了几遍,发现好像不需要全部每个细节都理解的很到位。只用把关键的理解到,用法知道就行了。

3.目前Java基础的视频学完了,不过还有些项目和练习题还没有做,动手能力还差了点。打算全部都要自己动手过一遍,不然整个学习都是虚的。分装,继承,多态是重点,就从后面往前做。

4.如果全部都做练习题太枯燥的话,就看情况往后学Java进阶。

第五周(5.9-5.15)
Java进阶(1-6)
1.这个星期的学习状态还不错。学习了很多在Java基础中没有学过的概念,但是和Java基础中老师讲到的Java的三大特性:封装,继承,多态联系起来的。

2.学习了类变量与类方法,在不用创建实例的情况下就调用类方法。学习了代码块,单例设计模式,final关键字,抽象类,接口。其中首次接触到了设计模式,我觉得很有意思,可以通过更简便的设计实现需求,挺有趣的。还有接口编程,和继承有点类似,但是可以实现多个接口,很巧妙。

3.我觉得很神奇的是,有时候在学习新知识的时候,脑袋经常卡壳,突然想不起以前学过的知识点了。然后放一放,没想到过一会,突然灵光一闪就想出来了。好像也没那么害怕自己忘记知识点了,没什么大不了的,忘记了就重新学或者百度,拣起来还是很快的,知识都是要经过沉淀才会变成自己的。

第六周(5.16-5.22)
Java进阶(7-9)
1.这个星期忙着准备学校的期末考试,所以抽出的时间有点少。其中大部分用来学习了四种内部类。局部内部类,匿名内部类,成员内部类以及静态内部类。重点以及稍微难理解就是匿名内部类。此类没有名字同时还是一个对象,但实际上在jdk底层系统是分配了名字的,只是我们看不到。局部内部类是定义在方法体或者代码块中的,作用在方法体或者代码块中。

2.还学习了枚举。通过枚举来定义包含一组有限的特定的对象。学习了自定义类实现枚举,使用enum关键字实现枚举。其中关键字实现的枚举提高了代码可读性。

3.简单的了解了三种注解,和四种元注解。

第七-八周(5.23-6.5)
Java进阶(11-19)
1.中间有一个星期一直拖着没更新,合着这个星期的一起总结了。上个星期主要是学了 异常处理机制,两种方法:try-catch-finally和throw二选其一。
2.本周主要的学习是:把常用类 全部学习完了。常用类真的很多,他们的方法也是真的多。不过凡事都是有重点的,包装类Integer类比较重要,其中学到了拆箱与装箱,其他的包装类也类似。
3.常用类中String类很重要,学习了创建String对象的两种方式,从本质上是不同的,做了很多的练习题(老师说是经典的面试题),我觉得对理解挺有帮助的,可以二刷。在String类的基础上还学了StringBuffer和StringBuilder,String和StringBuffer的转换,StringBuffer,StringBuilder的常用方法差不多。这三者的区别与选择。
4.其他的常用类:Math类,Arrays类,System类,BigInteger和BigDecimal类,日期类。主要是了解一下这些类的常用方法,都比较简单,值得一说的是Arrays类的sort排序。在看源码时,该方法体现了接口编程+动态绑定+匿名内部类,老师还用讲了一个冒泡排序+定制排序的例子,有一点像之前的那种设计模式,很巧妙。
5.因为这一章的类非常的多,涉及的方法,接口,字段等就更不用说了,那就需要自己看类图(Diagrams-ShowDiagram)
6.最后,给朋友们提个醒,夏天已经来了。千万不要贪凉,在很热的情况下,去插很凉水,容易得湿热型的湿疹。最近我的湿疹就爆发了,太痛苦了,到现在都还没有根治。

第9-11周(6.6-6.24)
Java进阶(20-22)
1.学了集合,了解了collection接口的基本方法,三种遍历方式。list接口常用的方法和遍历方式。

2.比较重要的是ArrayList的底层源码分析,是重点也是难点。刚开始的时候看老师分析,看起来挺简单,后来自上手DeBug发现了一些问题,最后还是解决了,对源码的理解更上了一个台阶。接着学了Vector和LinkedList源码的分析和解读。主要是认真听老师讲然后自己上手DeBug,才能更深的理解源码。HashSet底层主要是hashMap,hashMap由数组和链表组成。

3.之前在学校,大多数时间留给了期末考试。学习也是断断续续的,也没有做到每周更新。现在终于放假了,可以好好学习了,计划这个暑假就把Java学习完,加复习巩固。数据结构与算法尽量学完,还要学一下C语言(学校要求)。

第12-14周(6.25-7.17)
最近终于把集合的所有内容学习完了,集合部分确实有点难,再加上现在放假了学习有点不及集中,这点确实是要好好反思了。
集合总结:
1.实现collection接口(单列)
允许重复:List

增删多用LinkedList,LinkedList底层维护了双向链表(链表由一个个节点组成,即Node),可以添加任意元素(元素可以重复),包括null,但是线程不安全,没有实现同步。
改查多用ArrayList,ArrayList维护了一个Object
类型的数组elememntData(即是由数组来实现数据存储的)创建对象时,若使用无参构造器扩容机制:ArrayList(),数组elementData由0——10——10×1.5 往后以此类推。若使用有参构造器:ArrayList(int),初始容量为指定的大小,扩容为原来的1.5倍
不允许重复:Set,没有索引=不能通过普通的for循环来进行遍历。
无序HashSet
排序TreeSet:
插入和取出的顺序一致LinkedHashSet
:底层是LinkedHashMap的底层是HashMa
2.实现map接口(双列)
键无序HashMap:
键排序TreeMap:
键插入和取出顺序一致LinkedHashMap
读取文件Properties
其他:Vector底层结构为 可变数组Object[],与ArrayList相比,安全但效率不高(做了线程同步,每个方法都会做安全校验),扩容机制和ArrayList稍微不同

第15周(7.18-7.24)
Java进阶:泛型学完了+练习
数据结构(1-4):线性查找,选择排序,插入排序。
在学习数据结构的时候,泛型用的很多,相当于复习了。不知道为什么,感觉每天都在学,就是学的不快。不晓得是不是刚开始学数据结构的原因。下周加油~

第16-17周(7.25-8.7)
数据结构(5-11):
1.队列,栈,链表,链表的应用(实现栈,实现队列)
链表在删除元素的时候,引用了dummyhead解决了能找到待删除元素的前一个元素,不用单独处理链表的头结点。在LeeCode上也解决了相似问题。

2.了解了LeetCode上定义好的类。在自己电脑写main函数,测试用例调试的处理方法。

3.每学一种数据结构,就分析它的时间复杂度,分析性能,有利于找到优化性能的方法。

第18-20周(8.8-8.21)
数据结构与算法:12-19
1.主要学了 归并排序法和快速排序法,以及它们从逻辑上性能的优化。
2.归并排序法的三种优化方式: 利用插入排序对有序数组复杂度是O(n);内存优化;merge优化完全有序数组。
3.自底向上实现归并排序。
4.第一版快速排序算法的问题处理和优化。

第21周(8.22-8.28)
整理了之前的笔记,复习了之前的内容。
实际上就是准备回学校了,有点浮躁学不太进。一静不下来就不想学习,就想弹琴,大部分时间用来收拾东西,练琴了。但是回学校出现了点特殊情况也回不去了,今天反而静下来了,逼着自己学了点。

第22-23周(8.29-9.10)
1.学了github,学习建了个远程仓库。
2.学了html
3.css正在学习中。

9.11-10.10(刚好一个月了,也不知道多少周了)
1.感觉这个月学的很散,完成了从0-1搭建一个项目的第二个任务。中间总是出现各种各样的问题,然后就是不停的百度解决问题。

2.终于把任务完成了,想传到github上,却发现还没有学会git,于是又现学。中间也遇见各种问题,例如本地仓和远程仓库没有关联,上传不上;分支不对啊等等,最后经百度以及请教终于解决。打算有时间,写写博客,记录一下自己的问题。

3.数据结构学习到了二分查找。

2023.3.2
很久没有更新了,晃荡了几个月不知道在干什么,想通了一些问题,今天回来了,还好还来得及。

发表评论

后才能评论

评论(1)