耿老师教授Java程序20多年,多少有些教学经验和从学生那里学懂的什么叫不懂。这里写点文字,算是给初学者的一点参考建议吧。
主要内容 五大模块学习介绍后续主要课程介绍
根据Java语言本身的结构, 把java学习或教学分成5个的模块:
① Java 入门
在本部分,重点掌握开发Java程序的基本步骤,学会怎样使用最重要、最基本的开发工具JDK。 此时,不建议使用任何IDE工具。在学过前8章以后,建议用一个流行的、比较好的IDE(集成开发工具)。比如IDEA(IntelliJ IDEA),netBean,eclipse(学生基本可以做到无师自通)(我本人一直就是记事本+JDK+JDK类库帮助文档)。
② 基本语法模块
● 学习特点
注意和C语言的不同之处,以及Java的改进之处。例如分支语句,循环语句中的条件表达式的值必须是boolean类型(C语言没有boolean类型)。Java的重点不是训练你怎么很好的使用分支,循环语句等这些基本的语句 (这些基本功的训练属于C语言负责的范畴)
● 重点是数组
数组属于“引用型”变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。理解数组,也有利于理解后面的对象。
③核心基础模块
核心基础模块是Java语言本身(面向对象程序)的核心基础内容,分布在教材的第4-7章。这四个章节的学习 要慢、要细心。认真琢磨思考每个概念,每个例子,每个注解。学会通过 修改例子来验证或回答自己思考出的问题。建议把每节提供的微课视频都认真听一听,相信必然会有帮助和启发。这些微课也算是耿老师20多年授课的体会,并建议把配套的在线题库训练系统的相关题目都做一遍。
展开全文
这部分内容至关重要,其学习效果的好坏,不仅将影响本教材今后的学习进度和质量,而且也影响以后学习、理解Java相关内容,以及编程能力的提高。所以,对待这部分内容的态度应该是: 磨刀不误砍柴工。如果小时候学过乐器,就知道这个道理: 基本功决定你能走多远!有句话说得好:车到山前必有路,船到桥头自然直。那 你得车到山前、船到桥头才行,在本模块可这样理解:学好本模块内容就是车到山前,船到桥头。
学习Java的过程中,理解和掌握重要、关键的概念和相关算法以及面向对象的核心思想是学习Java的主旋律。有效地巩固、掌握Java这一主旋律对今后的学习是非常重要的。
抓住重点,把重点的学会,其它的就好办了。如果基础不好,以后就会感觉路上的坑多。由于核心基础模块非常重要,耿老师有匹配的一本教材《趣懂Java 旋律 击破36个难点》,封面的配图是教过的学生给耿老师绘制的。当初构思这本书的目的就一个:让同学的有兴趣学习Java、学好Java,其内容也是反复地思量琢磨:用 言简意赅的场景故事,最大限度地体现Java编程概念、思想方法,以帮助读者加深对知识点的理解和记忆。 从第4章开始,可以阅读这书里的故事,对提高学习效果应该是有帮助的(我的愿望是这样)。
④应用基础模块
这部分内容分布在两个章节,第8章和第9章。第8章内容主要是学习基础类库中的类,重点是掌握几个基础类的用途和基本用法(公众号里也有好几个关于基本类库的帖子,比如福利彩票,小数分数问题等)。如果时间有限,可 重点学习String类,StringTokenizer和Scanner类即可。其他类,在以后编写程序需要时,现学现用都可以,比如时间日期相关的类。 第9章是和设计GUI程序有关的Java Swing框架中的类,这部分内容本身仍然是Java语言的一部分重要的应用基础,而其中的 事件处理机制更是非常重要的设计思想,是必须要精准理解和掌握的。 另外,这部分内容对于学习Android程序设计也是非常有帮助的。 耿老师也曾在清华大学出版社出版(2013年)出过一本Andoid的教材,后来由于精力有限,以及Andoid版本更新也太快,放弃了这本教材的维护。
从教学上看,在这部分内容,用户在视觉上终于可以看见对象了,所以对于理解核心模块中的一些基本概念也是很有帮助的,比如当用JFrame 创建一个(窗口)对象win后:
JFrame win = new JFrame;
win就有了自己的一些属性-变量,它们各自都有自己的默认值,win也可以调用JFrame提供的方法操作自己的属性-变量(这个知识是核心基础模块最基础的知识点)。比如:win.setVisible(true); 就把自己的是否在桌面上可见的属性值设置成了true(默认是false)。
如果时间有限,学习这部分内容可以选择几个重点的例子学习,比如关于处理 ActionEvent事件的几个例子。其他事件的处理是类似的,思想是完全一样的。布局可以采用最简单的FlowLayout布局,把重点放在掌握处理事件上(布局很费时和消耗代码,以后如果真开发比较的大的GUI程序,布局时用IDE来做,简单的拖动即可完成,天生飘来5个字:那都不是事)。
● 后继相关课程
一个比较直接的课程就是课程设计,即使学校没有配置 课程设计,建议自己也要找几个模拟实际问题的题目综合训练一下自己,耿老师一直维护的一本教材是配套的课程设计,如果把其中的8个题目都完成,相信不仅在 编程能力上会有较大的提高,也会巩固主教材的学习效果!
另一个比较直接的课程就是Web 应用程序设计类的课程,如果走Java路线,肯定是学习JSP程序设计,耿老师在20年前就出版了相关教材,一直在升级维护中(目前已经是微课视频版了):
另外一个 不一定是后继课程,但是,是耿老师 强烈建议学习的,那就是设计模式,耿老师15年前就出版了相关教材,一直维护中,目前也到了微课视频版教材:
另外,耿老师也曾教授C语言10多年,是 C语言的崇拜者之一(有句名言,学好C语言走遍天下都不怕!)。如果你觉得自己C语言基础不是太好,建议再学学(把鞋带系上)。
以上,是因为开学,想起码点字,希望对初学Java的同学能有用。
推荐阅读
给初学者的四点参考建议