不要说系统设计问题,其实,就算是算法问题,相信很多同学也都有体会。对于一个问题,描述它的解决思路是容易的,但真要落实到代码,完成正确的逻辑,就不那么容易了。
对于一个具体的工程问题,没有受过专业训练的人,很容易忽略复杂的细节,将问题想简单。毕竟,盖一个房子不过是建四面墙,上面加个屋顶而已。但是,这么一个简单的“盖房子”的工程问题,凝聚了人类几千年的智慧结晶,里面包含了诸多复杂的工程问题。从地基要挖多深,到屋体架构设计;从承重墙的构建,到具体施工材料的选择。外行看来很简单的问题,实际上是很复杂的。
计算机专业也是如此。排行榜不就是排个序吗?但能否达到性能标准?搜索引擎不就是把互联网上相关的信息展现出来吗?但是怎么定义“相关信息”。互联网这么大,怎么快速响应?这些都是实打实的问题,外行想不到,只有内行才能理解其中的难点。