周末日记-第一次相对正规的技术教学

前言

朋友本身是搞对日技术支持的,对编程几乎没啥兴趣,但是又觊觎程序员的高收入,所以拜托我给她进行编程培训。仔细分析下,当老师去输出知识点,一方面可以巩固自己的知识体系,毕竟自己真的会了才能讲得好,而且还需要考虑下面的两点才能当好一个老师:

  • 针对学生的基础进行教学知识点的选择,能够避开一些在前期难理解的知识点,又不错过重要的知识点;
  • 能够让学生吸收好的授课方式的选择,每个学生理解程度不同,需要根据对方的理解能力输出知识点

这件事本身挺有挑战性,我就欣然接受了。

教学细节

原计划是每周末教两天,每天1个小时授课时间,一个小时学生总结笔记时间加老师辅助修改笔记时间,最终目标是想让她能够掌握Java web后台开发相关的工作技能,这个周末教下来,朋友吸收的还算不错,竟然让我平日晚上也开展教学工作,美其名曰可以学的更快,我这朋友是不是有点飘哈哈。

下面讲讲这两天的教学细节。

第一天

交互和增删改查的概念

因为朋友几乎零基础,所以首先我就从比较容易理解的前端页面来切入,从一个列表查询功能开始,最后落地到数据库中,并把数据库展示给朋友看,用比较通俗易懂方式的讲解了前端页面和后端页面的交互过程,以及后端的增删改查是什么意思(最开始呢,我也举了她比较熟悉的app淘宝的例子,让他简单的明白每个操作其实都对应着数据库的一些操作),讲解后,朋友的脑海中就有了交互以及增删改查的概念(当然HTTP协议是简单略过的,防止耽误教学进度)。

真实工程展示-加深对交互和增删改查的理解

然后我给她打开了一个真实的工程,简单介绍了下controller,service和mapper的概念和作用,这里大家肯定很不解,一点java基础都没有的人,上来直接讲controller,service和mapper能理解么?其实我并不是详细的讲解controller、service和mapper,而是抽取了其中最关键的东西展示给对方,比如在前面的介绍中,朋友理解了前端需要访问后端的一个接口来实现功能,那么接着给对方展示在真实的开发中,我们的接口长什么样子,大约都做了什么逻辑,对方就会感觉自己真实的看到了这个功能,是有助于加深知识的理解的。service和mapper同理,service中我也没有讲解接口和实现相关的概念,只是告诉她这里面会做一些对数据库的操作,mapper就是操作数据库的一个工具。

Springboot开发流程简介-增加对开发流程的熟悉度

最后我给朋友简单介绍了用Springboot开发的开发流程,包括

  • start.spring.io中generate项目
  • 下载并解压
  • 在IDEA中的open项目(open的过程中简单介绍了maven中的从仓库下载第三方jar包的过程)

总结

第一天整体来说是比较满意的,朋友觉得软件开发不那么神秘了,也有了一定的兴趣和成就感,作为老师的我当然也是很开心的。

第二天

从数据库表到Class类-顺畅引入概念

因为前一天给朋友展示过数据库中的表,并且讲到增删改查,所以在讲Class的时候,我的讲解要点是,如果是一次查询数据库的需求,那么应该如何把数据库中的数据存储到java程序中呢?答案就是使用Class类来接收数据库中的每个字段的数据。顺带讲解了修饰符public和private,由private引入了getset方法,并讲解了为什么不直接使用public修饰符,而是提供getset方法的原因。整体思路个人认为是比较顺畅的。

Service和ServiceImpl-讲解接口和实现

因为前一天介绍了Service和ServiceImpl,朋友对这两个文件还记忆犹新,从这两个文件引入接口和实现的定义是再好不过的了,接口注重提供的功能,实现类注重如何实现接口的功能,并使用controller引用service,和serviceImpl implement service来进一步讲解为什么需要接口和实现,以及重要的解耦的思想。

继承

继承这种设计其实对java web开发来说,使用的并不多,但是我因为平时和硬件打交道比较多,经常需要实现协议,协议的设计中就包含了父类命令和子类命令的概念,所以就使用了真实开发中的协议和真实父子类Java代码给朋友进行了讲解,通过这个实例展示了继承的服用代码的作用。

异常

讲解异常的部分,我依旧是举了个数据库的例子(因为朋友现在对数据库比较熟悉),当我们使用操作数据库时,如果此时网络出现异常,我们连接不上数据库时,对正常的业务来说就是一个异常情况,针对这种异常情况,我们可以选择:

  • 直接告诉前端错误
  • 尝试连接几次,如果还不成功再告诉前端错误

所以业务逻辑中是很容易出现各种异常的,出现异常,我们首先需要识别异常,然后处理异常,识别异常使用的就是try catch,处理异常,我给朋友展示了一段项目中的真实代码,朋友表示理解了。

List容器初探-加深接口实现理解

这里我依旧结合数据库来讲解,当我们查询到的数据有多条,应该如何存储?从这个问题自然而然引入了List这个容器,并且点击到List的接口文件中给朋友加深了接口的概念,最后让朋友实际写了一段创建对象和容器并加入到容器中,打印容器size的方法串起了整个流程。

总结

java基础我就只打算将这些,下一节课开始讲解Http协议或者spring框架,一切以实用为主。

后序

第一次当老师成就感还挺高,觉得自己善于引入概念,并结合已经学习过的知识进行新知识的学习,同时对知识点的选择也比较合理,难度适中,不会纠结于过多的细节,给自己给个赞!

posted @ 2020-11-22 19:30  Ging  阅读(153)  评论(0编辑  收藏  举报