通常我们区别一个人是新手还是老手,可以看一下几个方面:
- 新手,百度的主要是语法。老手,Google的基本是解决方案或者疑难bug。
- 新手,一顿操作猛如虎,一旦发测全是bug,甚至有需要颠覆设计来修改的。老手,先想,甚至画画图,不紧不慢开始写,甚至有写几行,喝几口茶的感觉,但是写出来的稳得一批。
- 新手,面对bug,首先就是猜,应该是那里,改了再说,恩,好了,然后其他地方出问题了。老手,先分析代码,然后看日志,复现,修改,再复盘一下。
那么,如果我上面的都做到了,就是老手了么?不一定,还有一个很重要的因素---解决问题的能力。
可以说,工作3-5年,上面3点基本都能达到,毕竟熟能生巧,但是解决问题的能力,真的是天赋和努力都需要。
同样一个问题,新手只想怎么打补丁,老手想的是怎么从源头解决而不影响大局,但是大神,往往会想有没有更优方案。
举个例子,sql错误秒杀系统超发了。
- 新手可能一看,哦,这个SQL有问题,改一下。
- 老手一看,这么改可能有并发瓶颈,优化一下。
- 大神一看,这个可以加个队列,解决并发问题,然后对于客户端体验怎么优化一下,产品可以提供一下响应的友好提示等等。
简单的说,就是格局和视野不一样。
那么,我们要怎么锻炼我们解决问题的能力呢&