后端技术面试 38 讲,全面构建你的后端知识体系

你将获得

  1. 架构师必备的3大技术体系;
  2. 软件设计核心方法论详解;
  3. 掌握软件编程本质原理;
  4. 后端工程师的成长路线图。

讲师介绍

李智慧,极客时间专栏《从0开始学大数据》作者,同程艺龙交通首席架构师、Apache Spark 代码贡献者,长期从事大型网站架构、大数据的研发工作,曾担任阿里巴巴技术专家、Intel亚太研发中心架构师、宅米和 WiFi 万能钥匙 CTO,有超过 6 年的线下咨询、培训经验,著有畅销书《大型网站技术架构:核心原理与案例分析》。

课程介绍

我们都知道,后端技术包罗万象,从面向过程到面向对象,从数据库到中间件。后端技术不仅涵盖各种底层原理,还有各种层出不穷的技术。对于一个刚进入或是即将进入技术领域的人来说,常常面对的困惑就是,这些知识我们到底该掌握哪些?又该掌握到何种程度呢?

技术纷繁复杂,处在这个十字路口,我们总是很容易迷失方向。要么选择抱着厚厚的书籍盲啃,好不容易看完了,又不知道该怎么用;要么就是追随各种技术潮流,但真正可以用到工作中的,又有多少呢?

这两种情况都会让人感到无所适从,而避免它们的最好方式就是形成一套属于自己的技术体系,让其提供坚定的理论支撑,在千变万化的技术道路上也能走得稳健。

一切技术的产生与发展都离不开最基本的原理,只要追本溯源,了解技术体系最基本、最底层的原理,我们就能根据这些知识储备建立自己的后端技术框架,从而搭建一条完整的成长道路。

在这个专栏中,作者将通过自己多年的架构师经验,总结出了程序员必备的3大技术体系及原理,软件的基础原理、软件的设计原理以及架构的核心原理,涵盖日常工作中所能接触的核心技术知识,从而帮你构建一套完整的软件编程方法论以及技术思维框架。

专栏会讲哪些知识?

专栏会系统覆盖有关后端技术的知识体系,比如数据库的原理、网络编程的原理、面向对象与面向过程真正的区别等。通过回答实际的问题场景,由点到面地引出背后的关键原理。

专栏模块是如何设置的?

专栏共4个模块,38篇文章。按照顺序依次讲解软件的基础原理、软件的设计原理、架构的核心原理以及技术人的思维修炼。

在第一个模块“软件的基础原理”中,主要讲述程序运行中背后的技术体系,主要涵盖运行原理、网络编程原理、数据结构原理、数据库原理等。

在第二个模块“软件的设计原理”中,主要探讨我们在编程的过程中应该有怎样的视野与知识储备,比如如何写设计文档?软件设计中的原则都有哪些?真正的面向对象是怎样的?

在第三个模块“架构的核心原理”中,我们将把视野投放到更大,更宏观的架构体系中,接触架构的不同类型,并了解它们的原理与区别。比如分布式架构、高可用架构,以及目前风头正盛的的AI与物联网架构等。

在最后一个模块“技术人的思维修炼”中,则主要讲述身为技术人,应该如何保持不断进步的能力以及宏观的视野?

软件的基础原理 (8讲)

01丨程序运行原理:程序是如何运行又是如何崩溃的?
02丨数据结构原理:Hash表的时间复杂度为什么是O(1)?
03丨Java虚拟机原理:JVM为什么被称为机器(machine)?
04丨网络编程原理:一个字符的互联网之旅
05丨文件系统原理:如何用1分钟遍历一个100TB的文件?
06丨数据库原理:为什么PrepareStatement性能更好更安全?
07丨编程语言原理:面向对象编程是编程的终极形态吗?
答疑丨Java Web程序的运行时环境到底是怎样的?

软件的设计原理 (14讲)

08丨软件设计的方法论:软件为什么要建模?
09丨软件设计实践:如何使用UML完成一个设计文档?
10 | 软件设计的目的:糟糕的程序员比优秀的程序员差在哪里?
11丨软件设计的开闭原则:如何不修改代码却能实现需求变更?
12 | 软件设计的依赖倒置原则:如何不依赖代码却可以复用它的功能?
13丨软件设计的里氏替换原则:正方形可以继承长方形吗?
14 | 软件设计的单一职责原则:为什么说一个类文件打开最好不要超过一屏?
15丨软件设计的接口隔离原则:如何对类的调用者隐藏类的公有方法?
16 | 设计模式基础:不会灵活应用设计模式,你就没有掌握面向对象编程
17 | 设计模式应用:编程框架中的设计模式
18 | 反应式编程框架设计:如何使程序调用不阻塞等待,立即响应?
19 | 组件设计原则:组件的边界在哪里?
20 | 领域驱动设计:35岁的程序员应该写什么样的代码?
答疑丨对于设计模式而言,场景到底有多重要?

架构的核心原理 (14讲)

21丨分布式架构:如何应对高并发的用户请求
22 | 缓存架构:如何减少不必要的计算?
23 | 异步架构:如何避免互相依赖的系统间耦合?
24 | 负载均衡架构:如何用10行代码实现一个负载均衡服务?
25 | 数据存储架构:如何改善系统的数据存储能力?
26 | 搜索引擎架构:如何瞬间完成海量数据检索?
27 | 微服务架构:微服务究竟是灵丹还是毒药?
28 | 高性能架构:除了代码,你还可以在哪些地方优化性能?
29 | 高可用架构:我们为什么感觉不到淘宝应用升级时的停机?
30 | 安全性架构:为什么说用户密码泄漏是程序员的锅?
31 | 大数据架构:大数据技术架构的思想和原理是什么?
32 | AI与物联网架构:从智能引擎到物联网平台
33 | 区块链技术架构:区块链到底能做什么?
答疑丨互联网需要解决的技术问题是什么?

技术人的思维修炼 (6讲)

34 | 技术修炼之道:同样工作十几年,为什么有的人成为大厂架构师,有的人失业?
35 | 技术进阶之道:你和这个星球最顶级的程序员差几个等级?
36丨技术落地之道:你真的知道自己要解决的问题是什么吗?
37丨技术沟通之道:如何解决问题?
38丨技术管理之道:你真的要转管理吗?
答疑丨工作中的交往和沟通,都有哪些小技巧呢?

不定期加餐 (1讲)

加餐 | 软件设计文档示例模板

相关下载

点击下载

参与评论