鹅 wxg timeline + 面经

客户端 VX-SPH 捞的,0实习go选手,没有c++/客户端技术栈,八股基本啃老本..
timeline:
9.13-14-19 一二三面 一周后面委会
10.10 hr面
10.21 oc

一面 80min 基础拷打 两个middle手撕,lc原题,然后go 底层拷打 GMP/内存管理  然后是计网os基础八股 然后聊到大模型 有相关知识了解(面试官是做这方面的) 然后聊了下AI常见的优化技术 包括lora之类的剪枝微调这些 transformer一些简单的原理 然后问了下我的大模型方面经验(实验室相关的项目;最后结束前对我表示说肯定 告诉我已过了

二面 150min 全方位拷打 科研项目论文 网络八股 各种底层实现解释最汗流浃背的一集 
手撕一个c++底层函数 类似memxxx的(大概知道思路,运行不了,不会语法)
easy的算法(可以用其他语言)字符串数字处理相关的,O(n) 实现后 然后让优化,找数学规律,提示了两三次找到规律变O(1) 
------------

网络相关,TCP/UDP 原理;你怎么用UDP 什么场景用 为什么用; UDP怎么优化
os相关,用户态内核态; 什么时候和场景会切换; 做切换linux内核在做什么 变和不变的东西(段/页上的) os怎么知道从哪里得到内核栈 (tss段)  怎么得到的 (寄存器操作)
聊到锁;乐观锁悲观锁;无锁操作;无锁队列;CAS原理 大概知道是CPU总线#LOCK相关引脚保障的 
聊到内存 怎么排查C++的内存泄漏;其他语言怎么保障内存不泄漏;  然后gc相关 Java c++ Go都一起问了, 问理解不同语言对于这个怎么做,方案差异化,假如错误的引用关系怎么保障正确回收之类的(没答好,golang实在不知道是啥,面试官当场告诉我他一搜就搜到了,但是没告诉我是啥.. 后续问了下听说是类似软引用之类的)
中间有让说一些汇编原理 比如调用栈原理,寄存器的操作 回答的很混乱(几年前学的实在忘的差不多,就记得ebp esp几个寄存器了)
项目拷打 拷打了两个 科研的和系统平台 这个就是细节+思路

三面 85min 
项目(科研相关)拷打,比较细,比较多 表示了一些方案的肯定 并且说有的思路很好 微信要做一样的事儿估计也会从这种角度切入考虑实现
看二面试官面评问回答不好的汇编问题下来有再看吗(看了,重新解释),
开放性问题,设计微信的海量数据存储系统,基于磁盘 。
业务交流
无手撕
结束前直接说我过了,然后告知我会再做一轮笔(实际没有),还有一轮技术面

面委会 65min
上来手撕 2个 lc mid算法 印象中比较简单 一个有序链表合并 一个合并区间
然后c语言填空 给一堆变量 64位机 问sizeof的输出大小 梦回大一.. 应该都做对了 然后要解释 并且解释也还会追问比如数组开大小开多少传参的影响 退化行为之类的 但是真不太会c++太底层的东西 后续也没硬追问了

纯拷打科研项目 说不切实际 被频繁皱眉否定(和三面看待角度完全不一样了啊喂!)

项目用到RPC 用的什么RPC 不同rpc有啥关系 gRPC原理 底层实现 stub protobuf之类的(追问很多
项目里为什么不用进程通信 进程间通信有哪些 哪个效率最高 共享内存的实现原理是什么(只知道共享内存段 操作映射对应区域)后面说os这些细节不能有忘 我本科没好好学
其它都是细节上的实现了 项目的算法 架构等..

反问业务  问微信现在客户端发展方向(跨端应用 包括鸿蒙) 有什么技术难点:客户端没啥难的 技术栈也没后端深 你想搞技术那这就不太适合 那你硬要说做深入了 难了 那肯定还是比后端难(很难绷 前面面试官都说我们这边技术丰富 啥都有 

以为面委会否定了我半天要挂了 结果过了个周末后进HR面

HR面
对微信产品的理解; 和qq对比; 岗位接受度;个人性格 优劣 项目怎么合作分公等常规问题

oc: hr面后10多天和很多wxg泡池子的一起oc了
全部评论
巨佬;问一下啥技术栈呀?怎么java go全都问呢?简历准备的啥项目呀?
1 回复 分享
发布于 2024-10-26 16:18 安徽
技术栈学的什么语言是不是很重要😢
点赞 回复 分享
发布于 02-07 12:55 江苏
佬什么bg
点赞 回复 分享
发布于 2024-12-14 16:15 广东
150分钟?
点赞 回复 分享
发布于 2024-10-28 14:27 江苏
点赞 回复 分享
发布于 2024-10-22 22:42 广东

相关推荐

07-28 15:15
门头沟学院 Java
面试八股环节还好,但是我是力扣战士,面试官让在编译器上写代码类都不会怎么写了,两个算法,字母异位词和策略模式,只写了方法,力扣战士凉透了,希望大家平时还是要在编译器上做题策略模式等一些设计模式,希望大家也进行默写,别像我一样会背不会写字母异位词import java.util.*;public class Main {public static List<List<String>> groupAnagrams(String[] strs) {// 用于存储分组结果的映射,键为排序后的字符串,值为对应的字符串列表Map<String, List<String>> anagramGroups = new HashMap<>();for (String s : strs) {// 将字符串转换为字符数组并排序char[] chars = s.toCharArray();Arrays.sort(chars);String sortedStr = new String(chars);// 如果映射中不存在该键,则创建一个新的列表anagramGroups.computeIfAbsent(sortedStr, k -> new ArrayList<>());// 将当前字符串添加到对应的列表中anagramGroups.get(sortedStr).add(s);}// 返回映射中的所有值(即所有分组)return new ArrayList<>(anagramGroups.values());}public static void main(String[] args) {// 示例输入String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};// 调用方法获取分组结果List<List<String>> result = groupAnagrams(strs);// 输出结果for (List<String> group : result) {System.out.println(group);}}}策略模式// 支付策略接口interface PaymentStrategy {void pay(double amount);}// 微信支付实现class WechatPay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用微信支付:" + amount + "元");// 微信支付具体实现逻辑}}// 支付宝实现class Alipay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用支付宝支付:" + amount + "元");// 支付宝支付具体实现逻辑}}// 银行卡支付实现class BankCardPay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用银行卡支付:" + amount + "元");// 银行卡支付具体实现逻辑}}// 支付上下文(策略持有者)class PaymentContext {private PaymentStrategy strategy;public PaymentContext(PaymentStrategy strategy) {this.strategy = strategy;}public void setStrategy(PaymentStrategy strategy) {this.strategy = strategy;}public void executePayment(double amount) {strategy.pay(amount);}}// 主类和测试代码public class Main {public static void main(String[] args) {// 创建支付上下文PaymentContext context = new PaymentContext(new WechatPay());// 使用微信支付context.executePayment(100.0);// 切换为支付宝支付context.setStrategy(new Alipay());context.executePayment(200.0);// 切换为银行卡支付context.setStrategy(new BankCardPay());context.executePayment(300.0);}}
查看2道真题和解析
点赞 评论 收藏
分享
评论
11
35
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务