分类目录归档:极客时间

Deep Learning Specialization on Coursera

推荐系统三十六式:用知识去对抗技术不平等

前段时间和头条的一个工程师聊天,他在发布校招信息后发现投NLP算法的非常多,但是投推荐系统的寥寥,一方面,可能是我这边同学样本偏NLP的居多,另外一个很重要的原因,在校的同学很难有机会接触到大厂的推荐系统。且不说在校的同学,就是中小厂的工程师,也很难有机会接触稍大一些规模的推荐系统。一方面,大厂有需求有动力去搞推荐系统和推荐算法,这是可以转化为真金白银的,另外一方面,大的需求背后又是相对匮乏的推荐系统体系化知识普及:

在复杂网络中,雄踞顶端的节点无法体会长尾的疾苦。推荐系统的技术应用现状也如此,大厂门一骑绝尘,感觉分分钟就要达到奇点的节奏,然而更普遍的是:太多中小厂、工程师们还不知道一个推荐系统如何才能从0到1诞生,这需要去了解哪些知识?

这是《推荐系统三十六式》开篇词”用知识去对抗技术不平等”的一段话,这段话以及这篇文章深得我心,所以今天就安利一下这个专栏,先介绍一下有丰富业界推荐系统实战经验的刑无刀老师:

刑无刀,本名陈开江,现在是”贝壳找房“资深算法专家,从事算法类产品的研发。曾任新浪微博资深算法工程师,考拉FM算法主管。从业8年时间,他的工作和研究范围始终没有超出推荐系统,同时也是中国最专业推荐技术与产品社区之一ResysChina的特约作者,不仅经验丰富,还很会写。

这些年,他曾服务过创业公司、传统大公司和大型互联网公司,这见证了大大小小、形状各异的推荐系统的构建过程,基本都从0到1参与了这些公司的推荐系统,专栏中也凝聚了他无数的踩坑经验。

极客时间的运营同学找我推荐下这个专栏,同样的也给大家争取了一些优惠,参与拼团仅需58元,不过优惠的周期和人数都有限制,先到先得!

那为什么我要推荐这门课程呢,来,先看一下目录:

你所收获的不只是如何根据需求编写推荐算法,而是如何从整体上考虑如何构建优秀的推荐系统。说真的,但凡其中任何一个点对你的成长有帮助,这个课程费就是百倍回报。

需要说明的是,这是一个已经完结的专栏,不过很难找到一个如此系统介绍推荐系统的学习资料了,一本书不到的价格,助你全面学习推荐系统相关知识,也欢迎转发给你认为可能有需要的同事和同学。

Elasticsearch核心技术与实战

Elasticsearch视频新课,感兴趣的同学可以看看:Elasticsearch核心技术与实战

搜索是现代软件必备的一项基础功能,而 Elasticsearch 就是一款功能强大的开源分布式搜索与数据分析引擎。

它可以从海量数据中快速找到相关信息,在同领域内几乎没有竞争对手——近两年 DBRanking 的数据库评测中,ES 在搜索引擎领域始终位列第一。

当你在 GitHub 上搜索时,Elasticsearch 可以实现代码级的搜索与高亮显示 ;当你在网上购物时,ES 可为你推荐喜欢的商品;当你下班打车回家时,ES 可以通过定位附近的乘客和司机,帮助平台优化调度。

Elasticsearch 还被广泛运用于大数据近实时分析,包括日志分析、指标监控、信息安全等多个领域。

它可以探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值,甚至通过使用机器学习,做到自动识别异常状况。

作为目前最流行的开源搜索引擎,ES 在全球的下载量已超过 3.5 亿次,腾讯、滴滴、今日头条、饿了么、360 安全、小米,vivo 等国内诸多知名公司都在使用 Elasticsearch。

Elasticsearch 有什么特点?

Elasticsearch 非常容易上手,具有开箱即用的特性,你可以在极短的时间内设置好开发环境,然后快速上手使用,继而在成百上千台服务器上实现 PB 级的数据处理。

虽然上手快,但要做到深入理解并高效使用,可就没那么简单了,比如:

1. 为什么我的数据查不到,明明是有的啊!

2. 什么鬼?为什么这几条数据出现在搜索结果的前几位?

3. 生产环境我需要多少台机器,索引的分片数怎么样设置才是合理的?

4. 应该关注哪些指标,才能保证集群健康高效地运行?

5. 对于日志型应用,如何设置 Hot & Warm Architecture 节约成本,怎样管理和优化基于时间序列的索引数据,才能提高集群的整体性能?

4. 为什么我的集群脑裂了?数据损坏后,怎样才能恢复?

其实,想要掌握 Elasticsearch,除了要理解其分布式架构的原理外,还要了解一些信息检索领域的知识和相关技巧。

分享给你一张 Elasticsearch 核心知识图谱,只有对每一个知识点仔细梳理并深入理解,才能解决工作中的实际问题。

这张图谱出自阮一鸣,我之前听过他在 Elastic 中国开发者大会的分享,讲得非常不错。

最近,得知他跟极客时间合作,推出了一门视频课《Elasticsearch 核心技术与实战》,我有幸提前看到了目录和一部分内容,很想推荐给你。

在课程中,他用理论与实践相结合的方式、深入浅出地讲解了 Elasticsearch,只要你坚持学习,就可以掌握 ES 的基本概念和服务搭建,了解其运行机制和常用技巧,并通过上手实战理解 ES 在实际项目中的应用。

近几年 ES 非常热门,所以去年 Elastic 公司推出了官方的 Elastic 工程师认证考试,需要考生在 3 个小时的线上考试中,动手解决 12 个实际问题,就算有多年工作经验的老手都未必能通过。

所以,这个认证的含金量还是挺高的,有证跟没证不仅能力水平可能差一个档次,收入也有可能差一个档次。

阮一鸣说,这门课覆盖了 Elastic 认证考试的全部考点,想参加考试的朋友可以将这门课作为参考教材,这也算是「学习技能之外的 bonus」了。

关于阮一鸣

阮一鸣,eBay Pronto 平台技术负责人。Pronto 平台管理了 eBay 内部上百个 Elasticsearch 集群,数据规模超过了 4000 个节点。这些集群在 ebay 的生产环境中,支撑了包括订单搜索,商品推荐,日志管理,风险控制,IT 运维,安全监控等不同领域的服务。

作为一名互联网行业的老兵,他从业近 20 年了,在大数据、云计算和性能优化方面积累了丰富的经验。同时,他还是一名连续创业者,创办过手机游戏公司、个性化音乐推荐与分享平台 8box。

他是如何讲解 Elasticsearch 的?

如果你对 Elasticsearch 有些了解,就会发现 ES 的产品迭代速度非常快,很多老的 API 都已经被废弃不再使用,搜索到的参数配置也大多发生了变化。

市面上的书籍和教程都是基于 5.x 甚至是 2.x 版本。而在课程中,哥们儿使用 Elasticsearch 最新的 7.1 版本进行教学。

所有 ES 最新版本的特性,在课程里都会有全面和直观地展现,比如:用机器学习进行异常检测;用 Canvas 展示数据;用索引的生命周期管理工具对索引进行优化等等。

结合目录,我总结了一下,这个课大概分为 5 个部分:

1. 初识 Elasticsearch:

Elasticsearch 核心概念、工作机制与应用场景;本地开发环境搭建;倒排索引的原理与 ES 中 Analysis 的具体细节;Mapping 设置和一些基本的 Search & Aggregation API。

2. 深入了解 Elasticsearch:

理解 Elasticsearch 分布式架构的原理;相关性算分的原理;数据建模的最佳实践;深入搜索及聚合功能以提高搜索结果的相关度。

3. 管理 Elasticsearch 集群:

集群的水平扩展、参数配置、性能优化、故障诊断。

4. 利用 ELK 做大数据分析:

结合使用场景和数据,探索 Logstash、Kibana 的各项功能。

5. 应用实战工作坊:

设计了电影搜索和 Stack Overflow 用户调查问卷数据分析两个实战项目,通过上手实践,你可以巩固所学的知识点,并运用到实际项目中。

需要什么基础,能获得什么?

这门课不仅适合有 ES 使用经验的人,也适合初学者。编程知识和数据库的相关使用经验,会对你学习 ES 有一定帮助,但并不是必须的。

针对开发人员,搜索是一项被广泛需要的功能,哥们儿详细地讲解了相关的搜索概念在 Elasticsearch 中是如何对应和具体实现的。

如果你是一名 ES 的运维人员,管理了公司内部的 Elasticsearch 集群:上线前的如何进行容量规划,上线后如何保证这些集群在生产环境内稳定高效的运行,如何在凌晨识别出异常信号,及时发出告警,以避免灾难的发生。

这些问题,他在课程中都会给出相关的最佳实践。

其实,无论是开发还是运维,架构师抑或数据分析师,甚至是产品经理,都应该学一学 Elastic Stack。

在大数据时代,近实时的搜索和分析能力,会让你唯快不破,洞见未来。——这句 copy 了阮一鸣,要我说其实就是升职加薪走上人生巅峰呗,这话够实在吧。

跟着好好学,结合课程中的练习和实践,相信你一定能学以致用,基于 Elasticsearch 构建出你自己的搜索和数据分析产品。

这部分好像写得有点长啊,要我总结就一句:放心学,学得会,用得着。

课程大纲
第一部分:初识 Elasticsearch
第 1 章:概述
课程概述及学习建议
Elasticsearch 简介及其发展历史
Elastic Stack 家族成员及其应用场景
第 2 章:安装上手
Elasticsearch 的安装与简单配置
Kibana 的安装与界面快速浏览
在 Docker 容器中运行 Elasticsearch,Kibana 和 Cerebro
Logstash 安装与导入数据
第 3 章:Elasticsearch 入门
基本概念(1):索引,文档和 REST API
基本概念(2):节点,集群,分片及副本
文档的基本 CRUD 与批量操作
倒排索引入门
通过分析器进行分词
Search API 概览
URI Search 详解
Request Body 与 Query DSL 简介
Query String & Simple Query String 查询
Dynamic Mapping 和常见字段类型
显式 Mapping 设置与常见参数介绍
多字段特性及 Mapping 中配置自定义 Analyzer
Index Template 和 Dynamic Template
Elasticsearch 聚合分析简介
第一部分总结
第二部分:深入了解 Elasticsearch
第 4 章:深入搜索
基于词项和基于全文的搜索
结构化搜索
搜索的相关性算分
Query & Filtering 与多字符串多字段查询
单字符串多字段查询:Dis Max Query
单字符串多字段查询:Multi Match
多语言及中文分词与检索
Space Jam,一次全文搜索的实例
使用 Search Template 和 Index Alias 查询
综合排序:Function Score Query 优化算分
Term & Phrase Suggester
自动补全与基于上下文的提示
配置跨集群搜索
第 5 章:分布式特性及分布式搜索的机制
集群分布式模型及选主与脑裂问题
分片与集群的故障转移
文档分布式存储
分片及其生命周期
剖析分布式查询及相关性算分
排序及 Doc Values & Fielddata
分页与遍历:From, Size, Search After & Scroll API
处理并发读写操作
第 6 章:深入聚合分析
Bucket & Metric 聚合分析及嵌套聚合
Pipeline 聚合分析
作用范围与排序
聚合分析的原理及精准度问题
第 7 章:数据建模
对象及 Nested 对象
文档的父子关系
Update By Query & Reindex API
Ingest Pipeline & Painless Script
Elasticsearch 数据建模最佳实践
第二部分总结回顾
第三部分:管理 Elasticsearch 集群
第 8 章:保护你的数据
集群身份认证与用户鉴权
集群内部安全通信
集群与外部间的安全通信
第 9 章:水平扩展 Elasticsearch 集群
常见的集群部署方式
Hot & Warm 架构与 Shard Filtering
如何对集群进行容量规划
分片设计及管理
在公有云上管理与部署 Elasticsearch 集群
在私有云上管理 Elasticsearch 集群的一些方法
第 10 章:生产环境中的集群运维
集群健康与问题排查
生产环境常用配置与上线清单
监控 Elasticsearch 集群
诊断集群的潜在问题
解决集群 Yellow 与 Red 的问题
集群压力测试
段合并优化及注意事项
缓存及使用 Breaker 限制内存使用
一些运维的相关建议
第 11 章:索引生命周期管理
使用 Shrink 与 Rollover API 有效管理时间序列索引
索引全生命周期管理及工具介绍
第四部分:利用 ELK 做大数据分析
第 12 章:用 Logstash 和 Beats 构建数据管道
Logstash 入门及架构介绍
Beats 介绍
第 13 章:用 Kibana 进行数据可视化分析
使用 Index Pattern 配置数据
使用 Kibana Discover 探索数据
基本可视化组件介绍
Visual Builder 介绍
构建 Dashboard
第 14 章:探索 X-Pack 套件
用 Monitoring 和 Alerting 监控 Elasticsearch 集群
用 APM 进行程序性能监控
用机器学习实现时序数据的异常检测
用 ELK 进行日志管理
用 Canvas 做数据演示
用 Graph 进行数据分析
用 Timelion 分析时序型数据
第五部分:应用实战工作坊
实战 1:电影搜索服务
项目需求分析及架构设计
将音乐数据导入 Elasticsearch
搭建你的电影搜索服务
实战 2:Stackoverflow 用户调查问卷分析
需求分析及架构设计
数据 Extract & Enrichment
构建 Insights Dashboard
备战:Elastic 认证
Elastic 认证介绍
考点梳理

Kafka 核心技术与实战:6个步骤,全方位掌握 Kafka

毋庸置疑,目前 Apache Kafka 是整个消息引擎领域的执牛耳者,也是大数据生态圈中颇为重量级的一员。从最早诞生于 LinkedIn 的“分布式消息系统”,到现在集成了分发、存储和计算的“流式数据平台”,Kafka 广泛应用于国内外大厂,比如 BAT、字节跳动、美团、Netflix、Airbnb、Twitter 等等。

我身边也有越来越多的工程师们,把 Kafka 加入到自己的学习列表。的确,我们仅需要学习一套框架,就能在实际业务系统中实现消息队列应用、应用程序集成、分布式存储构建,甚至是流处理应用的开发与部署,可谓相当超值了。

不过,想要学透 Kafka 没有想象中的那么简单,学习路径和方法尤为重要。我的建议是:千万不要直接扎到具体的细节中,亦或是从一个很小的点开始学习。因为你无法建立全局的认知观,从而实现系统地学习。

在我看来,针对不同的角色,Kafka 的学习路径是不一样的。

如果你是软件开发工程师,可以先根据编程语言寻找对应的 Kafka 客户端,然后去官网上学习代码示例,正确编译和运行这些样例。接下来,你可以尝试修改样例代码并使用其他的 API,之后观测你修改的结果。如果这些都没有难倒你,你可以自己编写一个小型项目来验证下学习成果,然后就是改善和提升客户端的可靠性和性能了。到了这一步,就熟读一遍 Kafka 文档吧,确保你理解了那些可能影响可靠性和性能的参数。最后是学习 Kafka 的高级功能,比如流处理应用开发。

如果你是系统管理员或运维工程师,那么学习目标应该是如何根据实际业务需求评估、搭建生产Kafka 线上环境。对生产环境的监控也是重中之重的工作,Kafka 提供了超多的 JMX 监控指标,你可以选择任意你熟知的框架进行监控。有了监控数据,作为系统运维管理员的你,势必要观测真实业务负载下的 Kafka 集群表现。之后利用已有的监控指标来找出系统瓶颈,然后提升整个系统的吞吐量,这是最能体现你工作价值的地方。

说到这里,送大家一张 Kafka 学习框架,出自 Kafka 资深专家胡夕之手。我想你应该听过他的书《Apache Kafka实战》,豆瓣评分 8.8 分。胡夕根据他的实战经验,把 Kafka 学习框架整理成了下图。具体地,分为 Kafka 入门、Kafka 的基本使用、客户端详解、Kafka 原理介绍、Kafka 运维与监控以及高级 Kafka 应用。

这些内容,胡夕都会在他在极客时间新上线的《Kafka 核心技术与实战》专栏里为你一一讲解,跟着他对 Apache Kafka 的理解和实战方面的经验,相信你一定能透彻理解 Kafka、更好地应用 Kafka。

胡夕是谁?

胡夕,现任人人贷公司计算平台部总监,也是 Apache Kafka 的一名活跃代码贡献者。

在过去 5 年中,他经历了 Kafka 从最初的 0.8 版本逐步演进到 2.3 版本的完整过程,可以说对 Kafka 及其他开源流处理框架与技术有深刻理解。他主导过多个十亿级/天的消息引擎业务系统的设计与搭建,具有丰富的线上环境定位和诊断调优经验,也曾给多家大型公司提供企业级 Kafka 培训。

他的书《Apache Kafka实战》,读者好评如潮,说内容实战,看完上手即用,在工作中帮大家解决了问题。

你可能会问,《Kafka 核心技术与实战》专栏与书的区别又是什么呢?

其实区别还是挺大的,书是基于 Kafka 1.0 版本撰写的,但目前 Kafka 已经演进到 2.3 版本了,书中的部分内容已经过时甚至是不准确了,而《Kafka核心技术与实战》专栏的写作是基于 Kafka 的最新版。

另外,《Kafka核心技术与实战》专栏作为一次全新的交付,胡夕希望能用更轻松更容易理解的语言和形式,帮你获取到最新的 Kafka 实战经验。

你将获得?

专栏的第一部分会介绍消息引擎这类系统大致的原理和用途,以及作为优秀消息引擎代表的 Kafka 在这方面的表现。

第二部分则重点探讨 Kafka 如何用于生产环境,特别是线上环境方案的制定。

在第三部分中会陪你一起学习Kafka客户端的方方面面,既有生产者的实操讲解也有消费者的原理剖析,你一定不要错过。

第四部分会着重介绍 Kafka 最核心的设计原理,包括 Controller 的设计机制、请求处理全流程解析等。

第五部分则涵盖 Kafka 运维与监控的内容,助你获得高效运维 Kafka 集群以及有效监控Kafka的实战经验。

最后一个部分会简单介绍一下 Kafka 流处理组件 Kafka Streams 的实战应用,希望能让你认识一个不太一样的 Kafka。

Facebook工程师:从工程角度,系统掌握Python

推荐FB资深工程师景霄开设的《Python核心技术与实战》新专栏,从工程的角度,重新理解 Python,做到真正的“即学即用” http://gk.link/a/103fc

作者介绍:
景宵

本科毕业于武汉大学电子工程系(专业第一),后进入哥伦比亚大学攻读计算机硕士学位。

毕业后顺利入职Facebook,目前在核心组Feed Ranking,从事机器学习的相关工作。

这个专栏是从工程的角度来讲解Python这门编程语言,不会死抠一些很偏的知识点,相反,会从实际出发,以工作中遇到的实例为主线,去讲解Python的知识点和应用。本专栏中基于Python最新版本3.7,有大量独特的案例和见解,以及不少作者本人阅读源码后的体会,并且难易兼顾,专栏中既有简单的基础知识,也有进阶的课程,会尽量的做到“老少皆宜”。

你将获得:
从工程角度掌握 Python 高阶用法
独立开发 Python 项目的能力
完整的 Python 学习路径
硅谷一线工程师的独家经验分享
新目录
一、Python基础知识

方法:如何逐步突破,成为Python高手(Jingxaio)
工具:为什么必学Jupyter Notebook ? (Yuannan)
列表和元祖,到底用哪一个?(Jingxaio)
字典、集合,你真的了解吗? (Jingxiao)
深入浅出字符串 (Jingxiao)
Python“黑箱”:输入与输出 (Tan)
修炼基本功:条件与循环 (jingxiao)
提高程序的稳定性:异常处理 (jingxiao)
不可或缺的自定义函数(Jingxiao)
简约不简单的匿名函数(Jingxiao)
你好,面向对象(上)(Tan)
你好,面向对象(下)(Tan)
搭建积木:Python 模块化 (Tan)
答疑(一)(jingxiao)

二、Python进阶核心知识

Python对象的比较、复制 (Jingxiao)
值传递、引用传递or其他,Python里参数是如何传递的?(jingxiao)
强大的装饰器 (jingxiao)
metaclass:是潘多拉魔盒还是阿拉丁神灯 ?(Yuannan)
深入理解迭代器和生成器 (Tan)
揭秘Python协程 (Tan)
Python并发编程之Future (jingxiao)
Python并发编程之Asyncio (jingxiao)
你真的懂Python GIL(全局解释器锁)吗?(yuannan)
带你解析Python垃圾回收机制(Tan)
SWIG:TensorFlow等流行框架背后的Python/C++混合编程技术(Yuannan)
答疑(二)(jingxiao)

三、规范:编写高质量的Python程序

活都来不及干了,还有空注意代码风格?!【yuannan】
学会合理分解代码,提高代码可读性 (Tan)
如何合理运用assert?(Jingxiao)
巧用上下文管理器和With语句精简代码 (Jingxiao)
真的有必要写单元测试吗 (jingxiao)
pdb & cProfile:调试和性能分析的法宝(Jingxiao)
答疑(三)(jingxiao)

四、实战:带你搭建量化交易系统 (Tan)

初探量化世界
RESTful & Socket: 搭建你的交易后台核心
Pandas & Numpy: 策略与回测系统
Kafka & Rabbitmq: 自动化交易流水线
Mysql: 日志和数据存储系统
Django: 搭建监控平台
答疑(四)

五、分享:技术见闻和感想 (Jingxiao)

硅谷一线工程师的工作日常
细数服务器端开发的注意事项
提高市场竞争力:如何成为一个全栈工程师?

景霄目前从事机器学习的相关工作,主要负责是人工智能的推荐排序系统与算法。他曾领导多个上亿用户级产品的开发与落地,可以说工程与实战经验非常丰富。最近,他把自己的「工程角度」Python学习法整理了出来,跟极客时间合作了《Python核心技术与实战》专栏,希望带你从工程的角度,重新理解 Python,做到真正的“即学即用”。

近几年,Python 的受欢迎程度可谓是扶摇直上,加入 Python 学习大营的人越来越多。不过,随之而来的是,竞争越来越激烈。迷茫的声音也越来越多,我经常看到粉丝在后台留言:

Python程序员都有哪些发展方向?大概都有哪些技能点?

刚学了半年多 Python,想找个薪资高一点的工作,有什么建议吗?

想学 Python 爬虫,要从哪里开始入手?

想成为机器学习工程师,该怎样才能拿到 Offer ?

……

其实,大家迷茫的根本原因,是对 Python 的职业成长路径不清楚,也不了解各个阶段对应的核心知识点。因此,我给大家整理了一份「 Python 职业成长路径图」,涵盖Python程序员职场发展的4个方向,也列出了各个方向需要掌握的核心知识点,分享给你。

入门Python,夯实基础,掌握Python核心知识,比如基本的数据结构、面向对象编程、并发编程等等,成为一名合格的Python工程师;

Web工程师:当你掌握了Python中高阶知识,再去学一些单元测试、Flask框架、数据库使用等,就可以往Web工程师发展;

爬虫工程师:如果你对爬虫感兴趣,这是个不错的选择。你的知识库还需要再添加一块内容:学习爬虫开发;

数据分析工程师:大数据、数据分析这几年大火,相对应的,你还需要学习Matplotlib绘图、Pandas、10大核心算法等内容;

机器学习工程师:跟这个方向相关的词,还有“高薪”、“稀缺”,不过想成为机器学习工程师并非易事,你需要花更多的时间和精力去专研深度学习。

可以说,不管你往哪个方向发展,都非常有前景,特别是数据分析工程师和机器学习工程师。不过,想成为 Python 高手,找到一个好方向固然重要,更重要的是你的学习方法是否正确。

我认识这么一个牛人,他在读大学的时候才开始接触编程,但一路进入哥伦比亚大学计算机系读研、毕业后进入 Facebook 做机器学习工程师,他是怎么做到的呢?

他说,不光他自己,包括他在Facebook 认识的编程牛人们,都特别善于从「工程角度」、以实用为出发点来思考和学习一门语言。

方法是:花很短的时间看完基础语法,然后去了解一些重难点、易错点,最后自己亲自动手完成一个项目,达到融会贯通的效果。这样下来,可能几周时间就掌握得差不多了。

你看,这样从「工程角度」去学习和理解一门语言,会让你达到事半功倍的效果。

再跟你重点介绍一下,这位牛人叫景霄,是Facebook资深工程师。目前从事机器学习的相关工作,主要负责是人工智能的推荐排序系统与算法。他曾领导多个上亿用户级产品的开发与落地,可以说工程与实战经验非常丰富。

最近,他把自己的「工程角度」Python学习法整理了出来,跟极客时间合作了《Python核心技术与实战》专栏,希望带你从工程的角度,重新理解 Python,做到真正的“即学即用”。

相比市面上大多数理论且远离实际工程的学习资料,这个专栏特点很明显:

1.他不会死抠一些很偏的知识点,而是从实际出发,以工作中遇到的实例为主线,去讲解 Python 的核心技术和应用;

2.有完整的Python学习路径,从基础语法到高级用法,再到项目实战开发。让你把学到知识点通过项目都串联起来,形成你自己的Python 学习框架图;

3.整个专栏内容都是基于 Python 最新的3.7版本来讲解,告别网上那些陈旧不更新的学习内容,毋庸置疑,Python 3才是Python的未来。

具体地,《Python核心技术与实战》分成以下四个模块。

1.Python基础入门

必学知识:【Python基础数据结构】【Python基础语法】【文件操作】【错误与异常处理】【Python面向对象】【模块化】

第一步,你必然需要掌握的Python基础知识。这个专栏不仅仅只讲基础概念、操作,同时也为你整理了很多进阶难度的知识,或是一些重难点、易错点等需要注意的地方。

2.Python进阶核心知识

必学知识:【Python协议】【Python高级语法】【Python正则表达式】【Python并发编程】【垃圾回收机制】【项目实战】

第二步,进阶 Python 的核心知识点,比如装饰器、并发编程等等。如果你的工作只是写100行以下的脚本程序,可能不怎么会用得到。但如果你做的是大型程序的开发,则非常有必要。

3.规范:编写高质量的Python程序

这部分着重于教你把程序写得更加规范、更加稳定,用具体的编程操作和技巧,教你提高代码质量。比如,如何合理地分解代码、运用 assert,如何写单元测试等等。

4.Python实战,串联整个知识体系:带你搭建量化交易系统

必学知识点:【RESTful】【Socket】【Pandas】【Numpy】【Kafka】【RabbitMQ】【MySQL】【Django】

真正要掌握一门编程语言,仅仅学会分散的知识点是不够的,还必须要把知识点串联起来,做一些中型的项目才能有更深的领悟与提高。这部分,景霄用量化交易系统这个具体的实战案例,带你综合运用前面所学的Python知识。

再提一句

这个专栏里的所有内容都基于Python最新的3.7版本来讲解,其中包含着景霄大量的独家解读、案例,以及不少他阅读源码后的发现和体会。同时,在层次划分上,景霄希望能难易兼顾,循序渐进。专栏中既有核心的基础知识,也有高级的进阶操作,尽量做到“老少皆宜”。

极客时间新课:Web 协议详解与抓包实战

极客时间新课《Web 协议详解与抓包实战》视频课,访问课程主页:http://gk.link/a/103bR

发现大部分技术人,多多少少都会遇到下面的困惑,比如:

AJAX 跨域访问时总被浏览器的同源策略阻止,其背后的原理及符合其设计思想的解决方案是什么?

缓存可以提升性能,但什么样的 HTTP 消息才会被浏览器或者代理服务器缓存呢?

抓包时收到 4xx 或者 5xx HTTP 响应码,这意味着服务器端发生了什么?

当我们维护 HTTPS 连接时,如果要优化TLS/SSL 的卸载性能,应该从哪里入手?

定位问题时,发现本地的 TCP 连接状态中出现了FIN_WAIT、CLOSE_WAIT 或者TIME_WAIT,都是什么原因引起的?应该如何解决?

想要提升 TCP 连接的传输速度,可服务器上相关的系统参数多达数十个,究竟该怎么调整?

时下逐渐普及的 IPv6 ,在报文上到底与 IPv4 协议有何差别?

你会发现,这些问题其实都和 Web 协议密切相关。我常常听到身边人抱怨“学不动了”,之所以会这样,大多是因为没有掌握好互联网体系中的底层知识。这些知识点相对稳定,而其他时刻变化的知识点是构建在这些知识点之上的。一旦掌握好,就可以长久使用,并且保持快速学习的能力。

Web 协议就是其中非常重要的一个模块。虽然它常常要兼容 internet 中非常古老或者有着突破性创新的浏览器或者服务器,从而也在时刻进化,但只要我们抓住它设计时背后的指导原则,系统地将 Web 协议转化为我们头脑中的结构体知识,就可以对我们学习前后端开发框架、面向连接的编程语言、各种分布式组件、架构设计、微服务编程等都起到事半功倍的效果。

可以说,无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速、高效地解决问题,Web 协议一定是你绕不过去的一道坎。熟练掌握各种常用 Web 协议,可以帮你在工作中轻松应对各种网络难题。

如果你是前端工程师,可以快速定位问题的根源在后端还是前端,对网页性能的提升会有更多的思路。

如果你是后端工程师,可以更清晰地理解Web容器的工作原理,在网络层面快速缩小问题范围。

如果你是运维工程师,可以更明确地规划硬件及网络资源,对于故障节点的恢复也会有更系统的解决方案。

如果你是测试工程师,可以对压测工具的原理有更深入的理解,对RPC测试用例的构造也会更全面。

如果你是架构师,将会对分布式系统下的高可用架构设计和性能优化等问题有更加体系化的认识。

可是,想要真正掌握 Web 协议,并没有想象中那么容易。我发现大部分人在学习时,都卡在下面这些问题上:

Web协议的体系庞大,大多概念过于抽象,导致初学者很容易从入门到放弃。

很难快速上手,就算弄懂了复杂的概念,工作中一遇到复杂问题,还是一头雾水,不知道如何下手。

网上有很多文章可以参考,但要不就是知识点零散,要不就是解释得蜻蜓点水,无法深入到底层。

市面上相关的课程很少,要不就是仅仅讲述某一个协议,要不就是只从理论出发来讲解,实战性不强。

除此之外,很少有人会在文章或课程里通过抓包去把 Web 协议的各个细节呈现出来,然后掰开揉碎了讲给大家。基于此,我推荐你陶辉老师在极客时间开的《Web 协议详解与抓包实战》视频课,完全从实战出发,在关键场景中结合抓包工具进行实战分析,为你深入浅出地讲解常见 Web 协议涉及到的核心知识,并彻底掌握这些协议。

陶辉是谁?

陶辉,现在是智链达 CTO。他曾担任阿里云高级专家,也在华为、腾讯、思科等公司从事过服务器端的研发工作。相信陶辉来讲 Web 协议详解与抓包实战,一定会带给你不一样的收获。为什么这么说?

在华为他负责 iMAP 网管系统的研发,在通过 SNMP 等协议管理众多网络设备的过程中,对路由器交换机如何处理协议栈、选择路由、转发报文等流程有了深入的理解;

在腾讯QQ空间,通过使用自定义的、基于 TCP 的 Qzone 协议传递巨量的数据,他对如何设计出高性能、可扩展的应用协议有了丰富的实践经验;

在思科他从事 Nginx 服务的研发,对 Web 服务器如何高效地处理 HTTP 协议有了全面的认识;

在阿里云作为 VPC 软件自定义网络项目中的管理系统架构师,他通过基于 Intel DPDK 自建网关、自定义网络层协议等工作,对 IDC 内部网络系统有了深刻了解。

在《Web 协议详解与抓包实战》视频课中,陶辉老师会把自己十几年积累的第一手经验毫无保留地分享给大家。

你能获得什么?

陶辉老师会跟你一起从应用层到底层,通过具体问题和场景来学习 Web 协议。具体来说,你可以有下面 4 点收获。

1. 深入理解常用 Web 协议

课程将基于应用场景深入介绍Web协议栈中最常用的HTTP/1.1、Websocket、HTTP/2.0、TLS/SSL、TCP、IP协议,这些协议处在 OSI 网络栈中的不同层级,每一层对上层协议封装、隐藏其下层协议的实现细节,而上层协议必须理解其相邻下层协议解决了什么问题,有哪些约束条件。陶辉老师会带你自上而下的学习这些协议的语法、应用场景,以建立起结构体的知识体系。

2. 快速定位和解决网络疑难杂症

网络问题最为复杂,它涉及到多样化的客户端、技术相对封闭的网络设备、层层可能修改消息的代理服务器、快速迭代中的源服务器等,当客户端与服务器由于编程、配置错误造成系统故障时,相比在某一端使用经验式的排除法查错,从网络层面定位问题更为科学、快速而有效。

3. 掌握常见抓包工具及报文分析方法

陶辉老师会配合抓包实践来带你深入了解协议细节。关于抓包工具的学习,则会遵循“即用即学”的原则,用到什么学什么,让你快速上手。

对于HTTP报文的抓包实践,主要使用 Chrome 浏览器提供的开发者工具 Network 面板,同时也将使用到 curl、telnet 命令行来模拟 HTTP 请求的发送。Wireshark是这门课程的主要抓包工具,包括过滤器、各面板的使用、如何基于统计分析报文等。对于服务器端的抓包我们会使用 tcpdump工具,并配合 Wireshark 分析报文。

4. 熟悉 Web 协议的架构和设计原则

HTTP 最初用于解决人与机器的通讯,了解指导其设计原则的REST架构,就能理解在空间上它如何应对全球性的巨型分布式网络,在时间上如何应对数十年的技术变迁。

在分层架构下各层都有其待解决的核心问题,TLS/SSL协议面对的是如何使用非对称加密协商密钥及验证身份,TCP协议面对的则是可控流量下的可靠传输,IP协议则关注报文在主机间的可达性,带着这些需求及约束,便可从容应对变化。