Skip to content

Commit

Permalink
更新了部分资源
Browse files Browse the repository at this point in the history
  • Loading branch information
jackfrued committed Jun 19, 2022
1 parent 301bb83 commit 778bfbb
Show file tree
Hide file tree
Showing 22 changed files with 1,143 additions and 834 deletions.
4 changes: 2 additions & 2 deletions Day31-35/31-35.玩转Linux操作系统.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
4. 1970年~1971年:Ken Tompson和Dennis Ritchie用B语言在PDP-11上重写了Unics,并在Brian Kernighan的建议下将其更名为Unix。

![](./res/ken-and-dennis-pdp-11.png)
<img src="https://gitee.com/jackfrued/mypic/raw/master/20220516090404.png" style="zoom:50%;">

5. 1972年~1973年:Dennis Ritchie发明了C语言来取代可移植性较差的B语言,并开启了用C语言重写Unix的工作。

Expand All @@ -40,7 +40,7 @@

8. 1987年:Andrew S. Tanenbaum教授为了能在课堂上为学生讲解操作系统运作的细节,决定在不使用任何AT&T的源代码前提下,自行开发与Unix兼容的操作系统以避免版权上的争议,该系统被命名为Minix。

![](./res/andrew.jpg)
<img src="https://gitee.com/jackfrued/mypic/raw/master/20220516090432.jpg" style="zoom:50%;">

9. 1991年:Linus Torvalds就读于芬兰赫尔辛基大学期间,尝试在Minix上做一些开发工作,但因为Minix只是作为教学用途的操作系统,功能并不强大,为了方便在学校的新闻组和邮件系统中读写和下载文件,Linus编写了磁盘驱动程序和文件系统,这些东西形成了Linux系统内核的雏形。

Expand Down
28 changes: 15 additions & 13 deletions Day36-40/code/app_store.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
drop database if exists `app_store`;

create database `app_store` default character set utf8mb4;

use `app_store`;

create table `app_info` (
`id` bigint(20) not null auto_increment comment '自增id, app的id',
`app_name` varchar(255) default '' comment '名称',
Expand All @@ -14,10 +20,8 @@ create table `app_info` (
`version_desc` varchar(4096) default '' comment '',
`create_time` datetime not null default '0000-00-00 00:00:00' comment '创建时间',
`update_time` datetime not null default '0000-00-00 00:00:00' comment '更新时间',
primary key (`id`),
key `idx_app_name` (`app_name`),
key `idx_developer` (`user_id`)
) engine=innodb auto_increment=100000 default charset=utf8 comment='app基本信息表';
primary key (`id`)
) engine=innodb auto_increment=100000 default charset=utf8mb4 comment='app基本信息表';

create table `app_ext_info` (
`id` bigint(20) not null auto_increment comment '自增id',
Expand All @@ -27,9 +31,8 @@ create table `app_ext_info` (
`comment_count` int(10) unsigned not null default '0' comment '评论量',
`create_time` int(10) not null default 0 comment '创建时间',
`update_time` int(10) not null default 0 comment '更新时间',
primary key (`id`),
unique key `idx_app_id` (`app_id`)
) engine=innodb default charset=utf8 comment='App扩展信息表';
primary key (`id`)
) engine=innodb default charset=utf8mb4 comment='App扩展信息表';

create table `app_category` (
`id` bigint(20) not null auto_increment comment '自增id',
Expand All @@ -43,16 +46,15 @@ create table `app_category` (
`create_time` int(10) not null default 0 comment '创建时间',
`update_time` int(10) not null default 0 comment '更新时间',
primary key (`id`)
) engine=innodb default charset=utf8 comment='分类信息表';
) engine=innodb default charset=utf8mb4 comment='分类信息表';

create table `app_category_rel` (
`id` bigint(20) not null auto_increment comment '自增id',
`app_id` bigint(20) not null default '0' comment 'app_id',
`category_id` bigint(20) unsigned not null default '0' comment '最低层分类id',
primary key (`id`),
unique key `idx_category_app` (`category_id`,`app_record_id`),
key `idx_app` (`app_id`)
) engine=innodb default charset=utf8 comment='App和分类关联表';
) engine=innodb default charset=utf8mb4 comment='App和分类关联表';

create table `app_comment` (
`id` bigint(20) not null auto_increment comment '自增id',
Expand All @@ -70,7 +72,7 @@ create table `app_comment` (
`update_time` int(10) not null default 0 comment '更新时间',
primary key (`id`),
key `idx_app_status` (`app_id`, `status`, `top_flag`)
) engine=innodb default charset=utf8 comment='评论信息表';
) engine=innodb default charset=utf8mb4 comment='评论信息表';

create table `user_app_relation` (
`id` bigint(20) not null auto_increment comment '自增id',
Expand All @@ -81,7 +83,7 @@ create table `user_app_relation` (
`is_del` tinyint(4) not null default '0' comment '1:删除 0:未删除',
primary key (`id`),
key `idx_user_app` (`user_id`,`app_id`)
) engine=innodb auto_increment=8063 default charset=utf8 comment='用户购买关系表';
) engine=innodb auto_increment=8063 default charset=utf8mb4 comment='用户购买关系表';

create table `bot_score` (
`id` bigint(20) not null auto_increment comment '自增id',
Expand All @@ -93,4 +95,4 @@ create table `bot_score` (
`update_time` int(10) not null default 0 comment '更新时间',
primary key (`id`),
unique key `idx_uid_score` (`app_id`,`commenter_uid`)
) engine=innodb default charset=utf8 comment='App评分表';
) engine=innodb default charset=utf8mb4 comment='App评分表';
16 changes: 9 additions & 7 deletions Day66-80/66.数据分析概述.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,25 @@

当今世界对信息技术的依赖程度在不断加深,每天都会有大量的数据产生,我们经常会感到数据越来越多,但是要从中发现有价值的信息却越来越难。这里所说的信息,可以理解为对数据集处理之后的结果,是从数据集中提炼出的可用于其他场合的结论性的东西,而**从原始数据中抽取出有价值的信息**的这个过程我们就称之为**数据分析**,它是数据科学工作的一部分。

> 定义:**数据分析是有针对性的收集、加工、整理数据并采用统计、挖掘等技术对数据进行分析和解释的科学和艺术**
### 数据分析师的职责和技能栈

我们通常将从事数据分析、数据挖掘和数据产品的岗位都统称为数据分析岗位,但是根据工作性质的不同,又可以分为偏业务的**数据分析方向**、偏算法的**数据挖掘方向**偏产品的**数据产品方向**和偏开发的**数据工程方向**。我们通常所说的数据分析师主要是指**业务数据分析师**,很多数据分析师的职业生涯都是从这个岗位开始的,而且这个岗位也是招聘数量最多的岗位。业务数据分析师在公司通常不属于研发部门而**属于运营部门**,所以这个岗位也称为**数据运营****商业分析**,通常招聘信息对这个岗位的描述(JD)是:
HR在发布招聘需求时,通常将数据工程、数据分析、数据挖掘等岗位都统称为数据分析岗位,但是根据工作性质的不同,又可以分为偏工程的**数据治理方向**、偏业务的**数据分析方向**、偏算法的**数据挖掘方向**偏开发的**数据开发方向**、偏产品的**数据产品经理**。我们通常所说的数据分析师主要是指**业务数据分析师**,很多数据分析师的职业生涯都是从这个岗位开始的,而且这个岗位也是招聘数量最多的岗位。业务数据分析师在公司通常不属于研发部门而属于运营部门,所以这个岗位也称为**数据运营****商业分析**这类人员通常也被称为“BI工程师”。通常招聘信息对这个岗位的描述(JD)是:

1. 负责各部门相关的报表
1. 负责相关报表的输出
2. 建立和优化指标体系。
3. 监控数据波动和异常,找出问题。
4. 优化和驱动业务,推动数字化运营。
5. 找出潜在的市场和产品的上升空间。

根据上面的描述,作为业务数据分析师,我们的工作不是给领导一个简单浅显的结论,而是结合公司的业务,完成**监控数据**、**揪出异常**、**找到原因**、**探索趋势**的工作。所以作为数据分析师,不管是用 Python 语言、Excel、SPSS或其他的商业智能工具,工具只是达成目标的手段,**数据思维是核心技能**,而从实际业务问题出发到最终**发现数据中的商业价值**是终极目标。数据分析师在很多公司只是一个基础岗位,精于业务的数据分析师可以向**数据分析经理**或**数据运营总监**等管理岗位发展;对于熟悉机器学习算法的数据分析师来说,可以向**数据挖掘工程师**或**算法专家**方向发展,而这些岗位除了需要相应的数学和统计学知识,在编程能力方面也比数据分析师有更高的要求,可能还需要有大数据存储和处理的相关经验作为数据产品经理,除了传统产品经理的技能栈之外,也需要较强的技术能力,例如要了解常用的推荐算法、机器学习模型,能够为算法的改进提供依据,能够制定相关埋点的规范和口径,虽然不需要精通各种算法,但是要站在产品的角度去考虑数据模型、指标、算法等的落地;数据工程师是一个偏技术的岗位,基本上的成长道路都是从 SQL 开始,逐步向 Hadoop 生态圈迁移,需要有 Java 语言的编程经验。
根据上面的描述,作为业务数据分析师,我们的工作不是给领导一个简单浅显的结论,而是结合公司的业务,完成**监控数据**、**揪出异常**、**找到原因**、**探索趋势**等工作。作为数据分析师,不管是用 Python 语言、Excel、SPSS或其他的商业智能工具,工具只是达成目标的手段,**数据思维是核心技能**,从实际业务问题出发到最终**发现数据中的商业价值**是终极目标。数据分析师在很多公司只是一个基础岗位,精于业务的数据分析师可以向**数据分析经理**或**数据运营总监**等管理岗位发展;对于熟悉机器学习算法的数据分析师来说,可以向**数据挖掘工程师**或**算法专家**方向发展,而这些岗位除了需要相应的数学和统计学知识,在编程能力方面也比数据分析师有更高的要求,可能还需要有大数据存储和处理的相关经验。数据治理岗位主要是帮助公司建设数据仓库或数据湖,实现数据从业务系统、埋点系统、日志系统到分析库的转移,为后续的数据分析和挖掘提供基础设施。数据治理岗位对 SQL 和 HiveSQL 有着较高的要求,要求能够熟练的使用 ETL 工具,此外可能还需要对 Hadoop 生态圈有一个很好的认知。作为数据产品经理,除了传统产品经理的技能栈之外,也需要较强的技术能力,例如要了解常用的推荐算法、机器学习模型,能够为算法的改进提供依据,能够制定相关埋点的规范和口径,虽然不需要精通各种算法,但是要站在产品的角度去考虑数据模型、指标、算法等的落地

以下是我总结的数据分析师的技能栈,仅供参考。

1. 计算机科学(数据分析工具、编程语言、数据库)
2. 数学和统计学(数据思维、统计思维)
3. 人工智能(机器学习算法
3. 人工智能(机器学习中的数据挖掘算法
4. 业务理解能力(沟通、表达、经验)
5. 总结和表述能力(商业PPT、文字总结)

Expand All @@ -30,8 +32,8 @@

1. 确定目标(输入):理解业务,确定指标口径
2. 获取数据:数据仓库、电子表格、三方接口、网络爬虫、开放数据集等
3. 清洗数据:缺失值/重复值/异常值处理、数据变换(格式化、规范化)、数据归约、离散化等
4. 探索数据:运算、统计、分组、聚合、可视化
3. 清洗数据:缺失值/重复值/异常值处理、数据变换(格式化、规范化)、离散化等
4. 数据透视:运算、统计、分组、聚合、可视化
5. 数据报告(输出):数据发布,工作成果总结汇报
6. 分析洞察(后续):解释数据的变化,提出对应的方案

Expand All @@ -51,7 +53,7 @@
#### 三大神器

1. [NumPy](https://numpy.org/):支持常见的数组和矩阵操作,通过`ndarray`类实现了对多维数组的封装,提供了操作这些数组的方法和函数集。由于 NumPy 内置了并行运算功能,当使用多核 CPU 时,Numpy会自动做并行计算。
2. [Pandas](https://pandas.pydata.org/)pandas的核心是其特有的数据结构`DataFrame``Series`,这使得 pandas 可以处理包含不同类型的数据的负责表格和时间序列,这一点是NumPy的`ndarray`做不到的。使用 pandas,可以轻松顺利的加载各种形式的数据,然后对数据进行切片、切块、处理缺失值、聚合、重塑和可视化等操作。
2. [Pandas](https://pandas.pydata.org/)pandas 的核心是其特有的数据结构`DataFrame``Series`,这使得 pandas 可以处理包含不同类型的数据的负责表格和时间序列,这一点是NumPy的`ndarray`做不到的。使用 pandas,可以轻松顺利的加载各种形式的数据,然后对数据进行切片、切块、处理缺失值、聚合、重塑和可视化等操作。
3. [Matplotlib](https://matplotlib.org/):matplotlib 是一个包含各种绘图模块的库,能够根据我们提供的数据创建高质量的图形。此外,matplotlib 还提供了 pylab 模块,这个模块包含了很多像 [MATLAB](https://www.mathworks.com/products/matlab.html) 一样的绘图组件。

#### 其他相关库
Expand Down
Loading

0 comments on commit 778bfbb

Please sign in to comment.