domain是随着role的变化而变化的,SDE可能可以分成至少如下几个role吧。 前端,没什么好说的,算是一大块,我的理解是不管什么公司什么领域,任何前端做的事情都是差不多的。depth可能就是指能熟练掌握流行的CSS/JS框架以及工具,能灵活满足business requirement。但我在前端方面只在刚开始工作时做过短短一年,那时候几乎每年都会有新框架新library出来,react也才方兴未艾。现在不知如何,可能我的理解已经过时。 Service Backend,这里主要就是写服务的后端,也就是业务逻辑。这里其实分得最细,广告、电商、社交、外卖、搜索、商务(B2B软件)、地图等等,都有自己与众不同的业务逻辑和实现方法,每一个小的domain都有值得深挖的部分。depth应该指的是熟悉相关service背后的典型架构,了解各种常用的tooling(data pipeline, database, microservice等),很多所谓的 系统设计 题就是从这里出的,就是看你能不能组合相关的tooling来开发一个满足business requirement的系统。除此之外,当然也要有快速掌握常规开发语言的framework的能力,因为不同公司甚至不同项目之间,用不同的开发语言的现象非常常见(Java,Go,部分Python,C/C++等)。 System Infra,这里大部分指的是Compute,Network和Storage(我们把这仨叫做Core)相关的系统的开发和运维,有的会在其中某一块钻研,有的则需要组合core infra来开发针对特定需求的infra,比如这里讨论的ML Infra就是其中一种。这里的depth指的自然是在core infra或者hybrid infra方向的深耕细作,在这个年代里,相关的专家往往坐落于各种云服务背后,同时需要开发和运维的技能,如果是Core的话侧重运维,非Core则是侧重开发。 .google и SRE,我的理解指的是针对某个Service的运维,分类和Service一样,只不过Service主做开发,SRE主做运维,需要的技能主要是Linux和K8s,以及相关的tooling。我觉得需要注意的是虽然Google、抖音等公司依然有专门的...