小赖子的英国生活和资讯

说说软件工程师的职位头衔(Title)和级别

阅读 桌面完整版

我现在在GE做软件工程师, 职位头衔是 Staff Software Engineer 翻译过来是 资深软件工程师. 我见过的软件工程师的职位(Software Engineer) 有以下几种:

上面说的这些职位头衔并不是绝对的, 比如一般来说只有美国IT公司会用到 Staff Software Engineer. 而在欧洲, 还有以下几个级别:

当然这些级别也可以应用到其它职位, 比如 Senior Solution Architect 高级方案架构师, Prinicpal Technical Architect 首席技术架构师, 等等. 一般来说, 小公司晋升较容易: 一是人少(竞争少), 没几年新人招进来, 自然需要把你提拔上去(虽然可能你的能力很不幸还没到那个级别).

美帝在这 (Senior Staff) 之上有 Principal, Distinguished 和 更高一级的 Senior Principal, 甚至还有 Fellow 大牛级别. 比如 Google 就有 Google Fellow (L10) 和 Senior Google Fellow (L11). 这两级别很难很难升, 除非对公司或者人类算法有巨大的贡献吧.

相反大公司晋升较难, 因为人多, 竞争激烈, 大公司的产品线多, 需要很长的时间才能对大部分产品 架构和方方面面较为熟悉. 当然这也和你的经理有点关系, 好的经理能培训你, 给你创造机会, 很快的提拔你(这也是经理的一个KPI). 前面说的带我的那个大牛花了17年从 staff 晋升到 senior staff, 当然这不是特例, 我发现其他软件工程师也差不多得好几年才能被提拔.

software-engineer-level-promotion

初级码农在搬砖, 越高级的码农就得懂得多方面的知识, 甚至是运维(e.g. CI), 架构(e.g. 容器), 前两天推上一软件工程师很幽默的说Full Stack就是整个IT部门.

full-stack-vs-entire-it-department

艺多不压身, 一般对于小公司来说, 招 Full Stack 全栈程序员性价比很高, 而对于大公司来说, 有钱, 则就招得很专, 比如 运维工程师, 测试工程师啥的.

软件工程师最基本的技能就是 数据结构与算法, 然后在懂一两方面专业的知识, 比如 GPU 计算. 华为, ARM还有高通这些做芯片的招人的时候就比较喜欢招有这些硬件知识(底层操作系统, 编译器等)的软件工程师, 职位也比较专, 比如 Mobile GPU Software Engineer, Compiler Software Engineer 等. 这就很专了, 越跳越专, 竞争越来越少.

相反, 互联网大厂, FANG (Facebook, Amazon, Neflix, Google) 这些招人就是 Software Engineer, 只不过级别不同, 比如 Amazon的Software Development Engineer L4 就是刚毕业一两年的软件工程师, L6 就是 Senior 级别的工程师.

互联网程序员主要考察的能力就是 数据结构+算法, 还有就是架构: 怎么设计一个容错性, 可扩展 scalable 的系统.

对了, 谷哥还有 SRE (Site Reliability Engineer) 大概是偏运维的软件工程师, 感觉需要 on-call 责任多一些吧.

对了, 大学里还有一种软件工程师: Research (Software) Engineer.

研究院也需要engineer, engineer给 researcher擦屁股, 研究院的鄙视链一般是 researcher – RSDE – SDE

researcher 的 bar 真是太高了, 竞争激烈, 背景全是 mit, harvard这种PHD,然后看 publication, 都是phd postdoc在神仙打架. 我们组经理就很鄙视英国的PHD, 他说只有3-4年, 学不到啥.

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version