今天看到一篇文章,说什么是问题?
看到这个标题很好奇。就点进去看了一下。
以下是总结和思考。
漫漫人生中,我们总会遇到各种各样的问题。那么什么是问题呢?
有以下一个定义:问题是目标与现状的差异。
而解决方案,就是现状到目标的路径。
那么,什么是目标呢?目标应该是符合真实的需求。
那么,什么是需求呢?需求不仅包含当前这个问题,有时候它更需要考虑到整个系统。打个比方说,有一天某个系统出现了超时问题,那么某程序员A就去改配置,把超时时间提高。这样看上去问题目前是没有了,但是这样的做法带来了更大的隐患。
再打个比方说,学编程的,打ACM的。总是要刷题的,但是刷题的目标是什么?就是要提高我们的编程水平是吧,掌握更多的数据结构和算法,理解整个数据的流向,如何从输入到我们需要的输出。
那么编程水平提高的重点?那就是走出水题。多去掌握自己不知道的东西是吧。人只有不断的学到自己以前不知道的东西,感觉到难度,水平才会提升。
那么根据这个目标,我们就需要有选择性的选题目。过滤掉我们已经掌握的题目,去接触自己当下做不出来的题目。
什么是路径,什么又是目标呢?
就如上所说,刷题只是我们为了达成编程水平提高这个目的的手段。如果想也不想的就刷题,效率其实是非常低的,目的(提高编程水平)也是达不到的。
再说一下,有时候习惯和环境带来的潜移默化也很重要。
回想我们小时候是怎么学语文的呢?就是背诵和使用,小孩子是很难说有什么目的的。但是他身处充满中文的环境中,就算他本身不会特别的去注意,但是我们的大脑有这样的机制去学习和记忆。
回到问题本身。
程序员是怎么解决问题的呢?
以下是我不太成熟的想法。
错误
系统链条形的。从终端到网络,再到流量入口,再到服务端。这中间只要有一个地方出了问题,系统就会出现了问题,我们需要一个个去排查。比如说先检查流量入口,流量是否到达了,如果没有就再去检查网络,如果网络能够正常达到,就看看是不是流量入口的问题。
另外如果系统是树形的,再一个结点的时候,就需要依次排查。
架构
系统能够正常运行。但是我们觉得它有些方面不够好,比如说存在性能瓶颈,安全性,稳定性等等问题。这个时候,就需要针对我们的核心需求去改善了。
所以,多去思考为什么?我们的目的是什么?