月薪2万,在大厂干了10年被裁了,拿了30万赔偿金,五年后HR联系我,问我愿不愿意回去,但要归还30万,我该回去吗?
刚看到个贴子,说的是:月薪2万,在大厂干了10年被裁,拿了30万赔偿。五年后HR又来问,想回去可以,但钱得退回去,楼主纠结要不要回。
帖子内容其实很典型,大厂兜兜转转,像分手多年又被前任联系。网友回帖我看了看,有人说“回,稳定最重要”,也有人直接劝“别回,吃相太难看”。
怎么说呢,我更偏向后者。赔偿是当年合同白纸黑字给的,不是借的,还让人退钱再回去,本质就是想低成本买回熟练工。
从我的角度看,这事不是念不念旧情,而是值不值。五年过去,岗位、话语权、发展空间都不一样了,很可能是“原地返厂”,还自降筹码。
总的来说,职场别被情怀绑架。公司算的是账,个人更要算清前途账,稳住自己,比回头更重要。
面试题:平均工资:部门与公司比较
昨天晚上快十一点,我还在公司楼下啃汉堡,HR 群里有人发了一句:”东哥,你帮我看下各部门平均工资跟公司整体比怎么样?是不是技术搬砖的又被压价了?“ 我一听这话就来劲了,这不就是算法+八卦的完美结合嘛 😂,顺手就拿这事当题目讲给你们听。 、 简单说就是: 一家公司一堆员工,每个人有三个信息:部门、名字、工资。现在要算——
公司整体的平均工资 每个部门自己的平均工资 然后判断:这个部门的平均工资,是高于公司整体,还是低于,还是差不多
最后可以给出一个结果,比如:
“技术部:高于公司平均” “市场部:低于公司平均” “行政部:等于公司平均(这一般不太可能…浮点数你懂的)”
我之前写 Postgres 跟 MySQL 压测的时候,也干过类似的分组统计,只不过那回是在数据库里算平均,这次咱在 Python 里算而已
别一上来就想复杂的,脑子里先想一圈:
想要“公司平均工资”,是不是得把所有人的工资加起来、再除以人数? 想要“部门平均工资”,那就是每个部门单独加工资、单独数人数、再相除。 比较的时候,就拿 部门平均跟公司平均比较一下,大了就是 high,小了就是 low,差不多就当 equal。
关键只是一件事:一边遍历员工,一边把这些统计信息先攒起来。 就跟点外卖一样,你不会每来一单就结一次账,你先把所有菜加进购物车,最后一算总价,对吧。
Python 大概怎么写
直接上个可跑的小例子,你们自己改字段名就能用:
from typing import List, Dict, Any
defcompare_dept_salary(employees: List[Dict[str, Any]]) -> Dict[str, str]:
"""
employees 结构类似:
{
"name": "张三",
"dept": "技术部",
"salary": 15000
}
"""
ifnot employees:
return {}
# 1. 公司总和 & 人数
total_salary = 0
total_count = 0
# 2. 部门维度的 sum & count
dept_sum = {}
dept_count = {}
for emp in employees:
salary = float(emp["salary"])
dept = emp["dept"]
total_salary += salary
total_count += 1
dept_sum[dept] = dept_sum.get(dept, 0.0) + salary
dept_count[dept] = dept_count.get(dept, 0) + 1
company_avg = total_salary / total_count
# 3. 对比部门平均和公司平均
result: Dict[str, str] = {}
eps = 1e-6# 浮点数误差判断
for dept in dept_sum:
avg = dept_sum[dept] / dept_count[dept]
if avg - company_avg > eps:
result[dept] = "HIGHER_THAN_COMPANY"
elif company_avg - avg > eps:
result[dept] = "LOWER_THAN_COMPANY"
else:
result[dept] = "EQUAL_TO_COMPANY"
return result
你看,整件事就干了三件小事:
一边遍历,一边统计公司总和、部门总和 统一算一个公司平均 再给每个部门算平均,挨个比较
时间复杂度就是 O(n),走一遍员工列表就搞定了,不会有那种一会儿 Redis 一会儿 MQ 那种“各种默认配置坑你一次”的情况
这个题表面看是“平均工资”,实际上考的都是老三件:
会不会按 key 分组做统计(部门就是那个 key) 会不会一边遍历一边累计(不要无脑多重循环) 会不会处理一点点边界情况(空列表、小数精度)
你要是再骚一点,用 collections.defaultdict 写,会更短;或者用 pandas 一行 groupby 就完事儿。不过面试的时候,老老实实用 dict 写,思路清晰一点,更安全。
行,我先去泡个咖啡,等会儿要给我们组的小李讲这个题,他刚被 HR 问完工资的问题,整个人都不好了 😅
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB