决定转行,是从2014年下半年,当时大学刚刚毕业,本科专业不是自己喜欢的,所以毕业后也没有从事相关性的工作,阴差阳错进了一家MCN公司,开始做自媒体写手。当时负责的领域是“科技”,也多亏了那个时候,才让我有了未来发展的方向。因为写科技领域的文章,所以开始慢慢接触到一些技术类的文章,开始了解到程序员这个职业,随着日子的增长,发现自己也愈发对程序员和互联网公司感兴趣,大概考虑了2-3个月,最后决定辞职,开始我的程序员人生。
拉开程序员人生序幕前,我认识了不少程序员朋友,经过他们的一些指导,才知道怎么开始自己的学习方向和学习路线,最终定下了——Java方向。
开始学习Java的时候,是非常难熬的,因为没有基础,知识点都非常枯燥无味,需要自己拼命理解,后来当自己学习到一定程度的时候,开始找了一份后台开发的工作,是一家比较小的公司,做的东西也比较简单,开始慢慢上手了。
大概在这家公司做了1年半,我辞职了,因为在这份工作过程中,我仍然没有落下我的学习进度,所以一年半的时间,我的知识和技术都提升不少,这个时候我知道,我该找与我匹配的舞台了。辞职后面试了很多家公司,都碰壁了,我把一切想象得太美好,好在身边贵人多,我从朋友那里成功拿到了某小厂的内推名额,加上自己面试表现还不错,所以也顺利入职(对了,我的学历是北京某211)。
在这家小厂工作期间,我仍然没有停下学习的脚步,每天都会抽出一些时间来提升自己,搜集整理一些文档资料,看教学视频等等,就这样一复一日,年复一年,很快迎来了2019年。
都说2019年是互联网的寒冬,而我,却成功迎来了我职业生涯的春天——我进入了腾讯,成为了后台开发工程师。
9月份投的简历,开始面试,国庆之后收到的意向书,目前已经办理入职手续,在职工作1周了,哪个事业部就不说了,下面主要分享一下这次腾讯面试的经历和一些真题吧。
image腾讯一面:
- 给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。
- 10 亿个 url,每个 url 大小小于 56B,要求去重,内存 4G。
- 把一个 bst 转化成一个双向链表。
- http 和 https 区别,https 在请求时额外的过程,https 是如何保证数据安全的?
- IP 地址子网划分;
- POST 和 GET 区别
- DNS 解析过程;
- 硬链接和软连接区别;
- kill 用法,某个进程杀不掉的原因(进入内核态,忽略 kill 信号);
- Linux 用过的命令
- grep 的使用,一定要掌握,每次都会问在文件中查找;
- shell 脚本;
- Find 命令;
- awk 使用
腾讯二面:
- Linux 下的一些指令,怎么查看进程,按照内存大小,CPU 占用排序等等。(大写 M 和大写 P)
- http 的 get 和 post 方法。
- 介绍下你所了解的 epoll。
- 数据库 sql 的了解程度。
- 项目中遇到的问题,自己咋解决的等等。
- 手写一个全排列。
- b 树和 b 树。
- 介绍一下 hash,怎么解决冲突。
- 进程间的通信,共享内存方式的优缺点。
腾讯三面:
- 自我介绍
- 看你非本专业出身,那你是怎么学习的呢?
- 说下你平时看的一些技术博客,书籍
- linux 下的一些指令
- 工作中你觉得最不爽的事情是什么?
- 说下你的优缺点
- 写个 strcpy 函数
- 说说你自己的性格
- 给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测?
- 以后可能要学习很多新技术,你怎么看?
- 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)?
- 系统的量级、pv、uv 等
- 应对高并发的解决办法(分布式)
- 在项目中主要负责了哪些工作?
- nginx 的负载均衡;
- 分布式缓存的一致性,服务器如何扩容(哈希环)
总结:
这次能够面试上腾讯,与自己的坚持和努力是分不开的,当然我也非常感谢在此期间我所有的程序员朋友对我的提供的种种帮助。在此,也希望与我有相似经历的人,能够达到自己的目标,实现自己的梦想!
网友评论