发布日期:2015-10-13 15:21:37 +0000
今天时间有点紧,不好意思,没办法做好严谨归纳和整理,就直接罗列一下吧。
先说个工作中技术的实战例子,我常说的一个例子,之前有一个数据库应用,每天线上数据请求几百万次,其中有大量的插入,也有大量的查询。负载当然很高,负责这部分开发的技术人员,小伙其实不错,想出来几个优化方案都挺靠谱,然后一股脑整体做了优化,上线,效果明显,按说这不是挺好的事情么,然后被我批评了,我问他,你现在这个结果,比之前提升了多少多少,这个确实能测出来,很明显,但是来自于方案1的有多少,来自于方案2的有多少,来自于方案3的有多少,你分的出来么,他分不出来,我说你为什么不多做一步呢?一个一个方案上,然后逐一分析评估效果呢。 也许其中某个方案占得比重特别高,也许某个方案其实基本没啥用,这样以后你优化的时候不就能更清楚哪个方案在场景中的效果么?
下面说个面试方法,比如应届生,他没啥业内经验,我怎么知道这个孩子有没有前途,通常的问题是这样的,逐一递进提问,问题1,你在学校期间,觉得最能体现自己能力和价值的事情是什么? 等对方回答后,问题2,在这件事情上你遇到的最大困难和挑战是什么? 等对方回答后,问题3,你是怎么克服和处理的。 这个问题考的是什么呢?归纳和总结的能力,对自己从事过的事情,克服的问题,能不能有一个清晰的表达,有条理的描述,以及对自己是不是有一个正确的认识。其中,有精准的数字描述,会比定性的表达更具有意义。
非应届生也是这样问的,比如某个程序员A,问他这三个问题,他回答1、做过一次网站性能优化,效率提升很高,感觉自己棒棒哒,挑战就是并发一多,服务器负载很高,所以扛不住,解决方法是加了缓存,把数据库压力转到缓存上,所以负载降下来了,业务也增加了,回答结束。那么我们对比另一个程序员B怎么回答的,做过一次网站性能优化,效率提升很高,感觉自己棒棒哒,挑战是并发达到200的时候, cpu占用100%,主要压力来自于数据库的查询,偶尔慢查询阻塞,数据库链接过多,解决办法是增加了缓存,缓存命中率达到了80%,也就是80%的查询请求不通过数据库,结果是当并发达到200的时候,cpu只占用了30%不到,后来业务增长到并发达到400,cpu也只占用了50%。 现在,我相信你一定知道哪个程序员更值得用了。
再说个带实习生的一个常用方法,比如带运营或者产品,去,把客户的建议,投诉,几百条,给我分好类,写个总结过来。实习生说了,老大,按什么分类啊,直接说,你自己看着办。
我有这个习惯,当然你也可以认为是偷懒的借口,分配工作的时候有些东西特意不会描述的特别具体,就是看看员工是不是有能力,有思维能力,来把这些地方做好,当然,这可能会付出一些时间成本甚至其他成本,但是对于培养新人来说,更宽松的这种环境更容易看到一个新人的潜质和能力,当然,后续人家没做好,没做对(常有的事情,不代表人不可用,只是没有惊喜而已)要给讲一遍,如果前面很宽松,后面不给讲评,这个其实真就是偷懒了。(好吧,我想想我其实还是偷懒的时候多)
把大量的琐碎信息分类是特别考验思维能力的一种方法,首先你要有一个纬度的概念,比如按业务的重要程度去分,按照功能或业务模块特性去分,按照体验的伤害程度去分,或者按照客户特征去分,等等。但是更有价值的可能是下面,多个纬度的组合,哪些纬度组合的投诉建议更有价值,优先级更高。
我以前做数据的时候有个习惯,先把日志拿来看,看什么呢?最开始没什么目的,就是看日志里有什么,看着看着就有想法了,然后慢慢找到规律,用简单的脚本测试,摸索出一套方法,然后开始用程序把方法实现,去分析数据。但是看数据是一项基本功,看的时候带着好奇心,不断提出问题,这是上一篇提到的,然后针对自己提出的问题,不断整理方法,整理结论,慢慢就知道能做什么了。所以很多创业者老问我,说我有很多数据不知道能做什么,我一般都说,你先给我一段数据日志我瞅瞅你这里都有啥,不看是找不到这个感觉的。
前端时间在遇到一个梦幻创业团队,创业者是一个名校博士,大学教授,离职创业;团队技术核心都是ACM大赛的底子,来自于清华和上海交大ACM的骨干成员(这两个学校ACM什么水平,搞技术的应该都明白),那么面对这样的算法达人,从算法和技术上我肯定不敢班门弄斧,但是基于他们业务场景的用户引导优化我还是给他们上了一课,这一课说简单也简单,你们分析过用户的行为日志没?从中寻找过规律和特征没?只看了GA的漏斗模型,而没去看原始日志,没有去一条条体会用户的行为规律,你怎么能做好呢?一些他们以为需要很复杂算法实现的东西,其实可以基于行为日志,以不高的技术代价做成机器学习模型,思路一开对他们而言后面就没技术含量了。但这件事也是提醒他们,很多看上去很基本的,很没有技术含量的事情,其实价值是很大的,比如说,看日志,从日志中找规律。
上面列的有点乱,一看就没有很好的归纳整理,咳咳,下面说几条建议
1、对问题的描述,对解决方案的效果评估,要有条理,有逻辑,不但要定性,而且要定量,要精准描述,完整记录。
2、面临多个解决方案来处理的技术问题,要学会分辨评估每个解决方案的作用和效果,而不是说,反正把问题解决了就可以。
3、分类是一种能力,特别是涉及多个纬度的组合,非常考验对业务的理解能力,能够寻找正确的纬度组合,数据和信息的价值才能最优化。
4、从最原始的信息中寻找灵感和规律,这种看上去最没有技术含量的工作最体现出你的思考能力。
5、培养新人和锻炼新人,对于非重要和非紧急工作,尽量给他们足够自由发挥的空间。
有些新人会觉得,这个公司管理真有问题,领导真烂,任务布置的一点都不清楚,怎么做啊。
布置的清清楚楚,你就是一个实现工具啊,你的能力体现在哪里啊!!!
今天想到的就这些。
这个系列并未结束。