一个公式告诉你为什么程序员要转算法工程师

2017年6月的调查表明,算法工程师在十大城市中需求旺盛,尤其在北京,杭州等城市。平均工资达18912元,远超一般程序员。学历、工作经验对薪资影响显著,硕士和博士的中位数工资均超过20000元。通过公式Sˉa=10428.39+0.788∗Sˉp,可计算不同地区的算法工程师薪资。考虑转行?了解线性回归和决策树是第一步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原来的标题是:算法工程师工资调查 20170611

今天(2017年6月11日)爬了某招聘网站的十大城市的算法工程师职位。

算法工程师

这里的算法工程师包括比较广泛。有做数据科学的,有做图形的,有做信号处理的。之后会统计更细分的领域。

十大城市

以下按照算法工程师的需求量,找出十大城市。因为算法工程师向大城市集中比较明显,所有这十大城市基本可以代表全国的算法工程师了。

城市需求城市需求
北京1048成都149
深圳353南京92
上海312西安91
杭州226天津67
广州184苏州60

需求量在50人左右的还有武汉,长沙,合肥,济南和郑州。

从表中可以看出。北京以1000多人的需求量,成为当之无愧的一超。其需求量相当于后面的四个城市的总和。

杭州作为非一线城市,其需求量不仅远远超过非一线城市里的第二名成都,而且还却超过了广州。其实,杭州的互联网产业,属于二线城市里比较发达的。之前的统计也表面杭州的程序员工资高于深圳和广州。
http://blog.youkuaiyun.com/juwikuang/article/details/72891659

一线城市的程序员工资看这里
http://blog.youkuaiyun.com/juwikuang/article/details/72888792

工资分布

十大城市的算法工程师的平均工资为18912元。而之前调查的一线城市的程序员的平均工资只有11770元,可见算法工程师在程序员里属于高工资。工资中位数为17500元。如果你的工资超过22500元,你就已经超过了75%的算法工程师,算是优秀的算法工程师了。(吴军老师说的)如果你同时具备第二项技能,比如架构师,并且也做到25%。那就是杰出人才了。

工资和人数

教育

和程序员不同,算法工程师的学历要求,明显提高了。

学历分布

受教育水平对工资有着显著的影响。看下图。

教育水平和工资

请注意这里的中间线是工资中位数,不是平均工资,下同。

大专,本科,硕士,博士的平均工资分别是13677, 18727, 20981, 23194。中位数分别是9000, 17000, 17500, 22500。有趣的是,硕士和博士的平均工资差距并不显著。最优秀的25%的博士和硕士,他们的工资,都在25000元以上。但是不排除有些博士并没有走社会招聘而是成了什么长江学者,也许还有房子分。

工作经验

工作经验和需求

工作1到5年的算法工程师需求量是最大的。

工作经验和工资

数据显示,工资会随着工作经验的增长而增长。

城市

平均工资方面,由高到低依次为北京(21332),上海(20162),杭州(19138),深圳(18621),广州(18016)。

这里写图片描述

而工资的中位数排名,则让这五个城市调换了次序。从上图可以看出,北京还是最高(20000),上海和深圳排第二(17500),杭州和广州并列第四(15000)。

统计(Oneway Anova)显示,北京和上海的平均工资没有显著的差异。北京和其他地方的差异都是显著的。

算法工程师工资计算公式

比较了北京,上海,杭州,深圳,广州所有程序员的平均工资和和算法工程师的工资。发现他们两者的correlation是接近于1,二者高度相关。

from scipy.stats.stats import pearsonr   
a = [21332,20162,19138,18621,18016] #算法工程师
b = [13854,12213,11009,10655,9503] #所有程序员
print pearsonr(a,b)

它们之间的pearson r值达到了0.995,p-value为0.0003,显示他们之间有很强的线性正关系。我们干脆把他们的线性关系找出来吧。

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
X = [[13854], [12213], [11009], [10655], [9503]]
y =  [21332, 20162, 19138, 18621, 18016]
lr.fit(X,y)
print lr.coef_
print lr.intercept_
print lr.score(X,y) #r^2

输出值分别为
[ 0.78846586]
10428.3889601
0.990631312216

也就是说我们可以得到以下公式:

S ˉ a = 10428.39 + 0.788 ∗ S ˉ p \bar S_{a}=10428.39 + 0.788 * \bar S_{p} Sˉa=10428.39+0.788Sˉp

S ˉ \bar S Sˉ代表平均工资。 S ˉ a \bar S_a Sˉa代表算法工程师工资, S ˉ p \bar S_p Sˉp代表程序员工资。

这里的R square非常高,达到了0.99。表示模型解释了99%的变化(variability),即模型非常准确。

我们把回归线打出来看看。

import matplotlib.pyplot as plt
cities = [u'北京',u'上海',u'杭州',u'深圳',u'广州']
plt.scatter(X, y,  color='black')
plt.plot(X, lr.predict(X), color='y',
         linewidth=3)
plt.title(u"程序员和算法工程师平均工资")
plt.xlabel(u"程序员平均工资")
plt.ylabel(u"算法工程师平均工资")
for i in range(5):
    plt.text(x=X[i][0],y=y[i], s=cities[i], color='b')
plt.show()

算法工程师工资和程序员工资

因为这个公式是按照地区来算的,所以我们可以说,(Technical/literally speaking),这个公式是“放之四海而皆准”的。?

公司

选择一个什么样的公司,也决定了工资收入。

公司性质和工资

事业单位工资明显低于其他,但是。。。你们懂的。

公司的规模,对于工资同样影响有限。

公司规模和工资

你想开始转了么?

如果你现在想转算法工程师,我这里可以提供你的第一课。就是用我们上面提到的程序员和算法工程师的工资关系,求一元线性回归模型。具体见:
《Python机器学习手把手系列——线性回归》

第二课:

《Python机器学习手把手系列——决策树》

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

织网者Eric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值