阅读笔记:00 |开篇词 掌握软件开发技术的第一性原理

计算机软件开发是一个日新月异的领域,几乎每天都有新技术产生,每隔几年就会进行一次大的技术潮流变换。这迫使我们软件开发人员要不断的取学习新知识、新技术,才能不被时代所抛弃。

然而这些新技术大都脱胎于一些原有的技术体系,如果建立器技术思维体系,掌握这套技术背后的原理,就能快速把握这个新技术的本质特征和思路,然后推导出这个新技术是如何实现的。这个时候你其实不需要去学习这个新技术了,而是去验证这个新技术。

第一性原理 —— 建立技术体系的起点

抓住事物最本质的特征原理,一句事物本身的规律,去推导、分析、演绎事物的各种变化归路,进而洞悉事物在各种具体场景下的表现形式,而不是追随事物的表面现象,生搬硬套各种所谓的规矩、经验和技巧,以至于在各种纷繁复杂的冲突和纠结中迷失了方向。

如何创建我们的技术体系

对于软件技术,我们不需要一开始就精通各种编程语言,各种工具框架,我们需要知道每一个基础技术方向中的最关键的技术原理,明白这些原理是如何和我们的日常开发工作发生关系的。

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

软件知识技术体系

软件知识技术体系分成软件的基础原理、软件的设计原理、架构的核心原理三个部分。

  • 软件的基础原理主要是操作系统、数据结构、数据库原理等等。

  • 在软件的设计原理要知道如何设计一个强大灵活,易复用,易维护的软件。在这个过程中,应该依赖哪些工具和方法,遵循哪些原则和思想,使用哪些模式和手段。

  • 架构的核心原理围绕目前主要的互联网分布式架构以及大数据物联网架构进行剖析,分析这些架构背后的原理,它们都遵循了怎样的驱动力和设计思想,有哪些看似不同的技术其实原理是一样的,以及如何通过这些技术实现系统的高可用和高性能。

软件开发是一个实践性很强的活动,如果你只是学习技术,那么就是在纸上谈兵。只有将知识技能应用到工作实践中,才能真正体会到技术的关键点在哪里,才能分辨出哪些技术是真正有用的,哪些方法是花拳绣腿。

发布了2 篇原创文章 · 获赞 0 · 访问量 28

猜你喜欢

转载自blog.csdn.net/weixin_44737545/article/details/105471328