如果有一天我的后来者们在想要学习java的时候,可以从博客得到一些编程思想学习方法和知识心得方面的总结。
而且这个系列的博客不是给没学过的人看的,而是给那些已经自学过的 跳过坑的人看的。我不会把我笔记里面所有的知识点都复制粘贴上来,也不会说那些地球人都知道的东西,那样没意思。我着重写那些平常用的少的注意不到的,或者难、 容易错的 这些地方,如果你发现有错误的地方,也欢迎指出,大家一起学习,共同进步。
1 学习态度
学习就像烧开水你间断着烧,10000小时也烧不开连续烧,1小时就开了。
因为毕向东的视频很长很多,平时很难保证大块时间的投入这样可能就会导致时间拖很久这是非常不好的,大脑是存在一个热身的过程的。你专心学1个小时后面30分钟的效率会比前面30分钟高。也就是说,你两天一共学了1小时,不如一天1小时的单位效率高。
2 学习时候的一些思想
1 不要问太多的为什么
因为我们是从0起步,相当于从一栋宏伟的知识大楼的一个横断面切入,一切都是未知。 这时候最有效率的做法是只学习视频中讲到的内容,而不对内容背后,或者内容的扩展加深方面花费时间,沉浸在思维的快感中而忽略了学习的效率是不对的。
举个例子对于高中数学中函数的许多知识如果你要深究,可能用大学或者更高层次的东西才能解释和解决,所以不要过于深究,就把当前区域的知识掌握即可。等到了大学,自然能解决当初的疑惑,当然,那时候也会遇到更加深层次的问题,这时候用同样的方法处理即可。
2 适当而不是过度地追求独立解决问题
老师给出需求应当将视频暂停,努力回想之前讲过的知识,尽量自己解决。但如果思路受阻万万不可埋头苦思应当果断放弃,看老师的解决方法,记住即可。
如果自己能够独立解决,那么与老师的方法对照,看自己哪里过于偏重而哪里又有些薄弱。一般来说都是老师的方法比较好,这时候应当摒弃自己的方法,记住老师的方法。
在这个阶段很多问题已经被前人解决过研究过无数次,没有必要重复造轮子,而是在抓住锻炼自己思维的机会的基础上记住最好的轮子的造法。
3 无动手 不学习
一定要实践而且把实践穿插在学习的过程中。我最开始为了节约时间,很多东西理解了以后就没有动手实现。后来动手了以后才发现,理解和实现对于初学者来说是完全不同的两码事儿,中间会出现很多意想不到的状况和问题。
后来我还是为了节约时间,在纸上写代码然后跟视频对照,但发现首先以我的打字速度来说绝对是打字更加快,其次还是一样,中间会出现很多意想不到的状况和问题,其实说到底还是怕麻烦,因为心里也对自己写的代码没底,不敢保证100%正确,知道肯定会出很多小问题,懒得一个一个调试。
后来我发现只有理解以后动手实现一遍印象才最深刻,理解也才更深刻。这个懒其实你是偷不了的,现在偷的懒,以后会10倍还回去的。还是老老实实一个一个Demo坐下来比较好。
所以不要怕麻烦,无动手,不学习。
4 理解规律性的东西和本质性的东西
比如在目前这个阶段,你需要知道的是,我们学的东西非常有限,一般来说就是一种对象,几种方法,和从几种方法拼接起来为了实现某些功能的几种套路。所以,不要怕。
每学到一个知识点都要问问自己,这东西在编程的过程中是干嘛的,有什么用,有了它 爽在哪;没了它,蛋疼在哪。这样你就站在一个比较高的地方俯视你学的东西,而不是整天在细节里焦头烂额,不知所云。更重要的是,你知道了知识诞生的原因,那么在碰到新的问题的时候,就更能主动运用所学过的知识去有条理地解决,而不是像无头苍蝇一样撞运气。
而面对细节首先要知道,符号本身是跟符号本身的意义重叠的,理解符号的意义 有助于帮助你理解程序运行的内在规律。
其次要背住细节,要重视细节发生的原因,知识是固体,你要研磨得够碎,够细,才能无畏地面对一切刁难和困难。
思想这种东西必须经过实践的检验和磨练才能存乎一心,才能收放自如。它跟实践是相互依存,共同发展的关系。过分重视思想,只会让你眼高手低,满嘴跑火车,啥也干不成。而只有实践没有思想,你最多就是个熟练工,永远不能达到很高的高度。
5 坦诚与积极
坦诚的意思是对自己坦诚。意思是,其实面对这么多知识点哪些掌握了,哪些没掌握,其实我们心里都有数。你打开视频的目录,那些看着就想逃避的,想着就晕的标题 肯定就是薄弱环节。
积极则指主动把一些容易混淆的东西放到一起总结。比如重载与覆盖与可变参数 懒汉与饿汉,你知道面试官肯定会问这些的,逃避不是办法,我们就要主动出击,战场上,求生者死,求死者生,就是这个道理。
而且这么做还有一个好处,就是有的时候你觉得自己已经理解得比较到位了,但故意把一些相近的东西放在一起比较的时候发现又糊涂了。这就是提高的时刻。
总体来说就是快速找到薄弱环节。学习的侧重点永远在薄弱环节。
3 整体的知识结构
知识体系中的位置 | 具体内容 | 学习侧重点 |
环境 | 基本常识 环境搭建 |
|
基本元素 | 注释&帮助文档的制作 | 记忆 |
运算符 | ||
常量 | ||
变量 | ||
语句 | ||
数组&指针 | ||
面向对象 | 类 | 理解 |
对象及其运行(构造函数 调用成员) | ||
成员变量&局部变量 | ||
封装 | ||
构造 | ||
修饰符 | ||
设计模式 | ||
继承 | ||
抽象类 内部类 Object类 | ||
接口 | ||
多态 | ||
异常 | ||
包 | ||
CPU | 多线程 | 练习 |
交互(文字) | String类&正则表达式 | |
内存和硬盘 | 集合&数据结构 | |
IO | ||
交互(图形界面) | GUI | |
交互(与别的机器) | 网络 | |
| 其他对象 | |
做项目 | 反射的基本原理 | 理解&练习 |
框架初探 |
我将按照这个结构来进行技术博客的发布。
希望能给大家一些帮助。