interview sum

先是上机做3道题,两个小时。然后拿结果打印出来跟你讨论,思路改进空间等等。

面试官提出的问题
问题1: 如果你调试过几千个并发的性能,那么现在增加到几十万并发,你打算怎么办

回  答:先是HR电话聊,问意向,薪水接受范围。HR电话里还不错,刻意加班把谈话安排在工作时间之外,赞。

先上网做题目,1个小时内完成。比较基础,不过如果平时真的是代码写的不多,会有点麻烦,稍微克服一下就好。
然后是去公司当面谈。我到了前台没人接待,打电话让HR带进去的。进去了以后放进小房间,然后居然给了一张两道题的笔试卷子,都是基础shell题目,比较简单,不过要求在纸上写code,比较发指。突然发现自己手写code完全没感觉…… 
做完以后,开始和部门负责人面谈。问的比较发散,主要是根据简历上列的知识点来提问,比如LVS的几种类型,EC2的类别,等等。这块我没答好,也说明自己平时工作没有注意细节,提醒大家除了完成工作也要注意做知识总结.

首先是3道线上的算法题,我的第三道比较有难度,然后是技术面第一轮,2人面试,会对做的题目进行改正和优化,再结合以往的工作经历进行深度的提问,这里面有的问题比较尖锐,再然后是技术面第二轮,1对1的总监面,对离职原因和工作方式等问题进行了解,最后一轮是老外面,还没去。


投简历后如果通过了预筛,先是一轮电话中文沟通,相互提些基本的不涉及技术范畴的问题,重点是问薪酬期望。然后很快得到邮件通知,预约电话面试时间。然后HR会在约定的时间打电话来进行,主要是英文面;注意在投简历后查收邮件,否则HR可能在她认为比较方便的时间打过来,聊几句就开始彪英文了。英文面虽然简单但足以刷掉不少心理准备不足的人。得到正式面试通知意味着英文面通过。正式面试开始时跟其他互联网公司一样,三道算法题90分钟,难度不算大,不熟悉机试环境的会非常吃亏,至少不知道机器判卷的侧重点(是用直白的算法保证基本测试用例通过好呢,还是冒险用优化的算法,因为你不知道机器后端用例的得分权重)以及HR的裁判尺度,当然我现在也没弄明白。机试的时间浪费在自己写排序上了,没注意到机试有一条规则是“可以include/import一些头文件或包"意味着你可以调用很多现成的东西,——知道要考察你算法思路但并不让你重复发明轮子,这一点太重要了。HR会把笔试结果给技术面试官。技术面试官先是带你过一遍笔试内容,探讨下每道题的优劣,然后问问做过的项目。技术面试官差不多是你未来的同事吧,PM以致更高的Boss可能之后会有沟通,看他们时间了;主要是技术面定夺。回去后就等消息了,一般最多一周就有结果。总之,不突出人格面试,侧重于技术面试;更准确地说,是侧重算法技巧。作为创业公司,选人非常谨慎+现实,也有些人会因为overqualified而得不到offer。


1. 做题,3道题,语言任选。难度不大。可以说很简单。不过有的人貌似遇到一些难题。
2. 中文技术面,主要讨论一下你做的题,哪里优化。
3. 老外面,谈谈薪酬啥的。

面试官提出的问题
问题1: 如何盖一个学校? 回  答:不停地问他具体需求。
面试经历:

直接上机做一个datagrid的东西..

面试官提出的问题 问题1:问了关于 优化,HTTP 请求头的里的换行符,这个很无厘头啊。。。

问题1:问题倒时不难,Linux问得比较多。但坑人的是JD写的需要Mac + Windows 平台 + 虚拟化 + Cisco网络。连Linux一个字儿都没提。
问的时候只问Linux 和较少的网络问题。
回  答:全部问Linux问题,用过好多都没想起来。太坑人了!!!
..– Write a SQL query to compute the following for: – | dt | sec_id | eod_shares_held | close_price | Xshares_value | Xshares_daily_movement | Xportfolio_value | Xportfolio_daily_movemet | – [Criterias] – Start with original daily positions (original_shares), forward fill if missing – Add the rolling sum of the trades (latest per day) (shares_delta) on to the original daily positions (original_shares) – Shares_value = eod_shares_held * daily_price – Portfolio_value = sum of shares_value across all shares (sec_id) for one day (dt) – Shares_daily_movement = shares_value - shares_value yesterday – Portfolio_daily_movement = portfolio_value - portfolio_value yesterday – Report results for 2025-06-01 to 2025-06-07 – [Notes] – Daily positions do not always exist for every day – Trades may come multiple times per day (keep latest by timestamp) – Prices always exist – Missing position values should be forward-filled – [Tables] – [1] INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_SEC – | sec_id | sec_name | SELECT * FROM INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_SEC; – [2] INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_POSITIONS – | dt | sec_id | original_shares | SELECT * FROM INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_POSITIONS; – [3] INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_TRADES – | trade_ts | dt | sec_id | shares_delta | SELECT * FROM INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_TRADES; – [4] INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_PRICES – | dt | sec_id | close_px | SELECT * FROM INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_PRICES;
12-01
要编写这个 SQL 查询,需要了解 `INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_SEC`、`INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_POSITIONS`、`INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_TRADES` 和 `INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_PRICES` 这几个表的具体结构以及计算 `eod_shares_held`、`close_price`、`Xshares_value`、`Xshares_daily_movement`、`Xportfolio_value` 和 `Xportfolio_daily_movemet` 的规则。由于没有给出这些信息,下面是一个示例查询的框架,假设表结构和计算规则的一些常见情况: ```sql -- 假设 SAMPLE_POSITIONS 表包含 position_id, security_id, shares_held 等字段 -- 假设 SAMPLE_PRICES 表包含 security_id, price_date, close_price 等字段 -- 假设 SAMPLE_TRADES 表包含 trade_id, security_id, trade_date, trade_shares 等字段 SELECT sp.security_id, sp.price_date, -- 计算 eod_shares_held,假设初始持仓加上期间交易的股份 COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0) AS eod_shares_held, sp.close_price, -- 计算 Xshares_value,假设为 eod_shares_held 乘以 close_price (COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0)) * sp.close_price AS Xshares_value, -- 计算 Xshares_daily_movement,假设为当天和前一天 Xshares_value 的差值 (COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0)) * sp.close_price - LAG((COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0)) * sp.close_price) OVER (PARTITION BY sp.security_id ORDER BY sp.price_date) AS Xshares_daily_movement, -- 计算 Xportfolio_value,假设为所有证券的 Xshares_value 之和 SUM((COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0)) * sp.close_price) OVER (PARTITION BY sp.price_date) AS Xportfolio_value, -- 计算 Xportfolio_daily_movemet,假设为当天和前一天 Xportfolio_value 的差值 SUM((COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0)) * sp.close_price) OVER (PARTITION BY sp.price_date) - LAG(SUM((COALESCE(initial_shares.shares_held, 0) + COALESCE(SUM(st.trade_shares), 0)) * sp.close_price) OVER (PARTITION BY sp.price_date)) OVER (ORDER BY sp.price_date) AS Xportfolio_daily_movemet FROM INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_PRICES sp LEFT JOIN INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_TRADES st ON sp.security_id = st.security_id AND sp.price_date = st.trade_date LEFT JOIN ( -- 获取初始持仓 SELECT security_id, shares_held FROM INTERVIEW_QNS.INTERVIEW_DATABASES.SAMPLE_POSITIONS WHERE position_date = '2025-06-01' ) initial_shares ON sp.security_id = initial_shares.security_id WHERE sp.price_date BETWEEN '2025-06-01' AND '2025-06-07' GROUP BY sp.security_id, sp.price_date, sp.close_price, initial_shares.shares_held ORDER BY sp.security_id, sp.price_date; ``` ### 代码解释: 1. **表连接**:通过 `LEFT JOIN` 将 `SAMPLE_PRICES`、`SAMPLE_TRADES` 和初始持仓表连接起来。 2. **计算 `eod_shares_held`**:初始持仓加上期间交易的股份。 3. **计算 `Xshares_value`**:`eod_shares_held` 乘以 `close_price`。 4. **计算 `Xshares_daily_movement`**:使用 `LAG` 函数计算当天和前一天 `Xshares_value` 的差值。 5. **计算 `Xportfolio_value`**:使用 `SUM` 和 `OVER` 子句计算所有证券的 `Xshares_value` 之和。 6. **计算 `Xportfolio_daily_movemet`**:使用 `LAG` 函数计算当天和前一天 `Xportfolio_value` 的差值。 ### 注意事项: - 上述代码是基于假设的表结构和计算规则编写的,实际使用时需要根据真实的表结构和计算规则进行调整。 - 确保数据库支持 `LAG` 函数,不同的数据库可能有不同的语法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值