思考方法,程序员生存之道

本人自2006年开始转行搞IT,回头看看也快十年了!小总结一下经验教训。

开始几年特别热衷于技术本身,所谓技术控。我想所有有热情的程序员都经过这一步。对技术不断求深求广求精。

后来喜欢玩设计,技术有一定积累了,就想更大的提高,自然就到了设计阶段(最初也学了好多,但是设计这东西必定要基于足够多的实践)。这么又过了几年。

现在,终于开窍了,经验如下:

  1. 职场上的成功,不仅依赖技术,更依赖政治,人人都得懂一点
  2. 技术的成功不在于会什么技术,精通什么技术,而在于思维的缜密(见标题)
  3. 多从用户出发,摒弃技术驱动,迎合客户,才能取得真正成功

个人在1和2上犯了不少错误,不过呢,对政治也还是一知半解。今天特来分享一下对于思考方法的总结:

  • 程序员每天都在遇到无数的问题,解决问题的关键是先找到问题在哪(建议有空看看《你的灯亮着吗》一书,很有启发作用)

举例来说:网站做好了,放在服务器上,80端口很慢,但是放别的端口就很快。问题在哪?作为程序员,应该可以想到所有可能(必须是所有)。既然能跑在别的端口上足够快,可以说明网站不慢。那么为什么慢了?就有两种大的可能:80端口拥挤或网站配置限制了80端口。展开来讲,有可能有别的程序也在用80端口,而且量比较大;也有可能是防火墙进行了限制;也有可能网站本身对特定端口做了限制(可能性较小,因为网站是你自己弄的)……

  • 解决问题要有规划。

解决问题要在所有可能性的基础上进行分析,按可能性排序,逐一测试。其中逐一是有技巧的。看看问题能不能使用二分法进行拆分求解,大部分时候可以。比如已知一个非常大的变更导致了问题,那么到底是什么部分的问题?这时候,可以把变更一半的内容rollback看有没有问题,如果仍有问题,说明问题在剩下没有rollback的代码里,否则在已去除的代码里。把有问题的那一半代码留下,重复上面步骤,即可遍历所有导致问题的可能性。这就是问题查找的二分法。


好了,今天就吹到这里。希望对大家也有帮助。

你可能感兴趣的:(Felomeng的视角,Felomeng的反思及心得)