第20期组队学习安排

Datawhale 组队学习

第20期 Datawhale 组队学习活动马上就要开始啦!

本次组队学习的内容为:

  • SQL编程语言
  • Go编程语言
  • 编程实践(Pandas)
  • 编程实践(数据可视化)
  • 计算机视觉(目标检测)

大家可以根据我们的开源内容进行自学,也可以加入我们的组队学习一起来学。


1. SQL编程语言

开源内容:https://github.com/datawhalechina/team-learning-sql

基本信息

  • 贡献人员:王复振、杨煜、闫钟峰、杨梦迪、苏鹏、红星、张晋、汪健麟、苏丽敏、姚行志
  • 学习周期:14天
  • 学习形式:理论学习 + 练习
  • 人群定位:SQL小白、初学者,希望通过系统学习来提高SQL技能的人。
  • 难度系数:中

学习目标

本次课程是由 Datawhale SQL 小组内部成员共同完成,是针对 SQL 小白的入门课程。学习本课程不需要什么基础,只要你喜欢SQL、想基本掌握这门技能都可以学习。

本次课程内容的设计参考了 MICK 老师的《SQL基础教程 第2版》、官方文档以及技术博客,对SQL中比较重要的知识点进行了记录和总结,每个小节都有练习题供学习者核查自己的学习效果。

本开源内容的目标是掌握以下内容:

  • 数据库的安装和使用
  • 数据库连接工具的安装和使用
  • 基础查询、分组、排序
  • 视图、子查询、函数、谓词、CASE表达式
  • 表联结
  • 窗口函数

SQL基础组队学习内容汇总:

任务安排

Task00/01:数据库环境搭建及初步了解(2天)

  • 组队、修改群昵称。
  • 熟悉打卡规则。
  • 独立完成数据库安装。
  • 独立完成数据库连接工具安装。
  • 初步了解数据库、表的概念及一些简单的操作。

Task02:基础排序与查询(2天)

  • SELECT 语句基础。
  • 算数运算符与比较运算符。
  • 逻辑运算符。
  • 表的分组与聚合。
  • 为聚合条件指定条件。
  • 对查询结果进行排序

Task03:复杂一点的查询(3天)

  • 视图
  • 子查询、关联子查询、标量子查询
  • 各种各样的函数
  • 谓词的用法
  • CASE 表达式的用法

Task04:集合运算(2天)

  • 表的加减法
  • 表连接 JOIN(内连接、外连接、多表连接、非等值连接、交叉连接)

Task05:SQL高级处理(2天)

  • 窗口函数介绍
  • 窗口函数种类
  • 计算移动平均
  • GROUPING 运算符

Task06:综合练习(3天)

  • 练习1、2、3
  • 练习4、5、6、7
  • 练习8、9、10、11

2. Go编程语言

开源内容:https://github.com/datawhalechina/go-talent

基本信息

  • 贡献人员:光城、伊雪、苏鹏、梁家晖、李云龙
  • 学习周期:14天
  • 学习形式:理论学习
  • 人群定位:编程语言初学者
  • 难度系数:中

学习目标

本次课程是由Datawhale Go-Talent小组内部成员共同完成,是针对当前较热门的Go语言知识体系进行提炼及萃取的一门初学者课程。本次课程适用于任何小白人员。

内容目标:

希望学习者通过此门课程,可以掌握最基本的语言能力,包括但不限于:

  • Go开发环境
  • Go适用场景
  • Go优势
  • Go反射、接口、方法
  • Go并发

具体内容:

  • Go初探
  • 数据类型、关键字、标识符
  • 变量、常量、枚举
  • 运算符、控制语句
  • 字典、字符串
  • 数组、切片
  • 函数
  • 结构体、方法、接口
  • 包管理
  • 异常处理
  • 反射机制
  • 单元测试
  • 并发编程

任务安排

Task00:熟悉规则(1天)

  • 组队、修改群昵称
  • 熟悉打卡规则

Task01: Go初探(1天)

  • 独立完成Go环境搭建
  • 了解Go语言特性
  • 了解Go语言结构

Task02: 数据类型、关键字、标识符(1天)

  • 掌握Go数据类型内容
  • 掌握关键字与标识符

Task03: 变量、常量、枚举(1天)

  • 掌握变量、常量及枚举
  • 区分普通枚举与自增枚举

Task04: 运算符、控制语句(1天)

  • 掌握运算符
  • 掌握条件、循环控制语句

Task05: 字典、字符串(1天)

  • 掌握字典的用法
  • 掌握字符串常用包

Task06: 数组、切片(1天)

  • 掌握切片与数组的区别
  • 掌握切片与数组的使用

Task07: 函数(1天)

  • 掌握匿名函数
  • 了解函数定义
  • 掌握函数参数及返回值

Task 08: 结构体、方法、接口(1天)

  • 掌握结构体在方法、接口的使用
  • 区分方法与接口

Task09: 包管理(1天)

  • 掌握Go的包管理机制

Task10: 异常处理(1天)

  • 区分error与panic
  • 了解源码分析

Task11: 反射机制(1天)

  • 了解反射作用
  • 了解反射实现
  • 掌握反射的实践

Task12: 单元测试(1天)

  • 掌握vscode单测及基本结构
  • 掌握不同测试方式

Task13: 并发编程(1天)

  • 掌握协程Goroutines
  • 掌握并发原语
  • 掌握channel
  • 了解并发与并行

3. 编程实践(Pandas)

开源内容:https://github.com/datawhalechina/joyful-pandas

基本信息

  • 贡献人员:耿远昊、谢文睿、吴丹飞
  • 学习周期:28天,每天平均花费时间2小时-5小时不等,根据个人学习接受能力强弱有所浮动。
  • 学习形式:理论学习 + 练习
  • 人群定位:有Python语言编程基础,对学习数据分析有需求的学员。
  • 先修内容:Python编程语言
  • 难度系数:中

学习目标

理解并掌握pandas的所有核心知识

任务安排

Task00:熟悉规则(1天)

  • 组队、修改群昵称
  • 熟悉打卡规则。

  • Task01:预备知识(3天)
  • Task02:Pandas基础(3天)
  • Task03:索引(3天)
  • Task04:分组(3天)
  • Task05:变形(2天)
  • Task06:连接(2天)
  • Task07:缺失数据(2天)
  • Task08:文本数据(3天)
  • Task09:分类数据(1天)
  • Task10:时序数据(3天)
  • Task11:综合练习(2天)

4. 编程实践(数据可视化)

开源内容:https://github.com/datawhalechina/fantastic-matplotlib

基本信息

  • 贡献人员:杨剑砺、杨煜、耿远昊、李运佳、居凤霞、黄建国
  • 学习周期:15天
  • 学习形式:理论学习 + 练习
  • 人群定位:希望通过系统学习matplotlib包来提高python可视化技能的人。
  • 先修内容:Python编程语言
  • 难度系数:中

学习目标

本次课程是由 Datawhale 数据可视化小组内部成员共同完成,是针对 matplotlib 初学者的入门课程。学习本课程需要基本的python基础即可。

本次课程内容的设计几乎完全基于官方文档的结构,通过对于官方文档的归纳总结,系统梳理了python最重要的数据可视化包的方方面面,并且配有部分练习题供学习者核查自己的学习效果。

本开源内容的目标是掌握以下内容:

  • matplotlib中的图像组成
  • 绘图接口
  • 基本图形的绘制
  • 容器对象概念
  • 布局格式
  • 文本设置
  • 样式/色彩设置
  • 不同场景的可视化案例

任务安排

Task00:熟悉规则(1天)

  • 组队、修改群昵称
  • 熟悉打卡规则

Task01:Matplotlib初相识(1天)

  • 认识matplotlib。
  • 了解最简单的绘图例子。
  • 熟悉一幅图像的组成。
  • 熟悉两种绘图接口。

Task02:艺术画笔见乾坤(4天)

  • 熟悉绘图API。
  • 熟悉自定义artist对象。
  • 掌握绘图基本元素。
  • 掌握容器对象。

Task03:布局格式定方圆(2天)

  • 掌握子图的绘制。
  • 掌握子图上的方法。

Task04:文字图例尽眉目(2天)

  • 掌握图/子图上的文本。
  • 掌握坐标轴上的文本。
  • 掌握图例使用。

Task05:样式色彩秀芳华(2天)

  • 掌握绘图样式的配置方法。
  • 掌握色彩方案的配置方法。

Task06:场景案例显神通(3天)

  • 熟悉展示趋势变化的应用场景。
  • 熟悉展示分布关系的应用场景。
  • 熟悉展示相关关系的应用场景。
  • 熟悉展示排序信息的应用场景。
  • 熟悉展示组成关系的应用场景。

5. 计算机视觉(目标检测)

开源内容:https://github.com/datawhalechina/dive-into-cv-pytorch

基本信息

  • 内容设计:本教程的代码由安晟在开源教程a-PyTorch-Tutorial-to-Object-Detection基础上改造完成。第1-3节教程由宋志龙编写,第4-6节教程由闫永强编写,并最终由安晟进行修改和校订。郝瑞祺辅助本次组队学习的运营。
  • 定位人群:具有一定CV基础,对CNN和Pytorch有一定了解,不会为装环境苦恼,至少跑过分类网络的训练。
  • 时间安排:15天,每天花费3-5小时,视个人基础而定。
  • 学习类型:理论教程+代码实践
  • 难度系数:较高

学习目标

掌握从零构建一个目标检测网络各个环节的基本原理,训出一个和YOLO性能相当的简易网络。

任务安排

Task00:熟悉规则(1天)

  • 组队、修改群昵称
  • 熟悉打卡规则

Task01:两个年轻人-目标检测基础和VOC数据集 (3天)

在task1中,我们需要学习两块内容:目标检测基本概念 和 目标检测经典的VOC数据集。

分别对应《动手学CV-Pytorch》的3.1和3.2两节:

学习任务:

  • 准备好Pytorch环境
  • 了解目标检测的一些基本概念,包括目标框的两种表示形式,IoU等
  • 下载好VOC数据集
  • 学习了解VOC数据集的格式,以及如何用代码读取VOC数据集,构建DataLoader

Task02:练死劲儿-网络设计 (3天)

由于目标检测网络原理的复杂性,在正式的跑训练脚本愉快炼丹前,还有很多枯燥的概念需要学习。塔们说,这是练死劲儿,不好用,我说这个好用,这叫基本功,炼丹师讲究的就是基本功。因此在task2中,我们需要学习两块原理性的内容:锚框 和 目标检测的网络结构设计。

分别对应《动手学CV-Pytorch》的3.3和3.4两节:

学习任务:

  • 了解锚框的概念及作用。
  • 学习锚框的生成代码。
  • 学习本教程所介绍的网络结构,包括特征提取模块和输出模块。
  • 学习边界框的编解码,并思考其作用。
  • 思考anchor是如何在网络中发挥作用的。

Task03:化劲儿-损失函数设计 (3天)

我前面还说基本功好用,我变卦了啊!这就是练死劲儿,炼丹师讲究的是化劲儿。

你光知道模型的结构,以及模型最终会输出什么怎么够,你得懂得化劲儿,通过合理的设置损失函数和一些相关的训练技巧,让模型向着正确的方向学习,从而预测出我们想要的结果。

因此在task3中,我们需要学习损失函数设计,对应《动手学CV-Pytorch》3.5节:

学习任务:

  • 学习anchor和GT目标框的匹配策略
  • 了解并学习损失函数的定义,并思考这样设计的道理
  • 了解在线难例挖掘的训练技巧

Task04:不讲武德-炼丹与品尝 (5天)

终于,神功初成,可以开始施展拳脚了。
使用如下命令,一键训练出一个和YOLO效果差不多的目标检测网络吧。

CUDA_VISIBLE_DEVICES='0' python train.py

年轻人,就是这么不讲武德。
当然,你也别闲着,task4的学习内容,对应《动手学CV-Pytorch》3.6节:

学习任务:

  • 完成我们的简化目标检测网络Tiny_Detector的训练
  • 对训练好的网络进行评测
  • 训练过程中,多读读代码,强化记忆本章介绍的内容
  • 如果你有精力,不妨思考下如何改进下网络,并动手实践。

具体规则

  • 注册 CSDN、Github 或 B站等账户。
  • 按照任务安排进行学习,完成后写学习笔记Blog 或 进行视频直播。
  • 在每次任务截止之前在群内填写问卷打卡,遇到问题在群内讨论。
  • 未按时打卡的同学视为自动放弃,被抱出学习群。

备注

有关Datawhale组队学习的开源内容如下:


本次组队学习的 PDF 文档可到Datawhale的知识星球下载:


2赞

请问去知识星球搜索的关键字是什么呢?

下面这是链接


主题关键字是#20期组队学习教程分享#