作者:Dimple
solgan: 当你的才华还无法撑起你的野心时候,那应该静下心来好好学习
前面一篇文章讲的是面试前简历的准备。从自我介绍、个人信息、个人技能、工作经历和教育经历,四个大的纬度来详细表明做好一份简历的重要性。
今天我们继续面试前的准备,关于:技术知识准备和算法题准备。
技术知识准备
相信大家经常会听到一些经验十足的大佬们会这么建议,简历上对技能的掌握程度需要根据自己的实际情况描述,不能一股脑的写精通。
小编之前和师傅面试别人的时候,也会特别注重这个字眼,了解就是了解、熟悉就是熟悉、精通就是精通。你写的是哪个程度,就针对相应程度问你不同问题。
所以,这部分需要特别注意,千万不能弄虚作假,千万别打自己的脸呀。你要对自己负责,列出来的技术,你一定要把最基本的细节给掌握了。面试官一般会根据你写的等级,逐步加大问题的深度和难度,判断你到底处在哪个层次。所以,还得系统地、努力地学习,才能从容应对。
这里简单的写几点
你写的技术栈是Java,那么你对Java的基本语法肯定要了解,并发编程、I/O、NIO、JVM根据不同的程度,了解不同的深度。还有现在常用的Spring、SpringBoot、Netty这些框架
你写了NoSQL中的Redis,那么你需要掌握Redis的数据结构、性能优化、分布式、集群等。耗子叔建议是至少要把官网上的那几篇文章读一读
你说你了解面向对象,是针对面向对象编程。那么问题来了,你对设计模式了解吗?所以还得熟悉23钟设计模式,以及S.O.L.I.D原则等
你写了SQL,那不仅仅需要知道简单的CRUD,还得知道相应的特性,MySQL和Oracle各自的优缺点,等等
总之一句话,不管你在简历上写什么技术,那你肯定是对这些技术有了一定的了解甚至是熟悉(精通更好)。
其实这个和学校里的考试是差不多的,考试也是偏理论的,你仔细回忆下你大学考试是怎么过来的呢?你是怎么挑灯夜战的呢?还不是把老师敲黑板的重点都记住,关键点都学会,是吧。你不用搞定所有知识点,但也得至少懂个七八成,才对得起自己付出的努力。
算法题准备
小伙伴们肯定也看过很多拿到某某公司Offer的攻略,比如《LeetCode刷了xx道题,拿到xx大厂Offer》、《如果你要进大厂,这些xx算法必知必会》。很多号主都会拿自己的亲身经历来表明, 刷题是有多么的重要。其实这是一个很现实的问题,尤其是针对一些校招,各种算法题。
所以所以,算法很重要、算法很重要、算法很重要。是你面试大中型企业必须努力学习和准备的。
耗子叔在专栏里聊过,也强调过,LeetCode是一个不错的地方。其实不只是耗子叔,很多大V都一再强调,就像前文强调GitHub的重要性一样,老生常谈。
如果你能完成其中50%的题,那你基本上可以面试大部分的企业了。悄悄告诉你,小编对算法也不大懂,当初面试的时候,让候选人写冒泡,自己偷偷看手机学习来着呢。但是,我可是个反例,我就想告诉你,算法没那么害怕,其实都是有套路的。
小编在平时一直和朋友们强调,算法都是有规律可循的。当你做题做的多了,遇到类似的题,你就能知道该用什么方法拿出最优解,时间空间复杂度是更佳。举几个简单的例子(参考《左耳听风专栏》):
让你在一堆无序的数据中找top n算法,那么练习完几题之后,就知道基本是使用最大堆或是最小堆的数据结构
如果是二叉树问题,基本上来说,就是使用深度优先、广度优先、或者回溯等递归的思路,百试不爽
动态规划还是必备的,就比如买卖股票、背包问题、改字符等等。。。(学习群每周有算法挑战)
经典的数据结构必不可少,比如,二叉树、LRU算法、字符串匹配、回文等,这些实在是常见,你不学会都不好意思
还忘了一个经典,数据排序方面的问题,二分查找、冒泡、快速排序等
小编也很后悔,当初没有更认真的去学习数据结构和算法,这门课是大学里少有的通用课程,和语言无关,主要都是针对思想,几乎每个学校都会涉及,甚至都是必修课。所以,一定一定要重视起来。
打个小广告:知道很多朋友平时没有约束,也不知道如何选题,可以加入小编的学习群,每周一篇翻译 + 算法学习。一个人走的快,一群人走的远,欢迎加入社群,同更多的人一起奔跑。
如果做好技术知识和算法题的准备,你get到了吗?
下篇文章中,介绍面试前的准备中最后一项,工作项目准备,比如如何对工作中的项目进行总结。敬请期待~
奔跑吧,攻城狮们!
本文由博客一文多发平台 OpenWrite 发布!