掌握软件开发的第一性原理

极客时间-后端技术面试38讲-李智慧-听课笔记

摘要

构建自己的技术知识体系很重要。
下述情况存在:一个程序员在刚掌握某一个技术后,又出现一个新的技术,还得再次费大力气学习。
但是如果拥有了自己的技术体系,那么在面对一个新技术时,就会更容易地掌握它。

如何发展我们的技术体系

我们需要知道每一个基础技术方向中的最关键的技术原理,明白这些原理是如何和我们的日常开发工作发生关系的。
比如说:我们的程序是如何被操作系统调度执行的?为什么高并发的时候系统会崩溃,原理是什么?在编程时,什么场合下应该使用链表,什么时候下应该使用数组,为什么?当我们使用hash表的时候,什么情况下它的性能会急剧降低,原理又是什么?我们用redis这样的分布式缓存的时候,到底要解决什么样的问题?分布式缓存是如何工作的?还有哪些技术看起来和redis毫不相干,其实工作原理是一样的?

技术体系如何帮助我们

在学习一个新技术时,根据技术体系,我们会把它分类到某一个技术方向,在基本原理的帮助下,我们可以把握这个新技术的整体结构,进而减轻学习新技术的压力。

技术体系略述

技术体系分三个部分软件的基础原理,软件的设计原理和架构的核心原理。
软件的基础原理主要是操作系统,数据库原理,数据结构和算法等。
软件的设计原理主要以设计一个强大灵活,易复用,易维护的软件为核心,在设计过程中依赖的工具和方法,遵循的原则和思想,使用的模式和手段,区别好坏软件。
架构的基础原理主要围绕互联网分布式架构以及大数据物联网架构进行剖析,分析这些架构背后的原理,如何通过他们实现系统的高可用和高性能,以及他们背后的驱动力和设计思想。

学习方法

比如,在做几何数学题目时,你总是想不起来在这个地方要用某一个几何定理(即使你学过了)。为了解决前面这个问题,在平常练习中,李老师不去用定理,而是用最基础的原理来解题,等到这样子做到一定次数后,会发现自己更理解这个定理了。
学习软件技术原理也是类似的过程。

讲课思路

从一个最常见的问题入手,直达这些基础技术最本质的原理,并覆盖这些基础技术的主要关键技术点。然后,讲述这些基础技术原理和你日常开发工作的关联关系,对基础技术有一个全新的认识。

你可能感兴趣的:(javaWeb)