业务开发算法50讲- 极客时间课程推荐/优惠

业务开发算法50讲--极客时间课程推荐/优惠

从算法的工程实践开始,提升问题解决能力
黄清昊Hashdata 数据库内核工程师,LeetCode高赞答主,公众号微扰理论作者
专栏 | 51讲 | 23933人已学习
优惠价¥59原价:129
去官网优惠购买

版权声明

本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

你将获得

  • 35 类算法实战应用场景;
  • 6 大领域常用算法知识体系;
  • 源码剖析+手写实现,深入细节;
  • 清晰图解+论文精读,吃透算法。

课程介绍

提到算法,不知道你有没有这样的疑惑。

之前花很多时间学的算法和数据结构,好像就是为了应对面试关,对日常的开发工作没有什么帮助。

入职之后,没什么机会和需求要手写一些基础的数据结构,往往做着 CURD 的活;算法的存在感,最多就是调用调用 JDK 的包、STL 的函数,算法就像是只存在于那些开箱即用的中间件和基础库中而已,和我们的日常开发没什么关系。

而且学习算法的过程相当痛苦,不只是学习曲线比较陡峭,主要还是平时可能完全用不到这些知识,边学边忘,没有连续的时间投入和充分的刻意练习。偶尔想起来做一做 LeetCode,发现刚学完的知识点根本记不住,不理解大厂面试为什么问这么多算法题。

其实纠结面试的算法值不值得学,是本末倒置了。算法,在开发者日常工作中无处不在,真正的价值在于,能解决工程实战中存在的真实问题。所以越是薪资高的大厂,越会通过算法题考察面试者的思考问题和解决问题的能力。

这个专栏将从实际工程问题的视角,为你呈上一堂实用、精彩的算法课。

黄清昊老师不仅会和你讨论基础的数据结构和算法思想,更会着重帮你掌握这些算法是如何运行在真实的物理机器上的、是如何解决实际业务系统中的问题的,以及是如何在各个稳定运行的中间件、分布式系统、基础库中实现的。在这个过程中,你的思考问题和解决问题的能力都会得到锻炼,希望能真正帮助到有类似疑惑的你。

课程设计

专栏主要分为偏基础和偏实战的两部分,共 6 个模块,为你精讲开发工作中真正用得上的算法。

正式学习之前,将通过一个简单、有趣、常用的文本差分算法为先导,探索那些就在开发者身边却常常被熟视无睹的算法,体验思维的乐趣。

  • 数据结构篇、算法思想篇

这两个模块,包含了工程中常用的基础数据结构和算法思想,比如双向链表、动态数组、哈希表、红黑树、二分搜索、深度优先搜索、贪心算法等,由浅入深,推演算法的来历和特点,分析源码实现思路,不只是了解算法知识,更要理解工业级的算法实现是如何运行在真实的物理机上的。

  • 操作系统篇、计算机网络篇

这两个模块,会带你学习两门非常重要的计算机基础课——操作系统和计算机网络中会用到的基础算法,同样会结合真实的网络库、操作系统的源码进行讲解。这样当你了解许多经典算法的发明背景和应用场景时,再结合操作系统和计算机网络的基础知识,你可以对算法有更深入的理解。

  • 分布式篇、工程实践篇

学习高流量、高并发、高可用的现代互联网应用中各种算法的应用,解析 Redis、MySQL 和 MapReduce 等系统或者论文的经典源码。深入理解在各场景下如何拆解问题、应用算法,目的是升级编程思维,帮助你排查真实业务开发中的各种问题,做出良好的架构设计。

最后将挑选出几个有趣的算法,在高手番外篇中不定期奉上。

课程目录

开篇词

  • 开篇词|真实世界的算法,和你想的不一样

先导篇

  • 先导篇|诶,这个 git diff 好像不是很直观?

基础数据结构篇

  • 01|动态数组:按需分配的vector为什么要二倍扩容?
  • 02|双向链表:list如何实现高效地插入与删除?
  • 03|双端队列:并行计算中的工作窃取算法如何实现?
  • 04|栈:函数调用的秘密究竟是什么?
  • 05|HashMap:一个优秀的散列表是怎么来的?
  • 06|TreeMap:红黑树真的有那么难吗?
  • 07|堆:如何实现一个高效的优先队列?

基础算法篇

  • 08|外部排序:如何为TB级数据排序?
  • 09|二分:如何高效查询Kafka中的消息?
  • 10|搜索算法: 一起来写一个简单的爬虫?
  • 11|字符串匹配:如何实现最快的grep工具
  • 12|拓扑排序:Webpack是如何确定构建顺序的?
  • 13|哈夫曼树:HTTP2.0是如何更快传输协议头的?

操作系统篇

  • 14|调度算法:操作系统中的进程是如何调度的?
  • 15|LRU:在虚拟内存中页面是如何置换的?
  • 16|日志型文件系统:写入文件的时候断电了会发生什么?

计算机网络篇

  • 17|选路算法:Dijkstra是如何解决最短路问题的?
  • 18|选路算法:链路状态算法是如何分发全局信息的
  • 19|选路算法:距离矢量算法为什么会产生无穷计算问题?
  • 20|滑动窗口:TCP是如何进行流量控制和拥塞控制的?

分布式篇

  • 21|分而治之:MapReduce如何解决大规模分布式计算问题
  • 22|PageRank:谷歌是如何计算网页排名的
  • 23|Raft:分布式系统间如何达成共识?
  • 24|UUID:如何高效生成全局的唯一ID?
  • 25|一致性哈希:如何在集群上合理分配流量?

工程实战篇

  • 26|B+ Tree:PostgreSQL 的索引是如何建立的?
  • 27|LSM Tree:LevelDB的索引是如何建立的?
  • 28|MVCC:如何突破数据库并发读写性能瓶颈?
  • 29|位图:如何用更少空间对大量数据进行去重和排序?
  • 30|布隆过滤器:如何解决Redis缓存穿透问题?
  • 31|跳表:Redis是如何存储有序集合的?
  • 32|时间轮:Kafka是如何实现定时任务的?
  • 33|限流算法:如何防止系统过载?
  • 34|前缀树:Web框架中如何实现路由匹配?

结束语

  • 结束语|在技术的世界里享受思维的乐趣
  • 期末测试|来赴一场满分之约!

高手番外篇

  • 35|洗牌算法:随机的哲学,如何用程序来洗一副牌?
  • 36|分布式事务:如何理解两阶段提交?
  • 37|Thrift编码方法:为什么RPC往往不采用JSON作为网络传输格式?
  • 38|倒排索引:搜索引擎是如何做全文检索的?
  • 39|Geohash:点外卖时我们是如何查找到附近餐厅的?
  • 40|垃圾回收:现代语言是如何自动管理回收内存的?

特别策划

  • 特别策划|面试:BAT面试三关准备方法大揭秘
  • 即学即练|基础数据结构篇:复习卡 & 算法题特训
  • 即学即练|基础算法思想篇:复习卡 & 算法题特训
  • 即学即练|操作系统篇:复习卡 & 算法题特训
  • 即学即练|计算机网络篇:复习卡 & 算法题特训
  • 即学即练|分布式篇:复习卡一键直达
  • 即学即练|工程实战篇:复习卡一键直达

作者介绍

黄清昊(微扰理论),前阿里云、字节跳动、腾讯工程师,毕业于上海交通大学。在 LeetCode 上刷了 800 多道题目,贡献了200 余篇优秀题解,对算法有深入理解,也因此在毕业后顺利完成了从前端到基础软件研发的方向转变。现任 EMQ X 存储工程师,对函数式编程和分布式系统有丰富的实战经验。 他将带你一起在工程实战中探索算法的魅力,去发现那些就在身边却常常被忽略的有趣算法们;让你不再只是纸上谈兵地了解各大常用算法的理论知识,更能将它们真正应用在日常工作中。

推荐

Serverless入门课 - 极客时间课程推荐/分享/优惠/折扣
Serverless入门课
从运行原理到应用实践一站通关
蒲松洋(秦粤)前百度国际化前端组组长
专栏 | 16936人已学习
优惠价¥29原价:68
去官网优惠购买
邱岳的产品实战 - 极客时间课程推荐/分享/优惠/折扣
邱岳的产品实战
从0到100的产品启示录
邱岳无码科技产品经理,公众号二爷鉴书作者
专栏 | 39370人已学习
优惠价¥59原价:129
去官网优惠购买
人人都用得上的写作课 - 极客时间课程推荐/分享/优惠/折扣
人人都用得上的写作课
让文字表达成为你的加分项
涵柏一线资深记者
专栏 | 13618人已学习
优惠价¥59原价:99
去官网优惠购买
大型Android系统重构实战 - 极客时间课程推荐/分享/优惠/折扣
大型Android系统重构实战
根治遗留系统,高效交付软件
黄俊彬Thoughtworks 资深咨询师
专栏 | 3149人已学习
优惠价¥59原价:99
去官网优惠购买
操作系统实战45讲 - 极客时间课程推荐/分享/优惠/折扣
操作系统实战45讲
从0到1,实现自己的操作系统
彭东网名 LMOS,Intel 傲腾项目关键开发者
专栏 | 66865人已学习
优惠价¥68原价:199
去官网优惠购买
深入剖析Java新特性 - 极客时间课程推荐/分享/优惠/折扣
深入剖析Java新特性
手把手带你吃透Java新特性
范学雷前Oracle首席软件工程师,Java SE安全组成员,OpenJDK评审成员
专栏 | 16730人已学习
优惠价¥59原价:99
去官网优惠购买