@Dmaxiya
2022-08-03T23:23:34.000000Z
字数 10206
阅读 493
工作
鉴于很久没有看《数据库系统概念》了,之前的进度 8.3 章较大可能已经遗忘上下文,所以下周从第 8 章开始看
由于已经有一定 SQL 语法基础,所以在下周的学习计划中加入刷 leetcode 数据库题目项
下周大概要做的事情:调整睡眠时间,保持运动,看《数据库系统概念》,刷 leetcode 数据库题目,应付工作琐事
时间 | 事件 |
---|---|
0:00 ~ 8:00 | 睡觉 |
8:00 ~ 8:30 | 起床刷牙洗脸剃胡须,预留 30min buffer |
9:00 | 到公司就绪,开始学习,调整状态 |
9:15 | 进入学习状态 |
10:00 ~ 12:00 | 学习 + 工作 |
12:00 ~ 14:00 | 吃饭午休 |
14:00 ~ 18:50 | 学习 + 工作 |
18:50 ~ 19:50 | 吃饭,休息 |
19:50 ~ 21:00 | 刷两道 leetcode 数据库题 |
21:00 ~ 22:00 | 跑步 |
22:00 ~ 24:00 | 回家,洗澡,休息,准备睡觉 |
以上所有安排,在遇到线上紧急 oncall 情况下都可取消
学习 + 工作时长:8h,预计 2/3(5h 20min)的学习时间,大约可阅读 42 页 / 天
日期 | 进度 |
---|---|
周一 | 8.1 ~ 9.4 |
周二 | 9.5 ~ 10 章完 |
周三 | 11.1 ~ 12.4 |
周四 | 12.5 ~ 13 章完 |
周五 | 14.1 ~ 15 章完 |
预估可能是理想情况,整体进度:下周完成第 15 章,周六作为 buffer,赶不上的进度周六补齐,多余时间可自行安排,休息或继续学习,周日按十步学习法开始制定学习计划
每天同步学习进度与第二天安排,学习速度参考当天完成情况进行调整。
整体按原计划执行完成
《数据库系统概念》9.4 章节阅读
刷两道 leetcode 数据库题,回到新手村,变成不看答案做不来的情况
平均阅读速度约为 4 页 / 25min,本来 18:30~21:00 时间安排为与同事约饭,由于下雨暂时取消,本来可以阅读更多内容,但在群里聊 high 了,且已经达到今日目标,所以倒也算正常分配了时间
隐患:这周内同事一定会再组织一次聚餐,今天没有把进度补上,等聚餐那天进度会有延迟
日期 | 进度 |
---|---|
周一 | 8.1 ~ 9.4 |
周二 | 9.5 ~ 11.2 |
周三 | 11.3 ~ 12.4 |
周四 | 12.5 ~ 13 章完 |
周五 | 14.1 ~ 15 章完 |
收到郭老师的邀请,改变计划,今天内看完《数据库系统概念》第九章,刷两道 leetcode 数据库题,就开始准备拼多多简历。
郭老师建议:先拿个offer,然后可以商量,晚一些来入职。然后再去看其它的选择——建议合理。
准备简历为最高优先级,待准备完简历,再安排调整后续阅读、面试准备计划。
未按原定计划完成。
完成《数据库系统概念》第 9 章阅读,整体感觉实用性极低,可以整章跳过。
完成 leetcode 两道数据库题。
刷题和昨天一样糟,今天碰到的主要问题:涉及到自己完全不会用的 mysql 函数,需要对 mysql 语法提供的内置函数有较为全面的了解之后再刷题,效果会比较好,否则还是只能抄答案。
4 小时读完 19 页,即使按 阅读时间阅读速度也是 7.125 页 / 小时,中间被打扰次数较多且时间长,效果非常不理想。暂时没有好的优化方式,需要一些建议。
简历只完成草稿版本,收集了部分建议,未根据建议完成修改。
未输出新的学习计划
跑步任务完成:4 公里
根据建议完成简历修改,发送给郭老师
完成新的学习计划制定
跑步
简历完成,已发送给郭老师,已与 hr 沟通,商量 7.20 再确定面试时间
仍未输出新的学习计划
完成离职前所有准备工作
晚上去约饭了,跑步未完成
完成离职流程
制定新学习计划(必完成,不完成不睡觉)
根据天气情况适量运动
重点参考:CS-Notes
时间 | 事件 |
---|---|
0:00 ~ 8:00 | 睡觉 |
8:00 ~ 9:00 | 起床刷牙洗脸吃早饭 |
9:00 ~ 12:00 | 学习 |
12:00 ~ 14:00 | 吃饭午休 |
14:00 ~ 18:00 | 学习 |
18:00 ~ 19:00 | 晚饭 |
19:00 ~ 21:00 | 学习 |
21:00 ~ 23:00 | 用 java 刷 5 道 easy ~ normal 算法题,范围:leetcode hot100 |
23:00 ~ 24:00 | 准备睡觉,休息,复习,自由安排 |
日期 | 内容 |
---|---|
7 月 9 日(周六) | 简历中三个项目的介绍准备 Java 基础全部内容 投 5 家简历 |
7 月 10 日(周日) | Java 剩余所有内容 投 5 家简历 |
7 月 11 日(周一) | 数据库所有内容 |
7 月 12 日(周二) | 计算机网络、Socket、操作系统、Linux |
7 月 13 日(周三) | 系统设计、面向对象思想、设计模式 进行一次模拟面试 |
7 月 14 日(周四) | 开始正式面试,之前投的简历面试时间都约在 7.14~7.19 之间 spring 全家桶 整理面经、查缺补漏 |
7 月 15 日(周五) | 集中安排面试 整理面经、查缺补漏 |
7 月 16 日(周六) | 根据面经,查缺补漏 进行一次模拟面试 |
7 月 17 日(周日) | 根据面经,查缺补漏 进行一次模拟面试 |
7 月 18 日(周一) | 集中安排面试 整理面经、查缺补漏 |
7 月 19 日(周二) | 集中安排面试 整理面经,查缺补漏 |
7 月 20 日(周三) | 联系拼多多 hr,约面试时间 |
完成简历项目介绍准备
Java 基础全部内容第一次背诵完成,后续可能遗忘,需要复习巩固,但任务比较重,可能没有时间,放到整理面经、查缺补漏时进行
完成 13 家大致符合要求的 java 岗位简历投递
java 完成 leetcode hot100 5 道算法题
完成背诵 Java 剩余所有内容
投 10 家满足条件的 java 岗简历(牛客网已投完,需要找其他平台投递)
java 刷 leetcode 5 道 hot100 算法题
完成 Java 所有内容学习,GC 部分不够熟练,还需要巩固,在后面查缺补漏中巩固
在猎聘上投了 10 家 Java 岗公司,目前只有牛客网的 2 家公司通过简历(用友与华为)
java 刷 leetcode 5 道 hot100 算法题完成
学习时存在的问题:由于没有经历过面试,对于部分知识点不清楚需要掌握到什么程度(需要理解、需要背诵、还是需要看名词知道用法),所以学起来比较痛苦。
解决办法:先看一遍,把所有内容看懂、理解,不背诵,然后开始面试,在面试中碰到发现需要背诵的内容,再进行背诵。
学习数据库所有内容
关注简历进展,跟 hr 沟通,确定笔试、面试时间
java 刷 leetcode 5 道 hot100 算法题
完成华为机试题
完成数据库 SQL 语法与 SQL 练习,数据库专题其他部分学习未完成
java 刷 leetcode 5 道 hot100 算法题未完成
华为那边不知道操作有什么问题,未收到笔试通知,已与 hr 沟通,第二天重发
总共投递 23 家
3 家公司通过简历初筛,其中 1 家约了笔试
4 家公司简历被查看,无答复
简历投递完成后第一个工作日,与猎头、hr 沟通花了比较长时间,渴望立即参加一场面试,没有耐心继续学习,学习效率低下,未完成预定学习任务。
前同事参加了拼多多面试,面试内容无八股,只问了项目(自己选择一个项目介绍)与一道编程题,难度比较低,面试表现主动发挥空间大,根据郭老师建议,主要精力投入在项目介绍上,为重点介绍项目画两张外部视角与内部视角的架构图,计划晚上完成,但仍未完成。
高优准备项目介绍,自己试讲一遍,争取讲够 30 分钟
多出来的时间学习数据库部分剩余内容
完成华为笔试,通过,待后续沟通确定面试时间
比较浮躁,没有复习面试内容,也没完成项目介绍架构图
完成 leetcode 5 道 java 算法题
完成重点介绍项目架构图
完成华为性格测评,待约面试
SQL 面试内容复习无进展
总共投递 23 家
2 家公司通过简历初筛,其中 1 家待约面试
5 家公司简历被查看,无答复
2 家简历不通过
进行一次项目介绍试讲
完成数据库面试内容复习
完成数据库部分剩余内容学习
完成原定计划 7 月 12 日学习内容(详见整体计划安排)
Java 实现 LRU,LFU
Java 刷 5 道 leetcode hot100 完成
总共投递 23 家
2 家公司通过简历初筛,其中 1 家约于 7.18 下午 14:30 面试
7 家公司简历被查看,无答复
2 家简历不通过计划:在拼多多面试之前可能只有一次华为面试机会,其他公司即使有面试也不准备参加了,开始着手准备正式有意向的公司面试
了解到拼多多一面题型为一道编程题一道自选项目介绍,二面题型为一道编程题两道自选项目介绍,所以至少准备两个项目的架构图,保险起见准备三个项目架构图都进行一次准备
由于了解到拼多多的面试题型,对八股文的准备失去动力,学习目标为了解,不需要背诵,以兴趣学习为主
完成整体计划安排所有八股文学习
进行一次项目介绍,耗时约 30~45 分钟
完成整体计划安排所有八股文学习
完成一次项目介绍
项目介绍整体不太顺利,没有完整介绍完项目,中间不断被打断(可能是真实的面试情况),面试官经常在他想要了解的地方打断并开始提问,不得不先跳过一部分内容然后开始解答。
项目介绍时需要注意掌握主动权,不然容易被带节奏,导致项目讲得七零八落。
需要记一些项目收益相关的数据,面试官有极大概率提问到。
被问到几道八股文题目,几乎都不会,必挂。
复习所有八股内容、面试常见问题,以及项目内容准备
进行华为一面
完成所有八股内容复习
完成华为一面,面试通过,准备二面
华为面试出乎意料一道八股文都没问,所有准备的问题中只问到了一个自我介绍,然后面试官从自我介绍切入,问了开放平台 open api 是如何设计的,后面就这个内容继续拓展延伸,问了些其他问题,只要没问八股感觉就不错,面试开始前还非常紧张地复习八股内容,发现不问八股之后就轻松了很多,但没有问到我准备的项目,出乎意料,没办法为拼多多面试做准备。
问:如何设计 open api,或者设计 open api 需要注意什么
答:提供平台(网关)供业务方接入;接口授权、字段授权(应用的权限授予);设计 restful 风格的 open api;接口限频;open_id 隔离;OAuth token 授权。问:对于一个新的 open api,如何配置限频
答:参考实际使用场景,查看对应下游接口日常 QPS 确定限频策略,接口上线后动态调整,针对大客户提供更高的频限配置白名单。问:开发者反馈 open api 超时严重,但看服务监控各项异常,可以从哪些方面进行排查?
答:查看网关与实际后端服务 qps 与接口耗时监控,看是否符合实际情况问:go 语言引入各种依赖包之后,是如何编译打包成二进制文件的?
答:不知道问:使用过哪些开源工具?
答:kite,gorm,gin问:go 项目如何排查线上内存问题?有什么工具?
答:不知道编程题:计算二叉树任意两个节点之间的距离,节点可能不在树上
答:一开始没有想到最优解,只有一次询问但想到了 LCA,显然是杀鸡用牛刀了,没想好思路马上开始写,导致中间觉得思路不对删了两次代码,最后十几分钟写完,应该先冷静想好思路再开始写,最终没跑用例数据,只是顺着代码介绍了一下思路,面试结束后试了下用例发现还要改两行代码才能正确执行程序。
把今天面试题中不会的问题,都在网上搜一下,看有没有可参考的答案
继续准备新项目介绍,给另外两个项目分别画架构图
学习面试中不会的问题:完成
给新项目画架构图:未开始
华为约 7.21 二面
拼多多约 7.22 一面
使用 pprof 排查一次内存问题
完成另外至少一个项目的架构图
学习 pprof 排查内存问题方法
完成三个项目的完整试讲
通过拼多多一面,华为二面与 hr 面
另外两个项目的架构图未开始
项目介绍与提问
进行约 15 分钟的运维大盘项目介绍,仅介绍项目难点,未介绍项目整体结构,符合面试官与自己的预期,但之前准备的项目架构图没有派上用场,只是发给面试官看了一下。
问:这种项目公司应已有现成的基础设施可以使用,为什么没有采用?如果已有,是否在重复造轮子?如果没有,为什么没有推动做这方面的基础建设?
答:最初进行了一波技术选型,确定接入 Slardar 平台实现我们的业务,后来发现 Slardar 现有能力无法完全支持我们的业务,混合存储存在性能问题,而推动 Slardar 支持更多功能依赖 Slardar 排期,不满足我们的需求上线排期,所以我们自己接了独立的数据流进行清洗,自行处理数据。问:运维大盘的查询规则是否比较灵活?clickhouse 能否支持我们的所有查询规则?用户能否自定义报警规则?
答:是,支持,不能自定义。问:上报数据的量级是多大?上报数据的 QPS 有多少?为什么需要做这么多优化?
答:每天产生 1.5T 的数据;QPS 未知,没有关注过上报 QPS;需求完成后看实际查询效果发现查询耗时较长,因此需要优化。
问:能否估算出 QPS?
答:猜测大概是几百到一千的数据。(面试结束后估算,发现 QPS 大概有 1.7 万)
问:那 QPS 也不高啊,怎么会产生这么大量级的数据?
答:因为没有关注过这块数据,所以可能前面对 QPS 的估算有不准确的地方
(这一整段的回答感觉表现比较差)问:这个项目,后续随着业务方接入的增多,还有哪些优化空间?
答:支持自定义告警规则,建立物化视图,clickhouse 表支持定时数据过期清空,其他的没想到了,这个项目 2020 年上线后就没有人力投入,主要是处于维护状态。
(回答得比较拉跨)
编程题
题目:最长有效括号
刷过这题,刷题时自己想了个两个 for 的做法,写过了就没看答案了,因为感觉面试表现不太好,影响写代码发挥,写得不顺,比平时慢,好在过了所有 case。
提示可以只用一个 for 完成这题,临时想动态规划做法,心态比较崩差点想放弃或者要提示,最后思考加写完第一版代码大概花了十几分钟,所有用例都没通过,思考后再修改一下,代码通过,然后讲思路。
整体感觉编程题也没有表现出自己相较于别人突出的优势。
向面试官提问
问:面试表现如何,是否有待改进的地方?
答:编程题不错,思维比较灵活,能想出另一种解法(但没提项目介绍部分表现得好不好)
建议:不要问面试表现,要关心这个部门做什么方向,有哪些业务,能学到什么,有哪些发展。
项目介绍与提问
背景:面试官职级比较高,写过 C / Go / Java,写了一段时间 Go 之后改成 C 了,已经很久没有写过 Java,且也没有准备 Java 面试题,都是现想的题目拿来问。
问:现在主要做的应用管理,是什么样的业务?有没有什么技术难点?
答:企业的应用管理员对应用的审核、安装、使用配置、管理操作的业务。主要的复杂度在于业务逻辑的复杂,各种业务逻辑混合交叉。最后还是挑了一个写扩散改为读模型优化进行简单介绍。问:是否了解 Java 的内存回收机制?
答:了解,背了一遍八股。
问:是否了解锁?
答:了解,背了一遍八股。
问:是否知道如何通过代码提高服务的吞吐?
答:1. 简单背了一下 NOI 的八股;2. 使用多线程或者协程;其他没想出来,面试官提示了一个二级缓存,我补充了下可以减少响应时长,增大吞吐。问:Java 对数据库的交互是否使用过?是否用 Java 写过前端?
答:这两个问题都不会,面试官也没有继续追问。在提问的间隙面试官都在跟我闲聊,通过闲聊过渡问题,比如他说他很久没写过 Java 了,Java 的开发速度还是很快的,之前写过一段时间 Go 语言,后来又改成写 C 了,我问为啥……(真的完全是闲聊,氛围很轻松)
编程题
题目:合并区间
问大概需要多长时间,我说 10~15 分钟,然后 10 分钟内写完,感觉表现比较好,写完代码测试一遍过,就是后面解释思路的时候举错了一个样例。
问:物理学专业为什么后面从事计算机?
答:阴差阳错,兴趣导向。简单介绍了一下怎么接触计算机以及参加比赛的内容。问:ACM 比赛的队伍是固定的吗?
答:最开始不是,后来是,并简单介绍了一下组合选择的规则(这里可能是想问关于团队分工合作相关的问题,没有回答到点上)问:为什么选择跳槽?现在是离职状态?为什么离职?
答:已经对开放平台业务结构比较了解,做业务不能获得成长;武汉组织架构比较动荡,武汉一直有人在离开,没有 hc 继续招人,资源倾斜到北京,可能不利于以后发展。问:简单介绍了一下 OD 不是外包,一年后绩效拿到 A 并且能通过考试可以转为正式员工,且已经有个别 OD 转正成功(个位数),问对 OD 的看法。
答:当然更希望能直接成为正式员工,如果没有正式员工 hc 的话,也能接受 OD。问:总包多少?薪资预期多少?
答:简单计算了一下,总包约 49.5w,如果是到深圳的话期望能有 30% 的涨幅。(这里扯了比较久总包的计算问题)问:是否紧急需要 offer?聊到后续面试流程可能还比较长之类云云。
答:不紧急
(对最后这个问题的回答比较担心,不知道是否是因为我的预期薪资比较高,导致他们可能不会考虑发 offer,我回答不紧急,最后是否可能进入备胎池或者被晾着没有后续了,之前还说尽快安排主管面,最后又说后续面试流程比较长,前后不一致,不清楚原因,比较担心,我现在主要的目的是拿到确定的 offer,然后和拼多多 argue,如果没 offer 发下来或者一直被拖着,对我不利,所以我实际上对 offer 的需求是紧急的)
雷帅已经进入拼多多谈薪阶段,郭老师给了一个建议薪资,觉得拼多多绝对能拿出这个价,但 hr 建议雷帅多拿几个 offer 再谈谈,可能是想让雷帅降低薪资预期(因为其他公司不会给拼多多那么高)。
我这边先离职再找工作,对谈薪非常不利,现在的弥补策略是先拿几个确定的 offer,或者有几家公司能进入面试阶段,再跟拼多多谈薪,才能有一些 argue 的资本,目前有进展的只有华为 OD,看起来不太有竞争力,需要更多 offer。
后续计划:开始正式投递简历,向有意向的公司投递,阿里、腾讯、美团已经没有 hc,目前可投递有 hc 的主要有米哈游、豪威科技(这家是猎头推荐的初创公司,说是比较有潜力,能开比较高的薪资),之前的小红书简历已被刷,这两家公司的面试需要尽快提上日程。
放一天假,去植物园玩。
进行一下自我介绍,聊了一下主要做的业务内容,整体根据简历内容进行提问,由于华为这边主要做的是底层存储相关业务,所以面试官主要问数据库与 redis 相关内容,几乎所有技术上的内容都没有回答上来……
问:你在工作过程中有使用过 redis 是吧?有在使用过程中中断 redis 执行过程,先做某些事情,再恢复执行吗?
答:没用过。问:知道数据库 redo 和 undo 的作用吗?
答:undo 主要用于回滚,或者将数据库恢复到某一时刻的状态,redo 的用处不清楚。问:MVCC 了解吗?
答:不了解最后面试官让我提问:
深圳华为做的事情(主要做数据库底层存储的,对 C / C++ 的需求比较大),我表示比较有意向做 C / C++ 内容
华为的上班时间安排(9:00~21:00,每周三活动日、周五 17:30 下班,每个月月末最后一周周六加班一天)
OD 与正式员工工作内容完全相同,也在一起工作,以及 OD 的转正机制(工作满一年,绩效为前 30% A 且通过考试),目前有 3~4 人成功转正。
去宁乡。
- 学习英语口语(暂定每天一小时,内容:扇贝口语打卡、TED 英语演讲听力)
- 刷算法题(暂定每天一小时,内容:LintCode 打卡)
- 写完《大学》(预计耗时 7 天)
- 完成 ArcGIS 脚本开发(预计 2 天)
- 学习:
a. 韩顺平 零基础30天学会Java (预计耗时 11 天)
b. Java网络多线程专题 - TCP UDP Socket编程 多线程 并发处理(预计耗时 4 天)- 搬家(预期耗时 3 天)