哎,人生不易,人嘛总需要跳出舒适圈去适应新的环境。年底去试了试水温,还好,发现不是很热。面两个,拿了两个。下面是一些经验琐谈,对于整理自己的知识体系还是有好处的。
————————————————————————————————————————
x狗笔试
1.树的前中后遍历;
2.各种树的特点与应用场景;(avl/b/b+/triel);
3.布隆过滤器(原理,存在的有一定机率误判);
4.编程题: 链表反转/ 动态规划最大值;
5.数据库隔离级别,默认级别;
6.设计10亿级的数据库,每年增加1亿的数据量,用户id,性别
7.如何做到sql注入安全,防止被脱库;
8.BASE与CAP理论理解
x狗一面
1.负载均衡中间件技术选型;
2.项目架构,网关设计实现;
3.callable和runnable的区别/实现原理;
4.各种锁与实现原理;
5.redis高可用
segmentfault.com/a/119000002… 主从-哨兵,发送指令,监控主从消息
www.cnblogs.com/leeSmall/p/… 集群 gossip分布式协议
6.mysql集群高可用、如何减少主从延时(从开发角度分析/主从通过binlog复制)
x狗二面
1.jvm性能测试与调优
2.10亿表不宕机做分表处理,流量处理,冷热数据,数据快照处理;
3.50万用户直播间打赏(一个礼物有十张图片->下发更新 考虑流量、并发、降级、redis存储下发命令)
从需求、交互、设计、功能开发都需要统一考虑
4.加密算法 https原理
5.rocketmq与kafaka的区别
————————————————————————————————————————
x团一面
1.项目情况;
-1.1 难点与技术点-限流原理 (令牌桶与时间窗口 www.cnblogs.com/xuwc/p/9123…)
2.技术基础:
-2.1 java8特性-stream性能(blog.csdn.net/zhaoxj_2017…) -2.2 线程池参数与原理 (juejin.cn/post/684490…)
-2.3 设计模式
-2.4 死锁原理/线程死锁解决 (blog.csdn.net/liwenxia626…)
-2.5 mysql innodb索引原理(b+树)
-2.6索引使用注意事项 (最左匹配/回表/区分度)
-2.7 explain使用/事务级别
-2.8 kafaka/rocketmq技术选型(www.jianshu.com/p/2838890f3…)
4.团队管理
-3.1 成员成长计划 (需求分析/质量设计/问题解决/软件设计/创新能力-功能模块/系统/领域)
5.功能设计
-5.1 分布式id发号器设计 (blog.csdn.net/egworkspace…)
-5.2 千万级订单存储设计-可变字段存储(分表)
6.算法题目: 大数相加/满足值子序列个数
x团二面
1.快排取小于N的第K大数字/去除链表中重复的数字
2.Shell脚本编程 2010 20 2011 30 2012 40 的平均值/top命令
3.JVM加载机制/tomcat加载流程
4.线程池
————————————————————————————————————————
由于是受了一个前端战友-百万林总,(头条哥,拿了个字节的总包xxx)的“刺激”,一个四年半的后台开发的小厂的“老兵”在仅有的业余时间(仓促准备一周)做出的尝试,自我感觉并不是很完美,但还是在面试中碾压了部分面试官。
作为一个从嵌入式开发转行的技术愤青,常年混迹新事业部,流量和数据量都远不及大厂环境,技术深度和广度都非常有限,但对自己的技术要求从未放松过,那天细数了下自己买过的技术书籍,从java编程思想到jvm虚拟机规范、从spring框架使用到实现原理、从高性能mysql到数据引擎实现原理,从tcp协议详解到netty分布式开发,从微服务体系到架构详解......数百到千之多,以至于市面上都买不到需要的书籍。(也吐槽下,现在的技术类的作品质量越来越差的问题),感慨良多,也算是对自己的从业生涯有所总结。以下几点经验可能对大家有些帮助:
从代码质量细节做起,能不能让代码写的简单,优雅。经历过五个团队,没见过几个代码写的工整的,代码如人-折射出一个人对需求的理解,对语言的精通程度,对工具框架的应用理解。
基础一定要扎实,印象深刻的是某个前辈说的,你连个tcp协议都弄不清,还搞什么网络通信?!leetcode是个好东西,坚持刷题,能让你时刻保持一个好的编码水准,业精于勤。
要具备构建自己的知识体系的能力,把学到的东西都串起来,这个能力决定了一个技术人都额高度和远度。近来跟团队成员的沟通,他们成长受限就是缺乏这个能力。
匆忙准备,匆忙总结。回首2020,已匆匆过去,期待2021自己和大家都有更好的表现。