前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gophers如何准备面试?

Gophers如何准备面试?

作者头像
Golang梦工厂
发布2022-12-08 20:20:23
8360
发布2022-12-08 20:20:23
举报
文章被收录于专栏:跟着asong学Golang

前言

哈喽,大家好,我是asong。断更接近两个月了,这段时间我一直在准备面试,所以这篇文章就主要来说一说当前市场环境以及该如何准备面试; 我本人技术栈主要是Go语言,找的都是Golang开发的岗位,所以本文更适合相关技术栈的朋友们观看;

当前Go语言市场环境

当前互联网环境人尽皆知,不少公司都在降本增效,所以招人的公司并不多,除了宇宙条、砍一砍公司从未停止过招人,其他公司基本都停止了招聘,所以这个时候找工作真的难,如果有朋友想跳槽,我劝你最好冷静一下,骑驴找马最好。

我在找工作的时候主要是看上海、北京的机会,使用boss直聘投递简历,主要是看Golang岗位的职位,Go语言的岗位主要分为两大块:

  • 业务开发
  • 容器平台开发

众所周知云原生的一些代表产品k8s、prometheus、docker都是由Go语言开发的,所以市场上大多数岗位都是容器平台开发岗位,业务开发的岗位也有,不过一般都是小厂偏多,大厂使用Golang开发业务的就那么几个,主流开发语言还是Java,这个还是无可撼动的,虽然不多,但是机会还是有的,大家伙也不要担心,Go语言的市场会越来越好的,至少出来找工作还是有坑位的,能不能拿到就要看自己的实力了;

我本人之前的经历主要是使用Go语言开发业务,所以我本次投递的岗位也都是业务岗,我是想着冲击一下容器平台开发岗位,无奈自己真的不懂k8s,所以基本投递的简历都石沉大海了;

该如何准备面试

我也有两年多没有碰过面试了,所以刚开始准备面试是没有方向的,所以这时候我投递了几个小厂,寻思找找面试的感觉,顺便看看当前市场面试都问一下什么。好家伙,我立刻就收到了两个小公司的面试邀请,心想好好准备,总结经验,结果两个面试都在10分钟左右就结束了,两家公司都一样,面试官们什么也没问,上来第一句话就是:"我们面试开始吧,你先自我介绍一下",我:"balabalabala",面试官:"项目我们等下再过,我们先来做道题吧",长时间没有刷过题本身算法就比较弱,思考了好久都没有做出来,大概10分钟左右后,面试官说:"我没啥想问的了,你有什么想问的吗?",然后一场面试没结束,总结经验就是TMD算法题还是重中之重呀,算法题做不出来,会啥都没用呀!!!

算法题

前面说了那么多废话,就是为了引出找工作第一个要准备的就是算法题,现在的市场环境就是这样,不论大小公司,算法题是必考了,逃不掉的,甚至现在很多小公司都是上来先是算法题,做出来才会问一问八股文,否则你准备再多的八股文也是没用,算法题以我个人的角度来说,有些算法题是有必要掌握的,比如:链表、二叉树、排序、二分查找、栈、字符串,这些属于基本的数据结构,确实要熟记于心,而有一些算法题,就是在考数学能力,有些都是些奥数知识,我觉得在面试中考察不大,这种题就上升到智力了,一般很难在面试中想出来,反正我这个水平很菜,基本是写不出来;我只是吐槽一下,但是还是要准备的,算法题这个东西就是要多刷,接下来介绍几个学习算法的几个方式

  • 如果是临时抱佛脚,就刷leetcode hot100题
  • 如果是长期学习,leetcode就按照题型分批去练习吧,多写多总结
  • 极客时间有一个《数据结构与算法之美》,这个我看过一便,写的是真不错,跟着学一遍肯定有所收获
  • labuladong的算法小抄,大家也可以看一看这个对于算法入们来说是够用了

我主要就是这样学习算法的,如果你有更好的推荐欢迎评论区分享~

Go八股文

既然是面试Go语言的岗位,在简历上只要写的是熟悉、精通,都逃不掉Go八股文,我在面试中被问的最多的几个Go语言八股文如下:

  • GMP模型是什么?为什么要有P?
  • Go语言调度器的发展史说一下?
  • Go语言的逃逸分析和GC你了解吗?展开说一下GC的过程
  • Goroutine是什么?能介绍一下他吗?
  • defer是啥?怎么用的,底层原理是啥?
  • map和sync.map是有什么区别?看过源码吗,可以介绍一下吗?
  • 切片的底层实现说一下?
  • Go语言的互斥锁是怎么实现的?读写锁呢?
  • 项目中如果出现内存泄漏你是怎么排查的?

这几个我都是高频的面试考点

存储&中间件八股文

存储:mysql、redis、memory、elasticsearch

中间件:kafka、rabbitmq、延迟队列

这几个应该是后端开发同学必须要掌握的,尤其是mysql、redis,这两个可是老八股文了,这块没有多说的,如果有朋友对这些还不知道怎么准备也可以从我的Go语言八股文大全中获取;

mysql知识的学习推荐文章:极客时间:mysql45讲

redis知识的学习推荐书籍:redis的设计与实现,这是一本讲解底层实现的书,文章篇幅不多,3天时间差不多就可以读完,只要知识点你都记住了,应对面试应该是没啥问题

微服务

现在很多公司都是微服务化的了,所以微服务相关的八股文也要整理,有些同学可能会有疑问,这块不应该是基础架构的同事来管理吗,做业务的为啥也要知道这些?道理虽然是这样,但是作为业务开发也需要了解一下这方面的知识,才能更好的排查问题;

微服务相关的主要知识点:

服务拆分:划分规则、划分策略等

服务设计模式:链式设计模式、聚合器设计模式、基于时间的异步模式等

服务间通信:一对一、一对多、微服务API

微服务治理:服务注册与发现、负载均衡、配置中心、容错机制、安全、链路追踪、熔断、限流、服务优雅上线等

微服务框架:go-zero、dubbo-go、go-micro、go-kit等

我在面试中被问的最多的就是:服务注册与发现、负载均衡、链路追踪、熔断、限流,这几个知识点是高频考点,尤其是负载均衡和限流,基本每场面试都问,建议大家把这一块好好看一下;

网络与操作系统

计算机网络与操作系统,这块应该是基础课,但是能真正掌握这块的同学是少之又少,所以我放到了最后,如果你是面资深的岗位,那么你就要注意了,除了项目,这块的知识会被挖的很深,所以这块绝不是简单的背八股文就能解决的,建议大家没事还是把大学时候的书籍拿出来,在学习一遍;

这里推荐一本书:深入Linux网络,张彦飞大佬写的,我读这本书收获很大,里面的一些知识点是可以应付面试的;

这块我自己的掌握的也不是很好,给不了太多建议,不过通过这次面试,我觉得要真正理解网络与操作系统不应该只停留在原理阶段,还是要动手实践,比如要理解TCP的三次握手,抓个包比看任何文章都要好,这块我自己后续也会通过实践的方式重新学习一边网络和操作系统,后续会有精彩文章出现,敬请期待;

设计题

现在的公司一般主管面的时候都会问几个设计题,考察一下面试者对技术的掌握性,我在面试中就被了很多设计题,高频的几个面试题如下:

  • 给你一个100G的日志文件,你现在只有1G的内存,找出访问次数前10的IP;
  • zset 如何实现解题排行榜,排序解题数最多,相同解题数的时候,时间最少的在前面
  • 一个直播间会在一瞬间有千万流量进来,如何保证稳定性?如何维护直播间的排行榜保证VIP用户能实时看到自己送礼物的数量?
  • 搜索框下拉词如何设计?

这几道题都是我在面试中遇到的真题,系统设计题主要考察面试者的知识储备,这块没有办法整理全所有的面试题,重要的是思想,多总结、多思考;

项目

每个人的项目都不一样,只能自己准备,不过这个确是重中之重,一般技术面上来都是先聊一聊项目的,这个时候就考察面试者对整个项目的理解程度了,面试官的常考问题:

  • 说一下你认为你做的最有成就感的一个项目
  • 说一下你认为你做的最有挑战性的一个项目,然后你是怎么解决的

其实通过这两个考点就能知道面试者对整个项目的理解程度,比如你是做电商项目的,最好把下单链路都要了解透,这里提供几个整理思路:

  • 订单系统是核心系统,你是保证订单系统的稳定性的?
  • 下单时你们是怎么保证优惠库存扣减成功的?
  • 你们的订单系统存储模型是怎么设计的?为什么这么设计?
  • 你们系统的秒杀业务是怎么设计的?怎么保证不会超卖并且同时保证系统的稳定;

我在整理项目的时候就是按照这个思路整理,应该面试官应该是没啥问题了;

技术深度

这个其实是一个空话,不过在面试中也会被问到,总结其实就是两个问题:

  • 你对你下一份工作有什么计划?
  • 你对未来有什么计划?技术成长有什么计划?

这两个其实我被问了很多次,我每次的答案都不一样,哈哈哈,当然,这是因为面试的公司不同,我说的答案就不同,后来我静下来思考了一下这个问题,我做程序员这个行业的目的是什么?

我自己是喜欢编程的,我记得在填写高考志愿的时候就暗暗下定决心:我一定要当一个名黑客,哈哈哈,后来上了大学才知道,黑客是黑客,程序员是程序员,我本身是喜欢编程的,所以加入了这个行业,但是加入到这个行业,我就懒了,除了学习Go语言源码的知识,我很少接触其他知识,所以广度不够,所以接下来我的目前是提升广度,我本身对容器编排这块感兴趣,所以我在之后会学习k8s,接下来应该会着重分享k8s学习心得;

这个一般在面试中的占比不是很大,但是对面试者自身很重要,还是建议大家没事多问一些为什么、多看一些开源项目,多沉淀、多积累,愿大家都能成为技术大咖;

分享Go八股文大全

我在面试过程中,整合了一些Go语言八股文大全,麻雀虽小,但是五脏俱全,这份文档还是缺少一些东西,我会定期维护的,先分享第一个版本给大家,后续会不断迭代的

总结

本文只是根绝个人这段时间找工作总结的一份面试准备指南,并不是适用所有人,大家可以取其精华,预祝大家都能找到不错的工作,加油,兄弟们!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang梦工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 当前Go语言市场环境
  • 该如何准备面试
    • 算法题
      • Go八股文
        • 存储&中间件八股文
          • 微服务
            • 网络与操作系统
              • 设计题
                • 项目
                  • 技术深度
                  • 分享Go八股文大全
                  • 总结
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档