程序员要精or广?
时间:2021-09-03 10:08:44
[导读]当你学习操作系统的时候,会发现有一个叫缓存的东西,原理很简单,就是空间换时间。当你学一门语言开始试着做一些小项目,会发现有些数据经常被读、但很少修改,感觉没必要每次都读数据库,于是你在项目里临时用map存起来,写操作的时候才去操作数据库,这就是缓存。当你开始实习了,发现大家现在都...
当你学习操作系统的时候,会发现有一个叫缓存的东西,原理很简单,就是空间换时间。当你学一门语言开始试着做一些小项目,会发现有些数据经常被读、但很少修改,感觉没必要每次都读数据库,于是你在项目里临时用map存起来,写操作的时候才去操作数据库,这就是缓存。当你开始实习了,发现大家现在都搞分布式微服务,自己在内存里用map会导致数据不一致,然后在别人的代码里发现了一个叫做redis的东西,想起面经里好像背过,看了看简介,原来是一个很快的内存数据库,可以解决分布式缓存的问题。
这是很多程序员从学校到职场的经历,这说明了绝大多数知识都是相通的,是可以举一反三的。
所有的基础课程,都是历代大佬的经验总结大浪淘沙后留下来的,在所有上层应用中无处不在。比如语言,语言差异再大,落在最底层无非也就是操作系统的磁盘读写、内存分配、cpu分配、垃圾回收这些东西,实现千差万别,思想大同小异。 正因为如此,所以操作系统数据结构才最重要。搞清楚操作系统,你就知道原来语言是殊途同归的。搞清楚数据结构,你就知道为什么所有语言都会有数组、链表、哈希,什么时候该怎么用。
搞清楚设计模式,你去看绝大部分框架原理的时候效率都会成倍增长。
面对一百个不同的需求,用一种工具,不管是否合理是否适配,都能够实现它们,这就是我们所说的精。能够快速的从一百种工具中选择合适的工具并上手,实现对应的需求,这叫解决问题的能力。要明白应用是理论的扩展,工具是知识的延伸。程序员最终是要精于基础,广于工具。
END
扫码关注华妹查看更多精彩内容





