这么多年,面试过那么多人,我以4年之姿...俯瞰1-3年的人,鸟瞰4年以上的人...我注意到几个点:
- 对语言的熟练程度,一般是随着年龄的增长,慢慢的变精...
- 写代码的速度,随着年龄的增长,一般是越来越慢的...基本等于敲键盘多块
- 对算法+数据结构重视的人,一开始就是重视的,随着年龄的增长,会出现两极分化趋势
- 能力越强的人,一般是越搞怪的人...你发现不了那个人的搞怪,一定是问的方式不对。我面试的时候,时间一般会超过1个小时,大部分时间,都是在谈技术之外的东西..
几个现实中的例子:
国家省市县3级联动..最好的组织方式是树[left_child,right_child],而不是[id,parent_id]。很多人选后者,一个原因是各个网站上都是这么说的[误人子弟啊]..另一个原因是前者更新太麻烦了... 第一个原因的,我直接pass掉了,第二个原因的人,我会提醒一下,省市县3级联动...我们的数据更新一般是跟着国家来的,基本上是一个月都难得更新一次
优先队列。很多人都知道重要的事情要先做,但用到程序上,他们就忘记了... 我说做排序就是做优先队列...有一次,领导说,小罗,按单个字段的排序不错,但我想按会员等级,金额大小,催促时间,剩余时间排序...你默认就给我按照这些排序把,我会给你定个权重,哪个哪个更重要我瞬间觉得,我之前做的排序都弱爆了,只是把数据陈列出来而已
很多人,都知道myisam和innodb各有所长,于是为了那么一点点性能..一个表myisam,一个表innodb... 过了几天,过来问我,能不能把那个myisam表转换成innodb...为什么呢,因为myisam缺了某个功能...更有甚者,为了支持全文检索,竟然把一个本来innodb的换成了myisam...然后,其它很多代码,直接废了
我说,你不要用
select *
了,你要什么字段就拿什么字段,他跟我说,万一以后要用到了,万一其它人也想用我的函数呢...然后,我吧嗒吧嗒的说了一大堆,一条语句从prepare开始到findAll是怎么处理的...说完后,他貌似懂了我说,索引不要乱建,主库的某个表更新那么频繁,都快被拖死了.. 建了一个索引,一年都难得用到1-2次的索引...我说where语句和索引要搭配,别建了个索引,然后where语句随便乱写
最气人的是,一个列表20条数据,有些表关联竟然是一条一条的去查...后面有一次,竟然有一个人模仿另外一个人,又炮制了一条...我直接无语掉
性能是什么?性能的优化有是什么?汗...我也不知道,我只能说:性能优化就是数据结构+算法的优化
目标是每天坚持写一篇,文风不定... 内容或是通俗或是难啃...至于被扔鸡蛋...也没什么大不了
最近在研究 mysql内幕
和 innodb内幕
, 有同趣的同学,可以一起
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。