有些事情你不知道, 但你一定能解决.
有些人通过我账号资料里的微信加我, 然后问我一些所谓 "怎么办" 的问题, 不是我不告诉你, 而是我确实不知道. 我确实有很高的 title, 也确实有很多的技术积累, 但我并没有达到知识的 "百宝盒" 的水平.
换个角度重新说这句话 "这么简单的问题你都不知道, 你配得上你的 title 吗?"
技术能力
我们放下技术先不谈, 只说能力. 当你同时面对工作进度紧张, 家里事务繁琐, 你是如果做时间管理的? 当你面对 20 个 offer, 需要做出选择时, 你是如何量化对比企业特点, 找到最适合你的那一个? 当你的 schedule 堆的满满的, 你肯定完不成所有事务时, 你是如果设置优先级的? 当你发现很多方法都能达到你要做的目的, 你是如何寻找最优解的? 当你的女朋友们吵得不可开交时, 你是如何调和的?(咳咳......)
同样的问题, 有些人觉得有 100 种解决办法, 有些人却觉得穷途末路......
毫不客气的说, 思维角度的多少 (暂理解为同一问题解决办法的多少) 决定一个人的成就. 至于思维懒惰的人, 对不起, 你没有入场资格.
那些 "进步青年" 们每天进行效率 / 技术 / 英语 / 商业 / 投资等各种各样的自我提升, 而有些人却连一个标记的清清楚楚的 Exception 都解决不了.
我写文章不是为了对别人的人生指手画脚的, 也不是为了骗大家点广告或者买技术课程的, 我希望我的读者能够有所收获, 认清不足, 成就更高的层次. 我在分享思维.
那么回过头来说技术. 如果你遇到一个问题, 恰巧你之前解决过, 那么你会在 1 秒内知道解决办法. 那些踩过了无数次坑的人成了这个领域无所不知的专家, 甚至有些人觉得成为专家就是无所不知.
然而, 时间是有限的, 钱是无限的.(不必反驳, 慢慢体会.)这个世界有那么多美好的事情, 你却在钻研技术. 有些技术难点你没接触过, 你甚至不知道它是什么, 但你一定能解决这个难点. 这才是技术专家!
举个例子, 有个问题能在 java 层解决, 能在 sql 里解决, 甚至能通过 linux shell 脚本解决. 你精通 java 有什么用? 难道要精通 java,sql,shell? 那如果遇到问题需要 python/perl/nodejs/swift... 解决呢? 也要做到精通吗?
如果大家记得如何成为 10 倍速程序员里 "按需记忆" 的理念, 那就把本文所说的理解为 "按需精通" 吧.
面试分化
无论技术多么强大, 经验多么丰富的开发者在准备跳槽面试时都要刷一遍题. 为什么?
举个例子, BAT 喜欢问类似这样的问题, 说说 Ajax 的底层实现?
Ajax 是告诉浏览器给我要发送一个 HTTP 请求, 你给我新开个线程去执行下, 完事后告诉我一声, 我在其他 function 中执行后续操作(回调). 在线程返回结果前, 我可以继续做其他事情.(异步)
上面是我经过搜索, 然后总结的答案. 在写本文时, 我甚至忘了这个问题的答案, 找到我的回答粘贴过来的.
如果这个问题, 恰巧就是你的知识死角(你在工作中从没遇到过), 那么是否代表你的技术能力不够?
当然不.
我不是针对 BAT 的面试流程做出质疑, 我是说包括 BAT 在内的大多数技术面试流程都是垃圾.
面试问题应该是类似这样的, 有 10 个亿的订单数据, 如何存在数据库中?
其实企业中涉及到多线程, 大多封装在企业自身信任的框架中, 普通开发者涉及的很少, 但大多数面试环节都会涉及.
如果你因为面试问题触及到你的知识死角而变成沉迷技术的人甚至失去自信. 那我只能说这是当前面试与实际工作的分化造成的整个行业的悲哀.
最后
另外, 所谓优秀, 是遇到问题是有方法和手段来解决. 自我提升, 就是在积累这些东西. 这是本文所想表达的最终目的. 希望本文对你有所帮助.
来源: https://juejin.im/post/5b0a8f52f265da0db53bce0d