数据科学家自我修养——一份数据科学的开放课程清单

本文提供了一份数据科学的学习指南,包括基础知识、编程技能及商业应用等内容,适合初学者和进阶者参考。

数据科学家自我修养——一份数据科学的开放课程清单

最近一年以来,大数据这个概念被吹嘘的天花乱坠,仿佛你要是不说大数据就落伍了。继云计算之后,大数据已然成为IT行业的热点。《哈佛商业评论》更是宣称“数据科学家”是二十一世纪最性感的职业。所谓性感,既代表着难以名状的诱惑,又说明了大家都不知道它干的是什么。这里我不想重复什么是大数据,什么是数据科学,而是想以个人过去接近2年时间通过MOOC(开放课程)来学习数据科学的实践来给出一份个人建议的数据科学学习之路的课程清单。

数据科学家的自我修养

Drew Conway给出的数据科学的一个文氏图,很好的诠释了数据科学的技能要求。而这里我基于传统的道,术,用来将数据科学的课程分成三类在后面一一列出。不过还是让我们先从数据科学入门谈起。

数据科学入门

如果你公司的管理层,只是感觉想了解一下什么是大数据,个人建议从big data for performance这门课开始,课程有4个模块,很简单的内容,当然也有些不是很正确的内容;-),但作为入门还是不错的。接下来你需要了解一下Hadoop,来自Udacity的Intro to Hadoop and MapReduce是个不错的选择。

最后如果你要想忽悠一下别人,看看维克托•迈尔•舍恩伯格(Viktor Mayer-Schönberger)的大数据时代,这是国外大数据研究的先河之作。

如何利用大数据

数据科学之道

要掌握数据科学,基础的数学与统计学知识不可避免,这里强烈推荐:

  • 普林斯顿大学Statistics One 统计学基础,假设检验,ANOVA,线性回归等等
  • 斯坦福大学Statistics learning 基本的有监督学习介绍,回归,分类,聚类,树,SVM,K-means clustering等等

这两门课都是名校教授讲解,课程深入浅出,一个帮助你统计学入门,一个帮助你数据分析与机器学习入门。不过如果你听统计学初步都觉得吃力,那么可以考虑先听一下台湾大学的概率论的前几讲,对概率有了初步知识后再学统计。

当然如果你想更深入一些你一定不能错过斯坦福大学的Machine Learning,这是Coursera创始人的经典课程。

除了以上课程,你也可以看看约翰霍普金斯大学5月开设的3门课程:

当然Edx,Coursera也是寻找相关课程的好地方

数据科学之术

有了数据科学之道,我们下一步需要进行的就是如何实现它了,有人推荐Python,也有人推荐R,或者来自Apache的mahout,个人推荐Python+R,于是你可以看看:

之前约翰霍普金斯大学还开过:

不过似乎在去年我学完后没有再开了。

了解了R,Python,下一步就是大名鼎鼎的Hadoop生态系统了,Udacity上的Intro to Hadoop and MapReduce是不错的入门选择,之后IBM 的大数据大学上的Hadoop,云计算,课程也是不错的选择。

数据科学之用

一切技术最终都要回归商业的本质,掌握了数据科学之道和数据科学之术,我们还需要将其应用于商业中。这里首当其冲的就是如何把从数据中解读的智慧表达出来,说服别人,这里要推荐来自密歇根大学的Introduction to Public Speaking。这门课可以帮助你更好的组织你的讲演,演示等(目前这门课正在开课中)。

除了表达能力,很多时候我们的数据不是单纯的数据,我们需要理解数据分析与公司战略的关系,如果我们要开发数据产品,那么它是如何影响我们的运营,财务决策的,当然最终所有的一切都会受到宏观经济的影响,以下的几门课程可以帮助你更好的理解数据之用:

最后我要推荐Data Science for Business这本书,这本书将数据科学之道与用完美结合,亚马逊上五星评价!

其它资源

除了以上列出的课程,你也可以参考:

顺带把约翰霍普金斯数据科学9门课的总结贴这里

http://mooc.guokr.com/post/606482/

上面所列的大部分课程我已经完成,如果你想与我探讨数据科学,可以访问我的网站或者email我 jiangblog#gmail.com,我在软件行业有10年以上的开发管理经验,相信我们一定能互相学习,.记得把#替换成@;-)

### 三级标题:嵌入式C语言基础知识概述 嵌入式系统通常具有有限的硬件资源,如内存、处理器速度等。C语言提供了对硬件的直接访问能力,开发者可以通过指针操作内存,优化代码的存储和执行效率[^1]。 #### 芯片原理 一个完备的嵌入式系统硬件架构通常包括主控芯片(SoC)、外围设备、电源管理模块等部分。SoC设计是嵌入式系统的核心,它集成了处理器、内存控制器、外设接口等功能模块[^3]。 在嵌入式系统中,常见的主控芯片包括ARM Cortex-M系列、AVR、PIC等。这些芯片通常具备低功耗、高性能的特点,适用于各种应用场景。 #### 编译器基础 编译器在嵌入式系统开发中扮演着至关重要的角色。它将高级语言代码转换为特定微处理器或微控制器可以理解和执行的机器语言。选择合适的编译器对于确保代码效率和兼容性至关重要[^2]。 常用的嵌入式C语言编译器有GCC(GNU Compiler Collection)、Keil MDK、IAR Embedded Workbench等。这些编译器支持多种处理器架构,并提供优化选项以提高代码性能。 #### 操作系统基础知识 嵌入式操作系统(RTOS, Real-Time Operating System)为嵌入式应用提供了任务调度、内存管理、中断处理等功能。常见的嵌入式操作系统有FreeRTOS、uC/OS-II、Zephyr等。 使用RTOS可以简化复杂系统的开发,提高系统的可靠性和实时性。例如,在FreeRTOS中,开发者可以创建多个任务,并通过队列、信号量等机制实现任务间通信和同步。 #### 示例代码:简单的嵌入式C程序 以下是一个简单的嵌入式C程序示例,展示了如何通过指针访问硬件寄存器: ```c // 定义GPIOA寄存器结构体(地址参考芯片手册) typedef struct { volatile uint32_t MODER; // 模式寄存器 volatile uint32_t ODR; // 输出数据寄存器 } GPIO_TypeDef; #define GPIOA_BASE 0x40020000 GPIO_TypeDef *GPIOA = (GPIO_TypeDef *)GPIOA_BASE; // 配置PA5为输出模式(01b << 10) GPIOA->MODER |= (1 << 10); // 第10-11位设为01 // 翻转PA5电平 GPIOA->ODR ^= (1 << 5); // 异或操作 ``` 上述代码展示了如何配置STM32微控制器的GPIO引脚为输出模式,并翻转该引脚的电平[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值