马有千里之程,无骑不能自往;
人有冲天之志,非运不能自通;
无论多忙,都要抽时间进行学习提高。
经历了3轮技术面试,外加部门Leader和HR,总算有惊无险的拿下小米的offer。经过了一周多的时间,正式offer终于审批到手。
请允许我兴奋一分钟。
这里分享一下个人对于找工作的一些建议:
1.能不裸辞尽量不要裸辞
因为大公司的流程可能让你心急如焚。有些大厂的简历投递系统从筛选到面试的时间真的太久啦。我的简历在今日头条的系统中差不多已经一个月,还没有安排上面试。阿里更是出了名的慢。大厂就算面试通过,还有定薪阶段,正式offer审批流程 等环节。少则一周,多则…。(PS:亲身体验,好不刺激啊)
2. 日常算法的练习
这里着重强调:日常练习。每日亦或每周刷几道 Leecode
功在平时,利在千秋啊。(PS:说起来容易做起来难啊,坚持再坚持…)
面试大厂最后一个环节基本都是算法,大部分面试官都会根据情况引导我们找到解决办法(最优解)。
根据个人的经验,刷题时只记住最优解的方法并不可取,因为我们总会遗忘。而像递归–>迭代优化的过程中,如果连暴力破解的方法都没搞懂的话,你很难理解更高级方案的工作原理。 这样在面试的过程中,很容易翻车。
(PS:你很可能都意识不到善良的面试官给你的提示)
建议:
自古真情留不住,唯有套路得人心。
- 刷题也是有套路的。比如双指针解法,滑动窗口解法,他们都对应着不同的问题类型的。
- 举一反三,触类旁通。在刷题的过程中,时刻体会这句话。
- 要有一定的意识 (效率上:时空互换)。比如 有序联想到二分法,位运算符(与,或,异或)的特点等等。
- 刷题的时候要吃透其原理,掌握其暴力方案,然后过渡到最优解。(PS:刷多了会发现暴力解法过渡到最优解一般也是有套路的)
- 对于简单题型,掌握最优解很重要。(屁话但还是要说)
因为面试官觉得这种题你应该用最优解做出来。(PS:不要你觉得,而是面试官觉得)
3. 基础(原理)知识
为什么大厂都喜欢问基础,不掌握基础原理,何谈熟练使用。
面试的时候你会发现,平时开发中信手拈来的东西却说不出来个一二三…。
无论多忙,都要抽时间进行学习提高。不要将自己的能力仅仅局限于会用,熟练使用。
“知其然也要知其所以然”,绝不是假大空。只有掌握了基础理解其原理才能更好的使用它。否则所谓的“熟练”只不过是皮毛而已。
3.1 经历
大概在2015年左右,头脑一热趁着京东618赶紧入手 重构改善既有代码的设计和日月神话,结果粗略看了几章重构,感觉都是屁话。遂放在窗台上吃灰。但后来在微信读书上闲暇时间读起来,发现和自己在开发中的实践是不谋而合啊,才发现当年唐突了啊。
4. 完善知识体系
我们要完善自己的知识体系,这一点很容易让我们忽略。就像我们做Android开发一样,不是所有的项目都需要用到热修复,插件化,或者和硬件打交道。所以我们就给自己找了一个完美的理由让我们不去学习这些内容。而且存在相当一部分人会认为:
面试官太装13,这些知识平时都用不到,在面试的时候尽显假高端卡人。亦或是面试造核弹,工作拧螺丝。
Too young too naive…
PS:这里展示小米正式offer的目的绝不是在秀,而是深知力微休负重,言轻莫劝人。偶感不适者请绕行,恶心到人实属无奈。