写代码很多的时候都是在思考循环,给定输入、边界条件 (edge case),获得输出,输入容易,剩下来就是如何抽象出一个循环的过程,构造边界条件了。根据不同的输入,为了让这个程序有尽可能强的容错能力,就需要好好思考如何构造边界条件了。
过度思考的例子
15 年暑假学了两个月的 Android 开发,网络请求获得 JSON 数据之后解析,解析可能会有网络的问题,可能服务端构造 JSON 就错了,移动端解析也解不出来,总之有很多种异常要去 catch(),能把每项异常都想到然后要写代码捕捉错误,根据不同的情况是要重试还是直接提示用户出错了,出错提示信息怎么写?真的把不同的出错原因 Toast 给用户说这个出错了那个出错了吗?用户根本不想知道,你只要告诉我出错了就行,不要告诉我具体原因。你要显示不同的出错信息的话,专业用户可能知道如何解决,是找你报错还是自己的网络原因重试能解决,可专业用户太少,根本没有必要过度思考做的这么细。
非专业知识的过度思考
实习了也得有三个多月了,刚开始感觉有点难度,逐渐上手,挺开心,又感觉有难度了,前端怎么这么坑!慢慢摸索,看书,不断尝试,又感觉上手了,挺开心,但一定是要继续做前端吗?也不一定,甚至都不一定要做这一行,不做前端做啥?Python 后端也不错,iOS 也不错,都想做,专门研究一个,变成这个语言的专家,可行;研究各种各样的小东西,自己倒腾,也行,没什么对于职业生涯利不利的,其实还没真正上手,成为一名工程师就考虑这些问题?有点过了吧?