社招面经-后端开发

大佬博客:https://aleiwu.com/post/interview-experience/#%E5%B0%8F%E7%BB%93-1

蚂蚁

面试前

蚂蚁的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。

全程 6 面,前五面技术面,电话面试,最后一面是 HR 面,现场面。

一面

介绍一下自己
问项目经历, 聊"数据同步"
接着聊上了 K8S 的项目
有没有什么钻研得比较深得技术?(我:kubernetes, golang, prometheus, java) kubernetes 的架构是怎么样的?
这个问题很大,拆成 apiserver、controller、kubelet、scheduler 讲了一下

golang 与 java 的比较

这个问题又很大,当时主要对比了 vm、协程支持、面向对象和泛型的区别、以及自己对各自使用场景的一些理解

golang 的 gc 算法

知道是三色标记,不过细节说不上来

从无限的字符流中, 随机选出 10 个字符

没见过也没想出来,查了一下是蓄水池采样算法,经典面试题,没刷题吃亏了

怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度

单节点提速:优选阶段随机取部分节点进行优选;水平扩展 scheduler 节点,pod 做一致性 hash 来决定由哪个 scheduler 调度

你有什么想问我的?

一面其实有点僵,我自己完全没放开,面试官对我的回答没有什么反馈和深入,都是"哦好的"然后就过了。所以我当时面完觉得自己其实已经挂了(我自己要是对***不感兴趣,有时候也就问完问题走个过场溜了),后来收到二面电话着实吃惊了一下。

二面

先聊了聊项目
给 Prometheus 做了哪些改动?
自研配置中心, 具体做了哪些内容? 有用过 MySQL 的什么高级特性吗?
这里不太理解,我问什么算高级特性,面试官就切换到了下一个问题

配置中心的核心数据表是怎么设计的?

为什么在业务里用 Redis, Redis 有什么优点?
单线程:并发安全;高性能;原语与数据结构丰富;采用广泛,踩坑成本低

对 Redis 里数据结构的实现熟悉吗?

说了一个 zset 跳表

用过 Redis 的哪些数据结构, 分别用在什么场景?
Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用?

自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优?
这个问住了,我只知道最大堆最小堆,开 G1,开 GC 日志以及 OOM dumper 这些基本的

用 Jetty 的时候有没有配什么参数, 为什么这么配?
Jetty QTP 等待队列配置成无限的话, 你觉得好吗? 会有什么问题吗?
用过 Linux Bash 里的哪些命令, 分别用它们干嘛?
一道笔试题: 需要在给的链接中作答, 不能 google, 不能跳出, 不能用 IDE:

题目是这样的:

启动两个线程, 一个输出 1,3,5,7…99, 另一个输出 2,4,6,8…100 最后 STDOUT 中按序输出 1,2,3,4,5…100

我: 我用 Go 实现吧

面试官: 不可以,用 Java 的 notify 机制实现

我: (还没意识到问题的严峻) 那我用 Java BlockingQueue

面试官:说不可以, 要求用 Java 的 wait + notify 机制来实现

我完全没写过 wait + notify,只能表示不会(菜鸡本鸡了), 面试官说那行吧你可以用 go 写

最后用 go channel 实现了一版, 不过给的网页上不能运行代码,也不知道写得对不对,然后面试结束。

这一轮面试官延续了一面的风格,问完一题就赶忙下一题了,似乎没有表现出对我的回答有兴趣或认可。因此这轮面完,我又觉得自己挂了...

三面

依然先聊项目 对监控警报的项目很感兴趣, 问了挺多细节, 最后问了一个问题: 现在要你实现一个语义不弱于 PromQL 的查询语言, 你能实现吗?
这里虽然看过一些 Prometheus 的代码,但其实对 PromQL 的 lexer 和 parser 部分没有细看,还好之前因为数据同步项目里想写声明式 Stream SQL 研究过一点 ANTLR,用 ANTLR 写语法 + AST 遍历塞查询逻辑给糊弄过去了。

问我觉得做得最深入的项目是什么

当然是数据同步(狗头)

聊数据同步项目(这个很符合我的预期,哈哈哈哈)

问 Linux 掌握得怎么样?
没有系统学习过,基本上是自己运维踩坑积累的

问 Golang 掌握得怎么样?

用了半年, 看过 effective go

问算法掌握得怎么样?

到图为止都可以

问最短路算法

只记得 dijkstra 了,描述了代码流程

k8s 掌握得怎么样?

不怎么样,没有自己写过 controller 和 scheduler,但是对概念都很熟悉,看过 xxx 这几部分的源码

k8s 的 exec 是怎么实现的?

这个问题正中下怀,之前写了 PingCAP 的小作业正好对这块特别熟悉


这轮聊得顺畅多了。同时发现蚂蚁的面试官似乎挺喜欢让你自己评价自己的:"你觉得自己 xxx 掌握得怎么样?"(只有五位面试官,样本不够大,不能作数哦),这类问题其实我慌得要死,怕自己吹过头了答不上来,面试挂了事小,丢了面子事大。早知道就预习一下怎么吹嘘自己了。

四面

介绍一下自己
觉得自己基础知识掌握怎么样
平时一般会用到哪些数据结构?
链表和数组相比, 有什么优劣?
如何判断两个无环单链表有没有交叉点
如何判断两个有环单链表有没有交叉点
如何判断一个单链表有没有环, 并找出入环点
TCP 和 UDP 有什么区别?
描述一下 TCP 四次挥手的过程中
TCP 有哪些状态
TCP 的 LISTEN 状态是什么
TCP 的 CLOSE_WAIT 状态是什么
建立一个 socket 连接要经过哪些步骤
常见的 HTTP 状态码有哪些
301和302有什么区别
504和500有什么区别
HTTPS 和 HTTP 有什么区别
写一个算法题: 手写快排

这一轮全程问的基础知识,基础扎实的话就没问题了,不过个人感觉有一点像校招的问法。

五面

介绍一下自己
在 k8s 上做过哪些二次开发?
自己用 Helm 构建过 chart 吗?有哪些?
有没有考虑过自己封装一个面向研发的 PaaS 平台?
配置中心做了什么?
为什么不用 zookeeper?
配置中心如何保证一致性? Spring 里用了单例 Bean, 怎么保证访问 Bean 字段时的并发安全?
用并发安全的数据结构,比如 ConcurrentHashMap;或者加互斥锁

假如我还想隔离两个线程的数据, 怎么办?

ThreadLocal,然后举了个例子

Golang 里的逃逸分析是什么?怎么避免内存逃逸?

这个不知道,认怂了

对比一下 Golang 和 Java 的 GC

答了一下 CMS、G1和三色标记,我对比的点是 JVM 有分代回收,Go 的 Runtime 没有,没能深入地讲

Golang 的 GC 触发时机是什么

阈值触发;主动触发;两分钟定时触发;

有没有写过 k8s 的 Operator 或 Controller?(我:没有写过)

谈一谈你对微服务架构的理解
大体思路"微服务本质是人员组织架构演进与关注点分离"

谈一谈你对 Serveless 的理解

大体思路"Serveless 是继 docker 与容器编排之后的又一次应用开发与基础设施提供方之间的边界划分"

你认为 Serveless 是未来吗? 为什么?

大体思路"是云服务的未来,把蛋糕从企业的IT、运维与中间件部门切走,形成规模效应,做得越多赚得越多;公司内的话 servless 能够帮助加速前台业务迭代,但对中后台的收益还看不到,未来可能会有比 servless 更适合中后台的架构"

面试官:最后你有什么要问我的?
我:为什么足足安排了五轮技术面,而且其中有两轮似乎和 k8s 没有关系啊?
面试官:我们觉得你做过的东西挺多的,各个方向都想让你尝试一下 (我的内心:......)
我:那这轮是最后一轮技术面吗?
面试官:不一定(我的内心:......)

五面最后的三个吹水问题我还挺感兴趣,可惜面试官只是听我讲,没有跟我讨论。还有就是问了面试官才知道,二面四面的面试官是 PaaS 平台那边的,因此主要问 Java 没有涉及到 k8s 和 go。

六面

HR 面,之前就听说过阿里系的 HR 是来"闻味道的"(看你是否适合阿里的风格),而且有一票否决权。所以还是挺有压力的。

问经历 为什么要考虑出来看看呢?
金句:"现在自己的技术成长有点碰到瓶颈,加上一直对您公司钦慕有加☺️""

现在公司的主营业务是什么?(这块往技术上问了很多,感觉是想考察我解释复杂问题的能力)
现在带人吗?report 层级是怎样的?
对自己这几年的经历满意吗?
觉得自己有什么缺点?
碰到过什么很挫败的事情吗?
未来的职业规划是怎样的?
看机会的时候,主要考虑的是待遇、平台、人员还是什么其他因素?
现在的待遇如何
有什么想问我的

整体聊了 40 多分钟,话题挺广的,面试官也说了系统部这边压力挺大的,优秀的人才才能留下来。个人觉得 HR 面里除了谈薪酬的部分没有什么可准备的,想说什么直说就行。因为到了 HR 面至少证明你的技术没什么问题,直说出来方便 HR 判断两边的价值观是否合拍,假如真的不合拍,那其实在 HR 这一面挂了比起进去之后再后悔又跳槽要好很多,毕竟大家都不喜欢频繁跳槽的简历。

头条

一面

介绍一下自己, 为什么选择出来看看机会
聊项目, 警报怎么做的, 统一接入监控项怎么做的
聊项目, 配置中心项目, 问实时配置推送怎么做
讨论为什么选择所有的组件依赖放在配置中心中控制

我现在要做一个限流功能, 怎么做?
令牌桶

这个限流要做成分布式的, 怎么做?

令牌桶维护到 Redis 里,每个实例起一个线程抢锁,抢到锁的负责定时放令牌

怎么抢锁?

Redis setnx

锁怎么释放?

抢到锁后设置过期时间,线程本身退出时主动释放锁,假如线程卡住了,锁过期那么其它线程可以继续抢占

加了超时之后有没有可能在没有释放的情况下, 被人抢走锁

有可能,单次处理时间过长,锁泄露

怎么解决?

换 zk,用心跳解决

不用 zk 的心跳, 可以怎么解决这个问题呢?

每次更新过期时间时,Redis 用 MULTI 做 check-and-set 检查更新时间是否被其他线程修改了,假如被修改了,说明锁已经被抢走,放弃这把锁

假如这个限流希望做成可配置的, 需要有一个后台管理系统随意对某个 api 配置全局流量, 怎么做?

在 Redis 里存储每个 API 的令牌桶 key,假如存在这个 key,则需要按上述逻辑进行限流

某一个业务中现在需要生成全局唯一的递增 ID, 并发量非常大, 怎么做

snowflake (这个其实答得不好,snowflake 无法实现全局递增,只能实现全局唯一,单机递增,面试结束后就想到了类似 TDDL 那样一次取一个 ID 段,放在本地慢慢分配的策略)

算法题, M*N 横向递增矩阵找指定数

只想到 O(M+N)的解法

有什么想问我的?

限流,分布式锁,UUID 都属于后端的经典面试题,这轮面试的参考价值挺大的。

二面

平时用的工具链和技术栈是什么 golang 踩过坑吗?
答了之前 PingCAP 面试时面试官问的 for-range 里的 go-routine 闭包捕获问题

这段 golang 代码有没有 bug(还是一个 for-range 的坑)

有 bug,for-range 的 value 引用拷贝问题

Java 中 HashMap 的存储, 冲突, 扩容, 并发访问分别是怎么解决的

Hash 表,拉链法(长度大于8变形为红黑树),扩容*2 rehash,并发访问不安全

拉链法中链表过长时变形为红黑树有什么优缺点?

优点:O(LogN) 的读取速度更快;缺点:插入时有 Overhead,O(LogN) 插入,旋转维护平衡

HashMap 的并发不安全体现在哪?

拉链法解决冲突,插入链表时不安全,并发操作可能导致另一个插入失效

HashMap 在扩容时, 对读写操作有什么特殊处理?

不知道

ConcurrentHashMap 是怎么做到并发安全的?

segment 分段锁

Java 有哪些锁机制, 分别有什么特点?

Synchronized、可重入锁

知道 CAS 吗? Java 中 CAS 是怎么实现的?

Compare and Swap,一种乐观锁的实现,可以称为"无锁"(lock-free),CAS 由于要保证原子性无法由 JVM 本身实现,需要调用对应 OS 的指令(这块其实我不了解细节)

MySQL 的存储引擎用的是什么?(InnoDB)为什么选 InnoDB?

几乎所有公司用 MySQL 都用 InnoDB,降低踩坑成本;聚簇索引,MVCC

MySQL 的聚簇索引和非聚簇索引有什么区别?

聚簇索引的叶子节点是数据节点(比如定义了主键时的主键索引),非聚簇索引叶子节点是指向数据块的指针

B+树和二叉树有什么区别和优劣?

B+树是多叉树,深度更小,B+树可以对叶子节点进行顺序遍历,B+树能够更好地利用磁盘扇区;二叉树:实现简单

针对一个场景设计索引,具体场景忘记了,反正考察的是联合索引与列选择性的知识
现有一个新的查询场景, 要怎么解决?

假如要查 A in () AND B in (), 怎么建索引?
只给选择性高的一列建索引,这里因为两个都是范围查询所以另一个是走不到索引的(这里答的不好,其实也可以建联合索引然后用 (A,B) in ((1,2),(3,4)) 的方式去查)

查 A in () AND B in () 时, MySQL 是怎么利用索引的?

先走一个非聚簇索引,查询出行数据后再用另一列回表做筛选

假如查询 A in (), MySQL 是针对 N 个值分别查一次索引, 还是有更好的操作?

不知道,有了解的同学可以留言

用过 Redis 的哪几种数据结构? (都用过) ZSET 是怎么实现的?

跳表

zrange start, stop, 总长度为 n, 复杂度是多少?

O(logN) (答得不好,实际是 O(M+log(N)), M 是结果集基数 stop-start)

Kafka 的消费者如何做消息去重?

MySQL 去重、Redis 去重、假如场景量极大且允许误判,布隆过滤器也可以

介绍一下 Kafka 的 ConsumerGroup

挺长的,略

Kubernetes 和 Docker 用得怎么样? (我:在公司推行布道)
给它们贡献过代码吗?(我:没有...)

时序型数据库的存储结构是怎么样的?
讲了 prometheus 1.x 和 2.x 的存储结构

LSM 树了解吗? 是一种什么存储结构?

Log-Structured Merge Tree,牺牲读性能换取性能,RocksDB、HBase、Cassandra 都在用,结构有点忘了,只说了先写 memtable 再刷盘成 sstable

在生产中用过 Cassandra 和 RocksDB 吗? 量有多大?

用过,Cassandra 存调用链,RocksDB 做 flink 和 Kafka Stream 的本地状态存储

Cassandra 的墓碑机制是什么?

不知道,对 Cassandra 停留在使用阶段


二面问了好多中间件的基础知识,最后都没有时间问算法了。面完之后心里就想:头条的面试真是耿直啊,Java 的 HashMap、锁机制、CAS 到 MySQL 的索引,Redis 的 zset,再到 LSM 树,全都是后端或中间件相关的热门面试题。当然这些问题热门也是有原因的,即使***准备过,多扣一点细节也能很快就能看出来***是真的理解还是仅仅只是看了相关资料。

三面

聊项目和工作经验
用 Kubernetes 的过程中踩过哪些坑? 考虑一个业务场景: 头条的文章的评论量非常大, 比如说一篇热门文章就有几百万的评论, 设计一个后端服务, 实现评论的时序展示与分页
我: 需不需要支持页码直接跳转?
面试官: 支持和不支持两种场景都考虑一下
我: 不需要支持页码翻页就传评论 id 用 offset 翻页

假如用 id 翻页的方式, 数据库表如何设计? 索引如何设计?

(文章id, 评论id) 建联合索引,评论 id 需递增

假如量很大, 你觉得需要分库分表吗? 怎么分?

需要分,分表有个权衡,按文章 id 分表,读逻辑简单,但写有热点问题;按评论 id 分表,读逻辑复杂,但写压力就平均了。写是要首先保证的,而读总是有缓存等方案来折中,因此按平均 id 分表好。

分库分表后怎么查询分页?

每张表查 N 条数据由 client 或 proxy merge

分库分表后怎么保证主键仍然是递增的?

讲了 TDDL 的办法:有一张专门用于分配主键的表,每次用乐观锁的方式尝试去取一批主键过来分配,假如乐观锁失败就重试

现在需要支持深分页, 页码直接跳转, 怎么实现?

不能做精准深分页,否则压力太大,找产品进行妥协,在50或100页后数据分页是否可以不完全精确,假如可以,那么缓存深页码的起始评论 id

瞬时写入量很大可能会打挂存储, 怎么保护?

断路器

断路器内部怎么实现的?

可以用 ringbuffer

断路器会造成写入失败, 假如我们不允许写入失败呢?

先写进消息队列,削峰填谷异步落库

算法题: N 场演唱会, 以 [{startTime, endTime}…] 的形式给出, 计算出最多能听几场演唱会

先讲了思路, 按 endTime 升序排列,再顺序取最多场次

(讲完思路之后)屏幕共享给我, 用你最熟悉的语言把这个算法实现

用 go 实现了一版

你用了贪心法, 贪心可能会存在什么问题?

局部最优,在这个问题里,只能找到一个可能解,无法找到所有排列方式


我觉得三面这个架构设计问得还不错,一个问题把后端的工程能力考的很全面了。

HR 面

大同小异,问经历,问离职原因,问职业规划,问待遇,问期望。

PingCAP

一面

面试官给的项目要求大体是这样:

K8S 容器化之后应用容器里几乎没有什么可用的调试工具,可以利用容器 Namespace 共享的思路,启动一个包含各种调试工具(比如 netstat, gdb)的容器,加入到 pod 的 pid、net 等 namespace 中, 实现对任意 pod 的 debug 功能。现在希望利用 kubectl plugin 机制实现一个插件,用于 debug 任意一个 pod 里的容器,达到 kubectl exec 的使用体验.

二面

二面是一位 Cloud 方向的前辈面我,全程大概微信语音聊了50多分钟:

问项目经历,聊了两个项目
对 Kubernetes 了解怎么样,看过源码吗?
Kubernetes 的 Service 是什么概念,怎么实现的?
你刚说到 Informer,Informer 是怎么实现的,有什么作用?
StatefulSet 用过吗?有什么特点?
StatefulSet 的滚动升级是如何实现的? 现在我们希望只升级 StatefulSet 中的任意个节点进行测试, 可以怎么做?
这题没有思路,只好强答用"两个 StatefulSet",后来一想起一个新的 StatefulSet 那 PV 里的数据就丢了,其实正确办法是利用 partition 机制,笑容渐渐消失。

Kubernetes 的所有资源约定了版本号, 为什么要这么做?

第二个拿不准的问题,我面试前就反复告诉自己"不要强答"以及"不知道的题就讲思路",于是就说这块代码确实没看过,但是根据微服务 API 的设计理念,版本号的作用有巴拉巴拉。答完似乎面试官还算满意,于是又往下挖了一句:

假如有多几个版本号并存, 那么 K8S 服务端需要维护几套代码?

这题完全不知道,内心逐渐焦灼,立马走老套路"这我没看过 k8s 代码怎么写的无法确定(想表达自己真正看过代码才会确认,凸显自己严谨...我的妈呀),但假如由我来写这份代码(装作非常自信),我会只会维护一份最新的 Model,然后设计对应一个版本段的 Adpater 将老版本的 Model 转化过来巴拉巴拉"。到这里我已经虚的不行了

OK,那接下来我们聊聊 Golang (我:长舒一口气)
看一下这段代码有没有问题(一段 golang for-range 里 goroutine 闭包捕获的代码),为什么?
goroutine 是怎么调度的?
goroutine 和 kernel thread 之间是什么关系?
有什么想问我的?

面完之后感觉答得一般,心里有点忐忑。结果第二天 HR 小姐姐就来安排三面了,长舒了一口气。

三面

三面是和整个大部门的 Leader 聊,面试官很能聊(声音还很好听!)而且技术非常全面,全程大概微信语音聊了80多分钟:

给我介绍 PingCAP 相关团队的职责与挑战
聊为什么出来看机会,以及未来的职业规划
聊我之前做的一个数据同步的项目,大概内容是订阅 MySQL Binlog,sink 到搜索索引、分库分表以及业务事件订阅流中
为什么数据同步里选择了 xxxx 开源项目,优势在哪?
订阅分库分表的 Binlog 怎么订阅?
分库分表的数据源中假如存在主键冲突要怎么解决?
怎么保证下游对 Binlog 的消费顺序?
如何在下游保证消费时的事务原子性?
描述了一下 tidb 的 binlog 架构,问这种场景下怎么保证 Binlog 顺序
聊一个上了 Kubernetes 的项目,问了一些细节和坑
用 Kubernetes 之后,解决了哪些问题?
聊我之前做的监控警报项目,问背景和产出
Prometheus 单实例数据量级 hold 不住了,有什么解决方案?
有什么想问我的?

简历里的"数据同步"这个项目我是好好复习过自己当年写的调研文档和架构文档的,也做了被问的准备(换位思考,是我我也问。这个其实就是我专门希望面试官来挖细节的项目)。最后确实被问最多的就是这个项目,运气真的不错 😁。

四面

四面到了现场面,有两位面试官一起跟我聊,大约聊了 40 多分钟:

聊"配置中心"项目的细节
为什么不用 ZK,要自己再写一个"配置中心"
配置中心怎么做服务发现的?怎么做 failover 的?
用 Kubernetes 碰到过哪些坑?
对 Prometheus 做了哪些改动?
对 Alertmanager 做了哪些改动?
监控系统怎么做"自监控"?
跨机房的网络问题怎么监控?
有什么想问我们的?

四面是纯项目,里面的经验就不太通用了。但这里面有个细节,就是到中途的时候两个面试官互相对了一下"还有什么想问的吗?"我意识到面试官们想问的问题不多了,可时间大约才过了20分钟(面试时间过短是一个 bad smell)。于是之后几个监控的问题我都尽量说得很细,同时顺便提一下"还有一个方面我们当时也做了挺多工作",暗示面试官往下挖的线索。不知道这招有没有奏效,反正这一面算是有惊无险过啦。

五面

技术面到四面就结束了,五面是创始人面(有幸和崔秋大佬聊了20多分钟人生),面完之后就是 offer call 了。

#PingCAP##蚂蚁集团##字节跳动##Java工程师##golang工程师##社招##面经#
全部评论
巨佬啊,收藏一波
7 回复 分享
发布于 2019-09-26 17:30
建议说一下出处:https://aleiwu.com/post/interview-experience/#%E5%B0%8F%E7%BB%93-1
3 回复 分享
发布于 2020-02-08 20:08
感谢前辈!这些知识点都是在工作中积累的嘛?还是会额外学习一些资料的啊
2 回复 分享
发布于 2019-09-27 01:04
感谢分享,出来看大佬
1 回复 分享
发布于 2019-09-26 17:45
希望两年之后我也能这么厉害
1 回复 分享
发布于 2019-09-26 22:22
这tm是两年???  做了这么多东西??
1 回复 分享
发布于 2019-12-24 18:05
很好奇什么公司技术用的这么杂,还是lz是自己兴趣驱动的
1 回复 分享
发布于 2020-06-17 07:05
tql,看大佬面经如看天书
3 回复 分享
发布于 2019-09-28 21:17
大佬怎么积累啊,求分享
1 回复 分享
发布于 2019-09-28 21:03
tql!!!!
点赞 回复 分享
发布于 2019-09-26 21:34
tql
点赞 回复 分享
发布于 2019-09-27 02:10
无论是技术的硬实力还是面试的软实力,只能说...tql希望两年后我也能像大佬这么强
点赞 回复 分享
发布于 2019-09-27 11:17
tql,两年是怎么把自己变得这么强的,大佬有什么心得体会可以分享吗?
点赞 回复 分享
发布于 2019-09-27 17:28
感谢大佬分享!欢迎参加社招面经活动~~ -------------------- 活动:社招面经征集|参加过社招的牛友,来发面经吧,拿京东卡
点赞 回复 分享
发布于 2019-10-21 14:42
果断收藏!巨佬牛牪犇
点赞 回复 分享
发布于 2019-10-21 15:14
tql
点赞 回复 分享
发布于 2019-11-11 17:58
hello,楼主,平安夜快乐。我想问一下蚂蚁的六面您大概总共历时多久
点赞 回复 分享
发布于 2019-12-24 21:07
这真的是两年嘛。卧槽
点赞 回复 分享
发布于 2020-01-14 17:12
太强了吧!!巨佬
点赞 回复 分享
发布于 2020-02-04 23:43
强人啊
点赞 回复 分享
发布于 2020-02-22 22:14

相关推荐

11-15 20:00
门头沟学院 Java
首先说一下我自己整个秋招的TL:bg: 国内双非一本院校阶段一: 信心满满找工作六月到九月初就一直在广州找工作,这个时间段大多都是一些社招&小厂的校招阶段二: 备受打击润考研九月到十月末(10.26号左右),复习考研阶段三:临时抱佛脚捡漏十月末到现在,秋招捡漏(成功捡漏联想测开,base天津)--------------------------分界线-------------------------很多朋友说,其实我这个bg,可以找到一个中小厂的工作,然后再加上自己专业是区块链在广州/深圳也有很多区块链的公司,自身对于区块链是很感兴趣的,想着去试试看,结果去了之后发现这就是理想和现实的差距:广州深圳的很多公司,名义上是做区块链的开发,结果是做的是区块链的数据分析和薅羊毛的工作,这和我理想中的区块链有很大的差距并且他们很多都是高强度工作996没加班工资是常态,然后就考虑转做软件开发的工作,因为本身自己就是做后端开发的加上自己也那个时间写的一个web框架在github上有100+的star,就觉得肯定找个后端开发的岗位很容易结果,对,没错,很打脸,大部分公司,要么是外包,要么就薪资开出来很低(当然绝大部分都是面试官照着电脑上搜出来的八股挨个问的,整个面试挺死板的),真就那句话,Java一千五都有人干,然后逆天的公司也很多。比如建议我在golang框架中加入IOC思想的,年轻人要吃苦干全栈的.....说实话这些公司,始终和我理想中的程序员岗位有很大的差距,这些岗应该是叫做码农(整天的CRUD,开不完的会和随时被辞退的风险)好在,最后快要走之前一周,面试了一家外企,基于微软的代码生成平台做外包软件的岗(类似于很多公司的若依开发),虽然12天年假,但是去面试的时候(因为是中午),很多人都还在工位上工作(对于需要睡午觉|爱摸鱼的我来说顶不住这么高强度的开发),并且薪资也不是很高:实习期3.5K,转正6K,所以想都没想下午收到面试通过的通知之后就给拒了然后就挺失望地回了家,准备努力努力考研去个好一点的学校,但是由于大学三年,时间大部分都在开发和项目上了,导致自己在数1和政治方面要补的东西挺多的,虽然自己是一天大概15小时都在学,但是总会觉得很焦虑。然后有天学习累了,就刷小红书/B站,发现好像今年秋招甚至比去年都还困难,很多人都发视频说,自己双非本硕,直接被卡学历。结合我自己做项目合作过的一些研究生的学长/学姐的情况来看,这个情况确实可能存在的纠结了几天之后,发现可能我四年研究生读了出来,薪资应该可能跟我现在出来找工作差不多,并且可以投的方向要少很多,然后就下决心了,就觉得还是得出来找个班上更稳妥一点,向上读书对我来讲可能更像是逃避现实一样。我喜欢的其实是做开发,对我来讲,开发其实就是自己作为一个世界规则的制定者,对用户制定属于我自己的规则,所以我其实很喜欢在开发/做项目的时间。开始投简历之前,花了几天练习算法和复习一下之前在广州找工作被拷打了的八股文,然后就开始投,基本上定位就是中大厂,然后来者不拒,尽可能投那些标注稀缺的岗位(华子和蓝绿厂没投,因为知道我这个学历今年进不去),在做了大概一百多份测评和笔试之后,被联想光速捞起(可能是因为确实挺缺人)--------------------------分界线-------------------------写在最后:很多计算机的学弟学妹,如果你们在考虑,大四是工作还是考研的话,那我建议,尽量都去找工作,因为计算机学历的升值速度远远比不上他贬值的速度,对大部分计算机专业考研双非来讲,其实考研是一场豪赌,赌你的专业,在四年之后是否会成为稀缺的那个专业,我觉得我目光不是很长远,我预测不到未来的互联网发展趋势,所以我选择了放弃考研。当你在考研和找工作之间犹豫的时候,别怀疑,找工作吧。理性分析:很多人可能都会说上面的研究生0offer是我看到的幸存者偏差。对,我承认,或许真的是我看到的幸存者偏差,但是,不可否认的是,①: 计算机越来越卷 ②: 就业越来越难 ③: 市场经济没有前几年那么好了。今年数据:那我们可以从客观的角度来预测一个大体的趋势: 25届毕业的我们,对应的出生年份大概是03,02年,我们可以在国家统计局网站去看,03年和02年出生人口是1500万-1600万之间,国家的高等教育普及率是在逐年上升的,假设02,03年出生的人,有45%经历了高等教育,那么,今年的可就业人数就应该是1400万以上(实际数据可能会比这个要高很多,因为没有算复读人口和研究生人口)读研四年后的数据:由上面的我们可以推测出,与四年后的我们竞争的是,06-07年出生的学弟学妹,那他们现在应该是还在高三,但是我们不能忽略一个事实是,出生人口在增加+高等教育普及率越来越高+计算机专业越来越热门(因为张雪峰老师等高考志愿填报老师在宣传),所以,到时候的就业人数可能会到一个很夸张的数量,可能1800万以上?总之就一句话: 你们卷考研吧,我耗不起,我溜了
点赞 评论 收藏
分享
评论
87
598
分享
牛客网
牛客企业服务