程序员自我介绍_屌丝程序员的逆袭之路,八面企鹅厂

b25591505b556cfc02532de08ab3baef.png

部分来源:网上

本人现今十年开发经验;前前后后为进腾讯面试八次(腾讯旗下——腾讯互娱,企鹅直播的offer都被hr因学历而被拒,最后的腾讯教育面幸运地被录用了,拿到P6offer,真正的“八面”腾讯!)。

c57b82849a7822c8d761c35f8ee6f73c.png

本文主要分享面试总结,分享程序员我个人架构开发之路的学习经验。

腾讯(鹅厂)组织架构

811bd011d57b9fa5b21ef1887224541f.png

腾讯八面

面试流程(高级)

腾讯社招的高级职位流程相对较长,可能长达2 个月。

1) 一面leader

2) 二面总监

3) 三面部门GM

4) 面委会一面电话面试(CSIG,其它是通道委员会)

5) 面委会二面(CISG,其它是通道委员会)

6) 最后一面hr 电话

7) 发口头offer

8) 正式邮件offer,开始背调

9) 入职指引

面试总结

虽然腾讯互娱,腾讯视频,腾讯教育都归属腾讯旗下,但每个面试官问的问题都不一样,相同点主要在流程方面。面试开始会让自我介绍,主要业务架构和技术架构两部分。业务架构一般不会深究,但要面试官听明白,并且一般面试官会顺着问是如何根据这些业务去设计技术架构的。

技术架构部分,会根据自我介绍中提到的技术点问,是为什么使用这些技术,解决了哪些问题,碰到哪些困难,是如何思考和解决的,最后再顺带一些技术本身底层的设计方面的问题:

例如:有redis,会问哪些场景用,解决了什么问题,数据量有多少,用的过程出现过哪些问题,怎么去定位解决的,Redis缓存集群一致性方案,还有没有更好的方案,如何防止缓存击穿。诸如此类的问题。

总结了面试官最喜欢问的方面有网络IO模型,多线程和多进程的模型,比如reactor的设计模式,比如nginx的Master和worker进程设计如何处理惊群问题,是否了解过协程的方案,除了互斥锁方案,还有什么并发方案呢?

不管哪个技术点,能答到面试官无法在这个问题上问下去了,或者能答到计算机硬件上就过了。 有不清楚的可以直接回答,有一些不会的不影响整个面试。

面试准备

架构开发技术之路的学习经验

想要了解架构技术知识点的,可以关注我一下,我后续也会整理更多关于分布式架构这一块的知识点分享出来,里面会分享一些资深架构师录制的视频录像:有DNS负载均衡,NGINX负载均衡等高并发的处理,TCP、epoll等技术应用,单台百万并发的实例讲解,源码分析,高并发、高性能、分布式、微服务架构的原理,内存池性能优化这些成为架构师必备的知识体系。

面试题及答案

e8abcad6b8a698aba156aa8965abe68a.png

fdbcb7e9a3569c0cdff9bd4b424fa362.png

f385916b1be8b177ea2c2b0f5017335c.png

想要要获取完成面试题可以私聊我关键字+【面试】

一、 阅读源码

阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式、高并发处理的一些数据结构,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在腾讯的面试中,libevent,nginx甚至是redis的源码设计也是经常问的。

f062e99897df25880a7077e267d5daf5.png

二、集群专题

在解决大数据和可靠性设计的时候,都会进行服务器的集群部署,比热mysql集群后的读写分离和分库分表,binlog的同步机制,还是健康检查等;又比如redis集群后的一致性方案,还有没有比hash一致性方案更优的方案呢,redis的hash槽以及数据移动怎么做?再比如zooKeeper的ZAB算法解决数据一致性,zooKeeper的原子性,利用zookeeper设计的分布式锁等等。

670f30aad2f7f8e44c76adfb3811aaf3.png

三、数据库与中间件开发

并发或者说并行编程几乎是所有互联网公司面试必问问题,并发编程后台程序员最重要的基础技能之一,多进程之间的通信,线程池的设计,内存池的同步方案,用协程解决阻塞socket为异步通信以此提高并发能力等等,当然还包括常用的一些设计方案,比如C/C++和go等静态变异的程序的热更新方案,比如通过nginx或者etcd做A/B灰度发布等; 比如高并发的的一些方案,NDS负载均衡,LVS+Nginx+Keepalived的方案,LVS的几种工作模式,虚拟IP如何配置等等;除了这些还有网络协议栈的,比如TCP的TIME_WAIT状态是什么意思,如果解决大量TIME_WAIT状态的套接字等,还包括拥塞控制算法等等。

612b4a706c89b550dacabbd889787c71.png

四、Linux系统专栏

应用程序的运行离不开对系统调用的依赖,作为一个架构师或者技术专家,那是必须了解系统调用,比如read、write背后的文件系统提供的pagecache机制,比如malloc和free背后对应的brk和mmap操作的内存管理,比如虚拟内存,虚拟内存与物理内存的映射,比如huage page对内存管理的优化,甚至是NUMA体系结构,NUMA系统结构下的性能优化等等,很多同学可能都知道epoll比起select和poll的性能要高一些,那么epoll在内核层面是如何实现的呢?能不能徒手造个轮子实现epoll呢,以此更加理解epoll。

7df0dec3dcfaad080956f55993b79bea.png

五、分布式架构专栏

随着公司业务壮大,架构也会随之改变,常用的一个架构设计方法就是分层的架构思路,除了分层还会引入微服务的设计,这些架构设计里一般都会涉及到API网关,服务动态路由,一致性,可靠性的设计,比如etcd、zk、grpc、thrift、openresty、主备切换、虚拟IP等等。

01846c6bec64cb42703609bf5c280c32.png

六、性能优化

性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,特别是腾讯这样的一线互联网公司最为注重,因此想进入腾讯,性能优化一定是要去深入学习与理解的一环,本屌在性能优化这一块虽然不能算专家,也可以自信的说是精通了(注意:自己的简历上一定不要写精通xxxx,要不然面试官会怼死你。好在本屌这一块还算自信)所有的应用程序都在操作系统上运行,那么如何优化应用程序性能呢?比如有哪些工具去查看系统性能贫瘠,比如磁盘IO,网络协议栈的优化,甚至是使用KCP协议优化网络传输。甚至是要了解硬件,比如多队列网卡,比如用户态协议栈等等。

14d6eda07382b1b967fe8584041000c2.png

想要要获取完成面试题可以私聊我关键字+【面试】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值