一、引言

人总是用现有的知识去解决问题,虽然学过的未必都掌握,知道的未必真的能够都理解。

(1)做英语试卷,不认识的单词,哪怕是猜词也是根据已经会的单词,根据词根词缀,根据单词中部分认识的半个单词。

(2)小学上语文课,学习汉语词汇是,如果遇到难的词汇,中文看半边字,也是因为只认识半边,来猜测它的意思。

(3)一个不知道OCR软件或者语音输入的文科学生,如果有一大段书上的文字需要转化成文本,大概率是手动输入。

(4)学习Java的学生,如果他不知道mybatis,hibernate,只会JDBC,则他大概率用JDBC来操作数据库。

(5)如果一个程序员不了解设计模式,那么在某些设计模式适合的场景,他大概率想不到,没有用到。

等等。

二、拓展知识面

基于以上的分析,不管是程序员还是普通的大学生还是其他行业的人,拓宽知识面很重要。

当然知识的深度和广度都很重要,知识面狭窄解决问题很难得到最优的方案,知识深度不够则样样稀松。

本文重点讨论,知识广度。

2.1 从技术角度

如果多了解本行业的常用技术,常见问题的解决。

比如Java程序员,Java基础、计算机专业基础、常见的设计模式、常见的数据结构和算法、分布式常见框架和应用场景以及常见的问题等。

如果在平时学习、开发过程中,将共性的东西总结在一起,那么遇到某个场景时,可以反向利用总结的规则来应用。

比如下面是我总结的写通用方案的一些方法:

 

拓宽知识面的重要性_设计模式

那么当需要做一些通用的功能的时候,可以反向通过其中某个或者多个组合起来来解决问题。

 

比如如何实现延迟队列的功能,知识面广度话,我们知道Java中有延时队列、甚至Redis zset或者消息也可以实现延时队列,一些MQ提供了延时队列的功能,我们可以对比各自的优劣,选择最适合自己的方案。

 

之前读过一句话非常有感触,大牛不仅是掌握很多方案的人,而是能够在适合的场景选择恰当方案的人。

因此知识的广度是必不可少的(深度也很重要)。

2.2 其他角度

哪怕不是程序员,普通的大学生也应该拓展知识的广度。

很多大学老师并没有教会学生大学里转变心态,已经不再是高中生了,高考已经不再是唯一重要的目标。

除了专业课之外的书,已经不再是“闲书”,但是大多数学生已经没有这种意识。

当然专业知识仍然是最重要的,除此之外,历史、心理学、逻辑学、写作等比较经典著作,都可以多看看。

有很多学生急功近利,恰恰是这种急功近利才导致了“欲速则不达”的结果。

读逻辑学、历史等让我们可以用更客观和宏观的眼光看世界。

读心理学让我们了解自己,认识别人,从人性的角度来看人。

读写作和效率的图书,反向促进我们的工作和学习。

当你具备多个学科知识时,你看待问题和解决问题就有更多参考。

 

历史比如《万历十五年》、《二十四史》等。

读史会发现现实和历史惊人的相似,可以通过读史来增强阅历,甚至可以预测未来的发展趋势。

心理学比如《墨菲定律》、《乌合之众》、《影响力》、《为何家会伤人》等等。

比如读《墨菲定律》,你就会知道

沉锚效应:第一印象会影响我们的判断,从而先入为主甚至歪曲事实。

自我服务偏见:我们会不自觉地夸大自对自己有利的信息,而忽略对自己不利的信息。

莫非定律:可能出问题就一定会出问题。比如数据保证唯一性如果不设置唯一键,早晚会有不唯一的情况。

多看效应:人更喜欢自己熟悉的人和事物。这也是为啥很多人总喜欢攀亲戚,经常见面的人感觉更喜欢。

等等。

稀缺效应:机会越少,价值越高。这也是为什么很多限量版产品价格很高。

 

写作如《怎样写文章》、《怎样写作》、《畅销作家写作全技巧》《如何阅读一本书》等等

不管是平时写作还是未来职场都有极大帮助。

逻辑学如《简单的逻辑学》、《逻辑思考力》、《提问的艺术》等。

提高效率的图书:《整理的艺术》、《金字塔原理》等。

可以让自己思考问题更有逻辑,避免被别人思维带偏,让自己更客观。