混子瑶瑶日记10.13

混子瑶瑶又来啦!
最近大家还有在面试吗?诶,其实瑶瑶也没什么面试了,没有再投,也拒了很多,只有几家特别想去的大厂还在面,不如一起来看看吧~

快手(程序分析)一面
自我介绍
聊项目
fuzzing的看法,项目中具体怎么做的
静态分析怎么做的
如何将动态信息和静态信息结合起来的
手撕:链接所有点的最小距离(prim算法)

一句话来形容快手的面试:千呼万唤始出来。可终于等到快手的面试啦!只知道程序分析岗跟自己的硕士研究方向相似,没想到这么相似!简直就是一模一样的!
更惊喜的是,我的面试官竟然是某知名fuzzing工具的作者!只在顶级论坛上见到的大牛,竟然是我的面试官,瑶瑶一秒变小迷妹,面试秒变大型追星现场[\星星眼]
当然,这位大牛超nice,在面试中有讨论到动态和静态分析的关系,面试官很耐心的给我讲解前沿工作的逻辑思路,简直醍醐灌顶,茅塞顿开,真的是特别宝贵的意见!瑶瑶已经认真记下啦,等回到学校后一定会改进自己的工作!
面试几分钟之后收到hr电话,约二面时间

快手(程序分析)二面
自我介绍
有没有实习
介绍项目,是和蚂蚁金服的哪个实验室合作的
怎么插桩,具体调用的哪个库,和AOP相比优势劣势是什么
反射用过吗
控制流图用的是哪个工具
相似度用什么算法计算
对于传统检测方法和神经网络检测的看法
注意力机制的优势,如何实现
反问

相比于一面的小迷妹追星现场,二面只能用惨烈来形容(哭)
所有的问题都尽全力回答了,可是看面试官的反应似乎不是很满意的样子。还问了一下导师是谁,我说了导师的名字,面试官:没听过。我:......(尴尬)
稍稍遗憾,但确实技不如人,也是特别宝贵的经历吧~

网易互娱(测开)二面

自我介绍
项目(还聊了一点神经网络相关)
操作系统:虚拟内存,死锁,同步,进程状态转换,进程通信。
计算机网络:HTTP,HTTPS
手撕:删除数组中重复元素II

原本投的杭州,结果一面之后给改了base,又重新开始面= 。=
网易面试还是一如既往的轻松愉快,面试官给人的感觉也不错
唯一担心的就是这个时间节点可能没有很多hc,一切顺其自然吧

百度(上海-测开)一面
自我介绍
软件声明周期
测试种类
测试用例设计:优惠金额计算接口
手撕:双栈实现队列,层序遍历求树深度
反问(没回答)

(background:写层序遍历求深度的时候多用了个辅助队列)
面试官:不使用辅助队列能做吗?
瑶瑶:可以只用一个队列,可以在队列里面加标志位
面试官:不使用标志位
瑶瑶:可以,但是要维护一个变量,记录当前层的剩余节点
面试官:不使用变量
瑶瑶:?
(思考良久)
瑶瑶:可以提示一下吗?
面试官:遍历完的节点出队,子节点加入队尾,保证队列中只有同层节点
瑶瑶:?  这怎么实现?
面试官:先将根节点加入,然后遍历,将它出队,将左右子节点入队
瑶瑶:这是本层节点只有一个的情况,那如果第二层呢,第二层有两个节点,遍历第一个的左右子节点,遍历的结果加不加入队尾呢?加入了就不能保证只有同层节点,不加入的话又没辅助队列,那放哪儿呢?
面试官:反正使用一个队列循环是可以做的,你下去好好学习一下吧
瑶瑶:。。。

面试官:你有什么问题吗?
瑶瑶:我想了解一下咱们这边测开的技术栈和业务
面试官:面试是统一面的,你也不一定和我一个部门(戛然而止)
瑶瑶:好的,谢谢您,我这边没有别的问题了(微笑)
over

总的来说,这次百度一面给我的体验不是很好。小姐姐好看是好看的,但是不知道是不是因为这个时间才一面有点晚了,所以会有点不耐烦。
而且对于手撕的这个题,我确实不知道不用辅助队列不用标志不用变量怎么做,所以提出疑问,面试官的回答我到现在也没明白。
不想再讨论这个问题的话,我可以自己去学习去看,但是没有必要将个人的情绪蔓延吧?
之前的瑶瑶:逆来顺受,保持微笑
现在的瑶瑶:你爱面不面:)

============================================================
陆续在等开奖啦,开了两个,已经拒了一个(因为给的实在太少了),另一个没想到给开到了预期以上,而且表示有argue的空间,而且表示愿意等我其他的offer做比较!这是什么神仙公司啊!
目前还在等其他厂开奖,稍微有一点点焦虑,但其实还好。
============================================================
快手竟然给hr面了!
5555好想去,我要给快手去卖命!
许愿hr面顺利通过呀

#秋招##面试题目##百度##快手##网易互娱#
全部评论
瑶瑶也太强了
1 回复 分享
发布于 2021-10-14 07:03
冲!!!!
点赞 回复 分享
发布于 2021-10-14 13:37
催更呜呜呜呜  想看
点赞 回复 分享
发布于 2021-10-21 14:48
瑶瑶快更新!
点赞 回复 分享
发布于 2021-10-27 21:42

相关推荐

10-12 09:28
已编辑
门头沟学院 Python
忘记录音了,很多地方想不起来,凭记忆写面经。基本纯问项目,八股全是开放性问题,测开的手撕都出的很简单自我介绍实习中学到了什么认为测开需要具备什么(技术+非技术两方面)工作中遇到的印象深的困难实习的自动化测试怎么做的数据库的索引说一下(扯远了,逮着B+树讲一大堆)索引分为哪几种主键索引和唯一索引的区别Java中常用集合项目难点项目的redis和mysql如何保证一致性,这个设计有什么问题购物车测试点设计项目的热榜redis怎么实现的sql:无不及格科目的同学的数量(想半天没想出来,最后用嵌套硬整出来了)手撕:只出现一次的数字(lc:136),用hash写半天发现语法忘了,注释掉用排序...
一笑而过2222:一、Java 中常用集合 1.  List : -  ArrayList :基于动态数组实现,随机访问元素速度快,插入和删除元素在中间位置时效率较低。适用于频繁读取操作,较少插入和删除操作的场景。 -  LinkedList :基于双向链表实现,插入和删除元素效率高,但随机访问元素速度较慢。适用于频繁插入和删除操作的场景。 2.  Set : -  HashSet :基于哈希表实现,不保证元素的顺序,元素唯一。适用于需要快速查找和存储不重复元素的场景。 -  LinkedHashSet :继承自 HashSet ,维护了一个链表来记录插入顺序,元素唯一且可按照插入顺序遍历。 -  TreeSet :基于红黑树实现,元素自动排序,可按照特定顺序遍历元素。适用于需要对元素进行排序的场景。 3.  Map : -  HashMap :基于哈希表实现,不保证元素的顺序,键值对唯一。适用于快速查找、插入和删除键值对的场景。 -  LinkedHashMap :继承自 HashMap ,维护了一个链表来记录插入顺序,可按照插入顺序遍历键值对。 -  TreeMap :基于红黑树实现,键自动排序,可按照特定顺序遍历键值对。适用于需要对键进行排序的场景。 二、项目难点 1. 性能优化:随着数据量的增加和用户访问量的增长,可能需要对系统进行性能优化,包括数据库查询优化、缓存策略调整、代码优化等。 2. 并发控制:在高并发环境下,需要处理多个用户同时访问和操作数据的情况,确保数据的一致性和完整性。例如,在购物车场景中,多个用户同时添加或删除商品时,需要防止数据冲突。 3. 安全问题:保护用户数据的安全是项目的重要难点之一。需要采取措施防止 SQL 注入、跨站脚本攻击等安全漏洞,同时确保用户密码等敏感信息的安全存储。 4. 系统集成:如果项目涉及多个系统的集成,如与第三方支付系统、物流系统等集成,可能会面临接口兼容性、数据格式转换等问题。 5. 需求变更:在项目开发过程中,需求可能会发生变化,需要及时调整设计和开发计划,确保项目按时交付。 三、项目的 Redis 和 MySQL 如何保证一致性,这个设计有什么问题 1. 保证一致性的方法: - 先写 MySQL,再写 Redis:在数据更新时,先将数据写入 MySQL,成功后再将数据写入 Redis。读取数据时,优先从 Redis 读取,如果 Redis 中没有数据,则从 MySQL 读取并写入 Redis。这种方法可以保证数据的最终一致性,但在写入 Redis 失败时可能会导致数据不一致。 - 采用事务:在一些场景下,可以使用数据库事务来保证 MySQL 和 Redis 的操作原子性。例如,在更新数据时,可以将 MySQL 和 Redis 的更新操作放在一个事务中,确保要么同时成功,要么同时失败。 - 监听数据库变更:可以使用数据库的 binlog 或者消息队列来监听数据库的变更,当数据库中的数据发生变化时,自动更新 Redis 中的数据。这种方法可以实时保证数据的一致性,但实现起来相对复杂。 2. 可能存在的问题: - 性能问题:频繁地在 MySQL 和 Redis 之间进行数据同步可能会影响系统的性能,特别是在高并发场景下。 - 数据丢失风险:如果在写入 Redis 失败时没有进行适当的处理,可能会导致数据丢失。 - 复杂性增加:为了保证一致性,需要引入额外的机制和代码,增加了系统的复杂性和维护成本。 四、购物车测试点设计 1. 功能测试: - 添加商品:验证能否成功将商品添加到购物车,添加的商品数量是否正确,重复添加同一商品是否正确处理。 - 删除商品:验证能否成功删除购物车中的商品,删除单个商品和批量删除商品是否正常。 - 修改商品数量:验证能否成功修改购物车中商品的数量,数量为 0 时是否自动删除商品。 - 计算总价:验证购物车中商品的总价计算是否正确,包括商品价格、数量、优惠等因素。 - 清空购物车:验证能否成功清空购物车。 2. 性能测试: - 响应时间:测试添加、删除、修改商品等操作的响应时间,确保在高并发情况下也能快速响应。 - 并发测试:模拟多个用户同时操作购物车,验证系统的并发处理能力。 3. 兼容性测试: - 不同浏览器:测试购物车在不同浏览器上的功能和显示是否正常。 - 不同设备:测试购物车在手机、平板、电脑等不同设备上的兼容性。 4. 安全测试: - 数据加密:验证购物车中的商品信息和用户数据是否进行了加密传输和存储。 - 权限控制:验证只有授权用户才能访问和操作自己的购物车。 五、项目的热榜 Redis 怎么实现的 1. 使用 Redis 的有序集合(Sorted Set):可以将热榜中的项目作为有序集合的元素,项目的热度值作为有序集合的分值。每次有用户访问或操作某个项目时,更新该项目的热度值,并将其重新插入到有序集合中。这样,有序集合就可以按照热度值自动排序,实现热榜的功能。 2. 定期更新:可以设置一个定时任务,定期更新热榜数据。例如,每隔一段时间(如 1 小时),重新计算每个项目的热度值,并更新到 Redis 中。 3. 缓存策略:为了提高性能,可以将热榜数据缓存到内存中,减少对数据库的访问。可以使用 Redis 的缓存机制,将热榜数据缓存一定时间,当数据发生变化时,自动更新缓存。 4. 数据持久化:为了防止数据丢失,可以将 Redis 中的热榜数据定期持久化到数据库中。这样,即使 Redis 出现故障,也可以从数据库中恢复热榜数据。
点赞 评论 收藏
分享
2 2 评论
分享
牛客网
牛客企业服务