普通程序员如何保持核心竞争力?

10-12 00:14 首页 程序员的那些事
 1 

编程的未来在哪里


前不久 IEEE Spectrum 发布的研究报告中,Python力压C和Java,成为最受欢迎的语言。在编程语言社区TIOBE 的排行榜中,Python也长期稳定前五。



毫无疑问的是,在成为最受欢迎语言的路上,python得到了数据科学、人工智能的极大助攻。在我们身边,也有越来越多的人在学习 Python、数据分析、机器学习。


AlphaGo的胜利,无人驾驶的成功,推荐系统的普及……越来越多的程序员在思考,编程方向在哪?未来的代码会是什么样的?人工智能会不会是这两者的终点?


目前的普遍认识是,在很长的时间内,代码依然有意义,但是编程语言会越来越简单,越来越流行,甚至成为普通人的技能。就像 Python 这样的脚本语言,仍然展现出强大的性能和广泛的应用场景。因为类似自然语言,即便从未编过程的人也能快速上手。


在大数据的推动下,我们逐渐进入了编程和应用开发的新时代。IBM 的 Watson 和 Google 的 AlphaGo 已经证明了:数据>算法。或者更精确地说,数据就是算法。现在,需要跟数据科学相关技能,才能开发出智能化的解决方案,这就需要软件工程师和数据科学家协作来设计数据收集、处理的系统。


但往往这样的协作效率并不高,所以越来越多具备数据技术的开发者,逐渐走上技术开发的制高点。因为这样的人,更具全局思维,知道如何更好地用技术去实现,做出有高可用性的架构。


 2 


程序员如何向大数据靠拢


一个比较严峻的现实是,源源不断的人才涌入(科班和转行的),使得传统IT领域的技术人员几近饱和,这种现象会越来越明显。曾经那种随便学一种编程语言,就能找份好工作的时代,一去不复返了。


随之而来的问题是,互联网技术领域的竞争愈发激烈。人才供需关系的变化,程序员的工资也不再像以前那样日益水涨船高。


而另一方面,数据分析师、数据挖掘工程师等职位,企业给出的薪资极具诱惑。即便是最初级的岗位,也能达到中高级程序员的水平,因为人才稀缺


如果你用心就会发现,身边很多开发者都在捣鼓 Python、数据分析等数据科学相关的东西。也许在未来的某个时候,就可以顺利叩开数据科学的大门。没有人知道技术的边界在哪,所以多学习一些未来有用东西,才能真正打破自身的局限。


那么普通程序员,如何向大数据方向靠拢?或者说,如何利用数据科学的技能来提升自己的核心竞争力?


这次我们带来了DC学院的数据分析课程,目的是给出一个简单的,顺畅的,易于实现的学习路径。即便没怎么接触过数据、编程功底不扎实的程序员,也能在短时间内高效掌握数据分析技能。


 3 


高效学习数据分析


这门课程为你准备了一个完善的学习路径:


全面认识数据分析 - 用python爬虫获取数据 - SQL语言 - 统计学知识  - python数据分析 - 机器学习初探 - 系统实战。(课程目录见下文大纲)


 全面认识数据分析 


首先你要清楚的是数据分析的应用场景在哪里,一般实现的流程是什么样的,总体的知识框架是什么。


比如你应该知道数据分析广泛应用于市场调研,支撑商业决策;提供精确用户分析,实现内容精准推荐;基于历史数据的分析实现精准预测……而一般的流程主要为“问题定义-数据获取-数据存取与预处理-数据建模与分析-数据可视化与报告”。


了解整体的知识架构和应用场景,可以明确学习的目标(要达成什么样的效果),简化你的学习路径,提升学习效率。


 python爬虫 


我们想要获取的很大一部分数据源于网页,爬虫可以很好地解决数据来源的问题。在这部分你将学习 Python 的基础知识:元素、变量、循环、函数……以及如何用成熟的库实现网页爬虫。需要爬取网页,自然会涉及到网页结构和访问原理,所以课程中会专门讲解HTML的知识。


课程会涉及API爬虫和网页爬虫,以满足不同场景的需求,学会基础的爬虫之后,你还将了解一些高级技巧,比如使用代理、设置爬取频率、使用cookie信息等等,来应对不同网站的反爬虫限制。课程会以豆瓣电影(图书)信息、租房信息、新闻内容等多种数据的爬取来进行操作实战。


当然除了课程的案例,你还需要进行更多的实践。比如常用的的电商网站、问答网站、点评网站、二手交易网站、婚恋网站、招聘网站的数据,都是很好的练手方式。这些网站可以获得很有分析意义的数据,最关键的是,有很多成熟的代码,可以参考。


 SQL语言与数据预处理 


课程使用MySQL作为数据库工具,数据库为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。课程中涉及数据库的增、删、查、改,提取特定情况下的数据,数据的过滤与分组聚合……这些都是数据存取必须掌握的内容。


课程会以UCI的经典数据集作为例子,进行SQL的每一种实践操作。UCI也有很多经典的数据挖掘的数据集,你也可以在学习相关的知识后进行练习,SQL这部分很简单,如果你有基础,那就更快了,但这是数据分析中很重要的一步。


很多时候我们拿到的数据是不干净的,这时候就需要进行数据的清洗,处理数据的重复、缺失、异常值等等,是获取精确分析结果的必要步骤。课程会介绍一个神器— pandas,学会 pandas 的用法,应对一般的数据清洗就完全没问题了。


 统计学知识 


数据整体分布是怎样的?什么是总体和样本?中位数、众数、均值、方差等基本的统计量如何应用?如果有时间维度的话随着时间的变化是怎样的?如何在不同的场景中做假设检验?数据分析方法大多源于统计学的概念,在课程中你可以掌握数据分析所需要的全部统计学知识。


有了统计学的基本知识,你就可以用这些统计量做基本的可视化分析了。通过可视化的方式来描述数据的指标,其实可以得出很多结论了,比如排名前100的是哪些,平均水平是怎样的,近几年的变化趋势如何……


课程会教你使用 Seaborn(python包)在做这些可视化的分析,你会轻松地画出各种可视化图形,并得出具有指导意义的结果。


 python数据分析 


如果你有一些了解的话,就知道目前市面上其实有很多python数据分析的书籍,但每一本都很厚,学习阻力非常大。课程精选了最有实战意义的那些技能,并加以融会贯通,以减少不必要的信息。比如用 Python 实现不同案例的假设检验,其实你就可以对数据进行很好的验证。


课程会以回归分析的方法为重点,展示真实数据中如何通过回归进行预测。通过线性回归和逻辑回归,其实你就可以对大多数的数据进行回归,并得出相对精确地结论。比如DataCastle的训练竞赛“房价预测”和“职位预测”,都可以通过回归分析实现。


另外,课程中会通过 scikit-learn(python包)来实现数据分析的建模全部流程,通过完整的案例来复现真实场景的数据分析项目实现过程。


 机器学习初探 


课程除了基本的数据分析方法,也会介绍一些基本的机器学习方法,比如分类、聚类,让你对更高级的技术有所了解。但其实你掌握了python数据分析,其实学习机器学习、数据挖掘会非常的容易。


另外,老师会教会你一种模型优化的方法 - 特征选择。其实就是大名鼎鼎的特征工程的Light版本,通过有效的特征选取,将能够很好地提升数据分析的精确度。


 系统实战 


这个时候,你就已经具备了数据分析的基本能力了。但是还要根据不同的案例、不同的业务场景进行实战。能够独立完成分析任务,那么你就已经打败一大半所谓的数据分析师了。


我们也准备三个基于真实数据集的训练竞赛,供你练习,提交答案即可获得成绩、查看排名。


从给定的房屋基本信息以及房屋销售情况等,建立回归模型预测房屋的销售价格。


从给定的影响员工离职的因素和员工是否离职的记录,建立逻辑回归模型预测有可能离职的员工。


从给定的北京PM2.5浓度及天气数据,建立回归分析及其他数据挖掘模型分析北京空气污染情况。


附:《数据分析(入门)》课程大纲

60天入门数据分析师



第一章:开启数据分析之旅 (1天)

1) 数据分析的一般流程及应用场景 

2) Python 编程环境的搭建及数据分析包的安装 


第二章:获取你想要的数据 (2周)

1) 获取互联网上的公开数据集 

2) 用网站 API 爬取网页数据 

3) 爬虫所需的 HTML 基础 

4) 基于 HTML 的爬虫,Python(Beautifulsoup)实现 

5) 网络爬虫高级技巧:使用代理和反爬虫机制 

6) 应用案例:爬取豆瓣 TOP250 电影信息并存储 


第三章:数据存储与预处理 (2周)

1) 数据库及 SQL 语言概述 

2) 基于 HeidiSQL 的数据库操作 

3) 数据库进阶操作:数据过滤与分组聚合 

4) 用 Python 进行数据库连接与数据查询 

5) 其他类型数据库:SQLite&MongoDB 

6) 用 Pandas 进行数据预处理:数据清洗与可视化 


第四章:统计学基础与 Python 数据分析 (3周)

1)探索型数据分析:绘制统计图形展示数据分布 

2)探索型数据分析实践:通过统计图形探究数据分布的潜在规律 

3)描述统计学:总体、样本和误差,基本统计量 

4)推断统计学:概率分布和假设检验 

5)验证型数据分析实践:在实际分析中应用不同的假设检验 

6)预测型数据分析:回归、分类、聚类 

7)预测型数据分析:用特征选择方法优化模型 

8)预测型数据分析实践:用 scikit-learn 实现数据挖掘建模全过程 

9)预测型数据分析实践:用 rapidminer 解决商业分析关键问题 

10)高级数据分析工具:机器学习、深度学习初探


第五章 报告撰写及课程总结 (1周)

1) 养成数据分析的思维 

2) 数据分析的全流程及报告撰写的技巧 

3) 课程回顾以及一些拓展 



 每课都有学习资料 



如果你有看过教学视频的经历,那么相信你一定遇到过这样一些问题:


  • 课程需要一定的基础知识,但是老师并不会讲;

  • 老师按照自己的理解水平来授课,很多地方听不懂;

  • 老师的写的代码自己再写一遍,问题百出;

  • 由于有深入的需求,寻找资料困难;

  • ………………


考虑到各种各样的问题,课程中每一节都准备了学习资料。主要包含四个部分:


  1. 课程中重要的知识点,资料中会进行详细阐述,帮助理解;

  2. 默认你是个小白,补充所有基础知识,哪怕是软件的安装与基本操作;

  3. 课程中老师的参考代码打包,让你有能力去复现案例;

  4. 提供超多延伸资料和更多问题的思路和实践代码,让你可以去做更多的事情。



某节参考资料部分截图


 带你一步步实操的导师 


课程采用录播的形式,你可以按照自己的节奏来规划学习节奏。为准备这个课程,DC学院吸取了无数数据分析师和竞赛选手爬坑的经验,研究了目前主流的数据分析书籍和课程,还有,邀请了两位能够为你提供学习方向的绝对大牛老师:


【课程主讲老师】



王乐业

香港科技大学博士后


王乐业,香港科技大学博士后,法国国立电信学院及巴黎六大计算机科学与技术专业博士。本科和硕士毕业于北京大学计算机科学与技 术专业。目前研究方向研究方向为城市时空数据挖掘。从事研究工作包括通过社交网络识别个人兴趣、通过移动通信网络推理人群移动模式、以及通过公共交通数据优化交通站点分布等。发表论文20余篇,其中SCI10余篇,引用300余次。乐业老师是一位乐于分享的学者,善于用简单的方法解答复杂的问题。在他看来,找到好的学习方法和路径,其实可以少走很多弯路。




【课程研发老师】



周涛

电子科技大学教授


周涛,电子科技大学教授、大数据研究中心主任。主要从事统计物理与复杂性,数据挖掘与数据分析方面的研究。在 Physics Reports、PNAS、Nature Communications等国际 SCI 期刊发表300余篇学术论文,引用超过17000次,H 指数为63。2015年入选全国十大科技创新人物,超级畅销书《大数据时代》译者,畅销书 《为数据而生:大数据创新实践》作者。周涛教授参与课程的研发和课程体系的设计,以多年的教学科研和企业数据团队管理经验为课程的顶层设计保驾护航。



除此之外,你还会遇到指导你每一个细节的答疑老师,解决你学习路上的每一个困惑。还有一群优秀的、有前瞻性的开发者,跟你一起,探索数据科学技术。在暂短时间内,有不少同学都有了从0到1的进步:








种一棵树最好的时间是十年前,其次是现在

即便你不是一心成为职业的分析师

你也需要一项提升竞争力的技能


DC学院数据分析课程,60天入门数据分析

“开发者专享”,¥399 (原价¥599)

(限前300名)


名额有限,先到先得

长按下方二维码开始学习




如有任何疑问或购买问题

请加Alice小姐姐微信:




大的趋势慢慢来临,大多科技的进步都超越了人类自身的预估,所以不要怀疑技术的力量。记得很早的时候,大家都信奉PHP是很牛的语言,能做网站的都是大牛。后来移动互联网浪潮来了,大家都去学ios、Android而现在类似 Python 的脚本语言、函数式编程越来越流行,大数据兴起,所以我们的未来在哪呢?


对程序员来讲,知识、技术是一方面,是容易习得的,也是较浅的层面。较深的层面,是思维与视野。这给我们的启示是,指望在一个细小的领域走下去,风险越来越大。即便是在一个领域精通,谁知道是不是走进了无法通向未来的死胡同呢?


所以打破边界、终身学习这样的事情,值得每一个开发者去尝试。也建议你学习一些未来趋势的知识,保持自己的核心竞争力。下决心很简单,脚踏实地立即行动很难,不过没有人阻止学习这件事情,那么就从现在开始吧。


点击阅读原文,加入课程。


首页 - 程序员的那些事 的更多文章: