不要用战术上的勤奋掩盖站略上的懒惰

前两天,有个同学在群里问一道面试题:

  1. 写一个函数,返回一个长度为5的数组
  2. 数组里的元素都是 2-32 不重复的整数
  3. 需要用递归的方式写,不超过15行

这道题其实蛮简单,而且我觉得出的并不好,不过最后再说,先回到群里。然后就有热心同学动手写代码了,但是他犯了两个严重错误:

第一个错误

我们都知道 Math.random() 会返回一个 [0, 1) 的随机数,我们可以乘上一个数然后取整来获取一定范围内的随机数,比如 Math.random() * 100 >> 0 就能取到 0 ~ 99。那位同学也想到了,但是这次范围不太规整,2~32正好是31个数,跟平时不太一样。于是他可能突然脑子抽筋,先试了 Math.floor,又试了 Math.ceil,都不行,然后,他就用了 Math.round

这是他第一个错误。四舍五入之后,随机数就不再均匀,此时他有很多种选择,但他偏偏选择了一定不对的方案。

第二个错误

然后我就指出“你这种做法是错的”,接着他就犯了第二个也是更严重的错误,他写了个循环,跑100w次,检查结果是否符合预期。

这里的问题在于,首先他只检查能否覆盖到 2 ~ 32,其次他完全没有考虑到概率。

结论

这就是典型的,用战术上的勤奋,掩盖战略上的懒惰。看起来似乎也很努力,响应很及时,实际上纯粹瞎搞。

明明应该先想清楚,或者先查清楚,再去做好的事情。变成了“上来就瞎JB搞”,搞出一个疑似有效的方案,就心满意足。遇到挑战的时候,则顺手抄起一套方案去验证,也不管这套方案的设计思路和覆盖面。

这样做的结果,运气好的时候,勉强不出错;运气不好,事故错误一个不会少。类似的例子,在我们周围不胜枚举,比如 996,不管产品卖不卖的出去,先按住大家把活儿干了再说。看起来为了明天拼拼拼,其实只是老板一厢情愿的豪赌(或者小赌)。

解决方案

不要只顾着埋头苦干,也要学会抬头看路。不要在错误的道路上努力耕耘,赶紧找到正确的道路。

比如找工作。有些同学海投,能投则投,所有都投,然后没有面试机会,回来抱怨说三本没人权。实际一看简历,非常烂,没有重点,没有区分,看不出他擅长什么,能做什么岗位。

准备简历并不简单。

  1. 要找几家公司作为主攻。比如拥有自己的产品、有大牛坐镇、赛道比较喜欢、技术成长空间比较大。
  2. 针对这几家公司的 JD,针对性的修改简历。比如做后台系统,那你就突出 Vue/React 等框架经验;比如做小程序,你就突出小程序开发。
  3. 海投简历也应该根据岗位调整。前端岗位有一些区分度,需要突出不同技术能力和经验。这样做可以让你显得更加适合一些岗位。比如:
    1. 数据可视化:Canvas、SVG、WebGL
    2. JS 框架、语言开发:编译原理、执行基础
    3. 后台等工具类开发:三大框架
    4. Hybrid 开发,比如 RN
    5. 小程序开发:小程序、普适类框架

随便做个简历,乱投,有面试就去面,也不考察公司,最后要么找不到工作,要么找不到好工作,都是典型的“用战术的勤奋掩盖战略的懒惰”问题。

另外,如果一件事是正确的,但是暂时没有收获到正确的结果,那么不要着急变换思路,再想想再看看再查查,排除错误,要在正确的道路上找到正解。

吐槽面试题

这道题出的不好。看得出来想考察候选人是否会使用递归(可能还要考察尾递归优化),但是题目本身不用递归就能做,而且效果更好。其实随便出个归并排序之类的就好了嘛。

总结

我们从小接受到很多歌颂勤奋的教育,所以大家喜欢“没有功劳,也有苦劳”,用勤奋来感动自己。现在一定要明白,闷头苦干是不对的,一定要看请道路,选好方向。

与诸君共勉。

尬聊会:第二期实录

尬聊会第二期实录。聊了创业、准备简历等问题。

视频地址

时间锚点:

  1. [00:33] 创业那点事儿
    1. 股权
    2. 期权
    3. 融资
    4. 估值 200w / 20% = 1000w
    5. 市盈率
  2. [10:00] 如何制作简历
    1. 两个不好的简历
    2. [47:55] 一个好的简历
  3. [37:50] 面试时算法和计算机基础怎么准备?
  4. [39:00] 校招和社招的差别

  5. [43:00] 学了 H5 和 CSS,怎么巩固?

  6. [47:55] 一份好的简历

  7. [52:35] 实习工资

    1. 北京 10K
    2. 杭州 4.5K
  8. [1:00:33]怎么选择合适的公司
    1. 在各个方面给予提升
    2. 看老板,看业务
    3. 慎重选择每一份工作
  9. [1:08:15] 对于转行自学就业,找工作,这方面能不能发表下你个人看法
  10. [1:13:33] 我今年31在一家大公司的地方站做前端工作 4年工作经验 今年想去北京工作

  11. [1:16:55] 前端接口测试通常要怎么做呢?有没有考虑做个课程出来聊聊?

  12. [1:18:55] 老师,对原生JS使用熟练, 目前项目多是混合app开发,没有react, angular,vue 框架的经验,对目前面试有影响吗

  13. [1:21:25] 框架学到怎样的程度合适呢

  14. [1:22:00] 老师,最近想换实习公司,如果在上班的时候,面试的HR打电话过来

  15. [1:24:22] 会写小程序优势大吗?

  16. [1:27:19] 与今天有关的课程广告

继续阅读“尬聊会:第二期实录”