各大厂薪资职级对标来啦,你在哪个档?
刚刷到个贴子,说现在各大厂的薪资和职级对标出来了,程序员们可以对照看看自己在什么水平。说实话,这种“薪资对标表”每年都能刷一波热度,大家总想知道自己值多少钱,心里也不免有点小激动。
作为一个资深程序员,我觉得这事吧,看到别人年包几十万上百万,难免心动,但其实各厂的档位背后,拼的不只是技术,还有资源、项目和个人“能见度”。网友们有人开始自嘲“原来我连中位数都没到”,也有人感慨“怎么同一个P级差这么多”,但其实每家标准不一样,盯着表看容易焦虑。
说到底,程序员这行,薪资只是个结果,核心还是提升自己的“可替代性”。有一技之长,不怕没好工作。工资表是别人的,成长和性价比才是自己的。大家共勉!【备注:文末可领最新资料】
面试题:分别排序两列
如果有两列数据,咋能最快把它们分别排好序?不是合起来排序,就是每一列单独排啊。有点像,家里那种...袜子和内裤,分开叠,一起整齐,但又互不影响。对,今天就随便聊聊这事。
其实啊,这种需求说简单也简单,说不明白也能绕晕人。我记得有一次,周末在公司楼下喝咖啡,隔壁桌两个后端还争,啥叫“分别排序”,一个非说得把所有数据按行排,另一个说分开来。最后还是我憋不住插嘴,说你们是要像excel那种点下“排序”,A列一套,B列一套,各自独立——对吧,这才算明白了。
说点实际的,咱用python举个例子哈。就比如,你有两个列表,list_a和list_b,内容都乱七八糟的。你要做的,其实就是:
list_a = [4, 2, 7, 1]
list_b = [9, 5, 3, 8]
# 分别排序
sorted_a = sorted(list_a)
sorted_b = sorted(list_b)
这里我就直接用的内置sorted,你要是非得想自己手写冒泡啥的...那也是可以,不过真没必要,毕竟我们都在讲究效率,对吧。很多同学喜欢直接用sort方法也行,不过sort是原地排序,sorted是返回新列表,这个区别一定要记住。搞错了有时候会有点懵。
不过你别觉得就这么点内容就结束了,事情啊总是没那么简单。比如有小伙伴就问了:“如果是二维数组,咋整?”我就遇到过这种,早上刚到公司,桌上那杯还没喝的速溶咖啡,坐下没两分钟,测试就发需求,说要对二维数据的每一列分别排下序,还非得说不能用pandas——我直接懵了。
但其实呢,二维数组分别排序,核心还是“提取出每一列单独处理”,就像分拣快递。最普通的做法,来个for循环,抽出列,排完再塞回去。比如说:
data = [
[7, 4, 2],
[1, 5, 8],
[3, 9, 6]
]
# 每一列分别排序
cols = list(zip(*data))
sorted_cols = [sorted(list(col)) for col in cols]
# 再转回来
sorted_data = list(zip(*sorted_cols))
这个zip()用起来是真的舒服,一下子列就全抽出来了。排序完你再zip()回来,二维结构还保持得很完整。有人会问为啥不是每行排?别闹啦,题目是“分别排序两列”...就是每一列!
其实生活里你会发现,很多表格、数据的处理,都是这种模式。比如数据库查出来的数据,报表导出,你都得做类似的列级别操作。我就有一次在食堂打饭的时候,隔壁前端跟我说他们要做表格排序,还想复杂点。实际上不就是后端把每列排好前端显示嘛...
当然,有人要上pandas,那更省事:
import pandas as pd
df = pd.DataFrame({
'a': [7, 1, 3],
'b': [4, 5, 9],
'c': [2, 8, 6]
})
for col in df.columns:
df[col] = sorted(df[col].tolist())
# print(df)
这种写法真的适合懒人,一行搞定。要是以后有多列,循环里直接按需要排哪几列都行。
最后啊,别指望每次算法题都得有什么高级技巧。大部分需求,其实就是这么点事,思路别绕晕了自己,记住要清楚题目到底要你“列排”还是“整体排”。生活里就算遇到两个衣柜,也要分开叠衣服嘛,合一起那叫乱,不叫算法...
-END-
我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领