跳到主要内容

12 篇博文 含有标签「数据分析」

数据分析和数据科学

查看所有标签

浅谈数据:数据领域需要掌握些什么?

· 阅读需 5 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

“据不完全统计,数据从业者的白头发占比高于同年龄段的平均值”---某数据从业者

数据(Data),这个对不少人来说熟悉而神秘的词语,似乎已成为各行各业都在追捧的图腾。管理者们喜欢看到五颜六色的炫酷报表,数据分析师们热衷于构建专业复杂的概率模型,业务员们将数据仪表盘作为自己能否完成业绩目标的指南针。最近十几年,数据行业飞速发展,诞生了大量让人望而生畏的专业名词,例如大数据(Big Data)、数据科学(Data Science)、数据湖(Data Lake)、数据网络(Data Mesh)、数据治理(Data Governance);当然,那些“传统”的专业词汇也让人头疼,例如数据仓库(Data Warehouse)、商业智能(Business Intelligence)、数据集市(Data Mart)、数据挖掘(Data Mining);而更可怕的事实,很多人可能还不清楚这些名词跟最近大火大热的人工智能(Artificial Intelligence)、机器学习(Machine Learning)、深度学习(Deep Learning)有什么联系。这些火热的名词背后,都是数据领域野蛮发展的必然结果。

专业医生还是算命先生?

多年前,互联网行业蓬勃发展,而数据行业的泡沫也日益增长。数据作为互联网应用的副产物,容量巨大而又丰富,很多互联网企业一门心思想要从中获取进一步增长,这是因为很多企业家将其视为金矿,进而也让数据挖掘工程师们成为了炙手可热的明星职业。之后,更火的职业应运而生,数据科学家(Data Scientist)被称为 21 世纪最性感的职业。

data-science

数据科学家职业的火爆是由于它要求多方面的经验能力:

  • 编程能力:至少要用 Python 或 R 进行数据清洗、分析、建模
  • 数理统计:熟练掌握概率论、微积分、离散数学等专业学科知识
  • 业务知识:对相关业务领域的市场、流程、宏观趋势有深刻理解
  • 沟通能力:能将分析结果以普通人类能够理解的方式表达出来

除了甘特图,你还应该了解些什么软件项目管理知识

· 阅读需 18 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

A bad plan is better than no plan.

坏计划也好过没有计划。--彼得·蒂尔《从0到1》

在软件开发工程中,很少会有单打独斗的程序员。这是因为现代较常见的软件项目通常都非常复杂,所要求的人力、资源、时间也比较多,仅由一个开发者来完成大型软件项目无异于 “愚公移山”。因此,软件开发通常离不开团队协作和项目管理。所谓项目管理(Project Management),简单来就是有序的组织、规划、执行并完成项目中各个任务的一种方法论。当然,实际项目管理的范畴还远不止这些,通常还会涉及资源调配、优先级制定、进度追踪等。它是工业革命的产物,也是现代管理学的分支,它能够大幅提高工程完成效率以及成功率。本文讨论的主要是软件项目管理,相较于传统的建筑工程、机械工程等项目管理有很大的不同。早期的 IT 项目管理来自于建筑工程等传统项目管理方法论,在信息时代早期扮演了重要的角色,大幅提高了软件开发和协同效率。然而,随着 IT 行业高速发展,消费者产品需求瞬息万变,市场形势变得越来越不确定(Volatile),传统的软件项目管理模式已经不能再满足软件开发需求。因此,现代软件开发模式,例如敏捷开发(Agile Development),应运而生,成为了很多互联网企业的首选。

传统项目管理模式(例如瀑布流)有什么弊端?现代项目管理模式(例如敏捷)又有什么改进?我们是否应该完全摈弃瀑布流模式,全面拥抱敏捷开发?作为一个程序员,是否应该掌握一些项目管理知识以及相关工具?作为一个团队领导,应该如何制定项目管理流程保证开发效率和质量?如果读者有类似上述问题的疑惑,本篇文章将为您详细分析和解答。

传统方法论