文章分类 - 极客时间
摘要:了解了现代计算机的基本硬件组成和背后最基本的冯·诺依曼体系结构,我们就可以正式进入计算机组成原理的学习了。在学习一个一个零散的知识点之前,我整理了一份学习地图,好让你对将要学习的内容有一个总纲层面的了解。 从这张图可以看出来,整个计算机组成原理,就是围绕着计算机是如何组织运作展开的。 计算机组成原理
阅读全文
摘要:学习计算机组成原理,到底是在学些什么呢?这个事儿,一两句话还真说不清楚。不过没关系,我们先从“装电脑”这个看起来没有什么技术含量的事情说起,来弄清楚计算机到底是由什么组成的。 不知道你有没有自己搞过“装机”这回事儿。在2019年的今天,大部分人用的计算机,应该都已经是组装好的“品牌机”。如果我们把时
阅读全文
摘要:你好,我是徐文浩,一个正在创业的工程师。目前主要是通过自然语言处理技术,为走向海外的中国企业提供英语的智能客服和社交网络营销服务。 2005年从上海交通大学计算机系毕业之后,我一直以写代码为生。如果从7岁第一次在少年宫写程序开始算起,到今天,我的码龄快有30岁了。这些年里,我在Trilogy Sof
阅读全文
摘要:你好,我是微扰君。 今天我们来聊一聊和编程语言有关的一个话题——垃圾回收,作为现在许多编程语言都支持的特性,垃圾回收机制能大大解放程序员的心智,让我们把主要精力放在实现业务逻辑上,而不是关注内存分配这样繁琐的编程细节上。 如果你写过C语言的话,一定能深切体会到在堆上分配内存是一件多么麻烦的事情。就我
阅读全文
摘要:你好,我是微扰君。 今天我们来聊一聊另一个和索引相关的非常有趣的问题:“地理位置检索”问题。 身处移动互联网时代,我们的衣食住行少不了各种用到地理位置信息的APP。比如周末想和朋友小聚一下,不知道去哪,我就会在美团点评上检索餐厅或者休闲场所,除了看评价,也经常会按照距离排序或者限定距离范围,找距离近
阅读全文
摘要:你好,我是微扰君。今天我们来聊一聊倒排索引算法。 倒排索引算法,作为一种经典的索引方式,在工业界中应用非常广泛,比如搜索引擎、推荐系统、广告系统等等。在广告系统中,我们需要根据定向信息去广告库中召回合适的广告;在搜索引擎中,需要根据某个关键字返回若干搜索结果,如何做得又快又准,就离不开倒排索引的加持
阅读全文
摘要:你好,我是微扰君。今天我们来聊聊RPC的网络传输编码方式。 如果你有过几年后端服务的开发经验,对RPC,也就是远程过程调用,应该不会陌生。随着互联网应用的发展,我们的服务从早期流行的单体架构模式,逐步演进成了微服务架构的模式,而微服务之间通信,最常见的方式就是基于RPC的通信方式。 因此微服务的RP
阅读全文
摘要:你好,我是微扰君。 今天我们来聊一个经典问题“分布式事务”,以及它的常见解决方案“两阶段提交”。 关于事务,我们之前在介绍日志型文件系统的时候就已经一起学习过了(戳这里复习),主要特点就是需要保证在应用程序中,一系列连续操作要么全部成功执行,要么一个都不能执行,这个特点我们一般也称为原子性。 在单体
阅读全文
摘要:你好,我是微扰君。 专栏正文已经结束了,在过去一段时间里我们一起学的知识,不知道你掌握得怎么样了呢?如果还意犹未尽的话,从今天开始我们会陆陆续续聊一些其他话题,作为特别番外,希望你可以和我一起继续享受其中的思维乐趣。 今天就先从一个颇有趣味的“洗牌算法” 来开始我们的番外之旅。 “洗牌算法”,顾名思
阅读全文
摘要:你好,我是微扰君。 今天我们来回顾一下工程实战篇的要点内容,这也是专栏的最后一个模块。 在这个章节中,相信你能感受到我们更多提到了前面学习的算法思想和基础数据结构的知识点,这也正是工程中算法应用的特点,它们都是某个庞大系统的一部分,被用来解决不同场景下的技术问题,而不是一个独立可抽离的知识点。 在这
阅读全文
摘要:你好,我是微扰君。 我们已经学完了分布式章,今天就来复习回顾一下这一章的要点内容。既然讲的是工程中的问题,也就没有LeetCode练习题了,主要是在工作中多观察多分析多总结。在学习的时候,我们也不要想着只是解决这一个简单的问题,而是要更多地考虑别人解决问题背后的思路。 有些算法,虽然现在已经有了现成
阅读全文
摘要:你好,我是微扰君。初五好! 通过这几次的复习和练习,你掌握了多少呢,想必收获颇丰。今天是我们春节特别策划的最后一期了,继续坚持哦,加油。 你可以借助整理好的要点卡片,快速回顾今天的要点内容。复习完知识点,也可以用对应的LeetCode练习题练练手,复习巩固一下。 计算机网络篇 今天我们来复习&练习专
阅读全文
摘要:你好,我是微扰君。初三好! 今天是我们春节特别策划的第三期。 你可以借助整理好的要点卡片,快速回顾这四大章的要点内容。复习完知识点,当然也需要有对应的LeetCode练习题,供你练手复习巩固,你可以点击必知必会算法题链接,检验一下自己的掌握情况,如果发现自己哪里还不太明白,可以回到相应章节,有针对性
阅读全文
摘要:你好,我是微扰君。 大年初一,祝你新春快乐! 今天是春节特别策划的第二期。昨天的第一期是关于基础数据结构篇的,如果你错过了可以点这里答题&复习。 这4篇文章中的题目都是我精选出来的,无论是对知识点的理解,还是为了准备面试,都是必须要掌握的,建议你一定要全部手写练习。如果一遍搞不定,你可以点击对应章节
阅读全文
摘要:你好,我是微扰君。 到目前为止我们已经学习了课程基础部分的4章内容,包括基础数据结构篇、基础算法思想篇,以及操作系统和计算机网络这两门非常重要的计算机基础课中会用到的基础算法。不知道你掌握的如何啦? 我常在课程里提到只有掌握优秀算法的精髓,才能根据实际的workload选择合适的算法,但如果缺少足够
阅读全文
摘要:你好,我是微扰君。 春节将近,从今天起我们就不学习新算法了,轻松一点来聊一聊大厂算法面试该怎么准备更高效。 毕竟来极客时间学习,很多同学可能都有一个相同目的,想要通过自我提升拿到大厂Offer,想要进大厂,首先我们一定要过的就是算法面试。算法面试怎么过呢?来得最快、效果也相当不错的方法当然就是刷题了
阅读全文
摘要:你好,我是微扰君。 不知不觉,我们的专栏就要暂时结束了。 不知道你在学习的时候有什么感觉,这个专栏对我来说算是一个很大的挑战,长达半年的写作可不轻松,甚至可以说是“痛苦”的。 说这个专栏挑战大,主要因为涉及的内容广泛,如果你从头到尾跟完专栏也一定会深有体会。从最基础的数据结构和算法原理,到操作系统、
阅读全文
摘要:你好,我是微扰君。 不知不觉,已经到工程实战篇的最后一讲了,在这个章节中,我们一起学习了很多工程中常用的算法,如果你从事后端开发,应该或多或少有些接触,比如在Redis、Kafka、ZooKeeper等常用中间件里就经常出现,理解它们的核心思想,能给你的工作带来很大的帮助。 今天,我们最后来聊一聊大
阅读全文
摘要:你好,我是微扰君。 上一讲我们学习了业务场景中频繁会使用到的延时队列,能帮助处理很多业务上的定时任务问题,因为这个组件的功能和具体业务往往没有关系,我们通常会利用各种中间件来实现延时队列的能力。 今天我们来探讨另外一个算法的原理和实现,它也和业务本身没有强关联,但是在各个业务场景下都非常常见,那就是
阅读全文
摘要:你好,我是微扰君。 今天我们来聊一聊日常开发中非常常见的技术需求:延时队列。 之前在学Kafka二分搜索的时候,我们已经学过了消息队列,它是一个用于传递消息的组件,大部分场景下,我们都希望消息尽快送达,并且消息之间要严格遵循先进先出的约束。但在有一些时候,我们也会希望消息不要立刻送达,而是在一段时间
阅读全文