受疫情影响,很多人今年上半年根本不敢跳槽找工作,甚至相当多的程序员遭遇了裁员、调岗、降薪等!好在金九银十面试季到了!
面试的时候,很多人都小心翼翼,如履薄冰,担心,面试紧张、卡壳、答不上来怎么办?生怕自己说错一句话,就错失机会。
被面试官吊打,碾压,是常态,毕竟大多数面试官工作经验和技术都更加丰富嘛。
但是,术业有专攻,总有一些技术牛逼的程序员可以吊打、碾压面试官!
本人经常隔段时间就偷偷投点简历,请假出去面试几次,目的不是想跳槽,主要是为了看看市场上的技术流行趋势,顺便检验一下自己的水平,当然,如果面到了心仪的公司或者大厂,那不是更好嘛,哈哈哈!
前段时间收到了字节跳动的面试,虽然有点小震惊,但还是用平常心对待了。结果一不小心,面试的时候就吊打了面试官。不愧是我!
前后一个半小时的面试过程全程没卡壳,项目和算法全部搞定,甚至聊到了面试官的盲点…
面试官:我看你简历上掌握的技术还蛮多的啊。
在下:还行还行,平时会多研究一下。
面试官:那直接开始吧。我看你写着熟练掌握分布式技术,那么在多线程并发的情况下,如何保证一个代码块在同一时间只能由一个线程访问?
在下:简单,可以用锁来保证。比如java的synchronized语法以及reentrantlock类等等;
面试官:嗯嗯,如果在分布式的集群环境中,如何保证不同节点的线程同步执行呢?
在下:对于单进程的并发场景,可以使用语言和类库提供的锁;对于分布式场景,可以用分布式锁。
面试官:分布式锁的实现有哪些?
在下:Memcached分布式锁、Redis分布式锁、Zookeeper分布式锁、Chubby;
面试官:哟呵,你对分布式锁研究很深嘛。如何用Redis实现分布式锁?
在下:加锁使用setnx命令,key是锁的唯一标识,按业务来决定命名……(此处略去)
面试官:Redis与Zookeeper实现分布式锁的区别?
在下:redis分布式锁,需要不断去尝试获取锁,比较消耗性能;zk分布式锁,获取不到锁,注册个监听器即可,性能开销较小;redis获取锁的那个客户端bug了或者挂了,那么只能等待超时时间之后才能释放锁;而zk的话,因为创建的是临时znode,只要客户端挂了,znode就没了,此时就自动释放锁…
面试官:我们聊点别的吧……我看你关于并发这一块也了解过,双11高并发大促场景下,为什么淘宝只能够下订单, 而不能够退款?
在下:高并发系统有三把利器用来保护系统:缓存、降级、限流,不能退款就是服务降级,保证核心任务的正常运行…
面试官:支付宝转账提现功能应该如何优化?
在下:一致性、高吞吐方案等,具体的实现可以…(此处略去)
……
面试官:现在我有一个十万大小的数据集,要从中寻找选出最大的10个元素,怎么做呢?
在下:可以建立一个最小堆,首先取10万个元素中的前10个元素来建立由10个元素组成的最小堆。这样堆顶元素便是当前已知元素的第10大的数;然后依次读取剩下的99990个元素……
面试官:非常非常棒啊!可是今天已经3点了,天色不早了,您先回去等通知吧!
在下:???
面试的时候,开口第一句,面试官就知道你的水平了。你很多东西用过,但是并不懂底层原理,面试官一问,你就哑火了…
所以,在这段市场行情不容乐观的时期,想要跳槽也要充分了解技术能力需求和入职门槛,再认真审查自身技术含量,做到知己知彼。
网友评论