►本文内容概览:
☑️能力要求
☑️业务介绍
☑️行业薪资

☑️职业晋升
☑️可以投递的公司
☑️面试流程
►能力要求:
软件工程是IT领域的一个重要领域,软件工程师(Software Engineer,简称SWE)负责了解客户的需求和要求,以构建高效、安全的软件解决方案。一般需要使用现代编程语言以及数学和计算机科学原理,构建可靠的结果,分析现有的软件解决方案,以确定可以添加或修改哪些功能以获得更好的性能。
大多数软件工程师都拥有计算机科学、编程、数学或相关领域的学士学位,掌握相关编程语言,例如C++、C#、JavaScript和Python,并有构建软件的经验。此外,软件工程师一般会在工作环境中与其他专家团队(例如系统架构师、数据库管理员和项目经理)合作,识别问题并开发全面的解决方案,所以团队协作、沟通能力这类的软实力也是必不可少的。总结下来即:
编程技能:如Java、Python、C++、JavaScript等,并能够编写高质量的代码。
算法和数据结构:熟练掌握算法和数据结构对于解决复杂的编程问题至关重要。这些知识可以优化和提高代码的效率。
数据库管理:熟悉数据库设计和管理,包括SQL查询、数据库优化和常见的关系型数据库(如MySQL、PostgreSQL)或非关系型数据库(如MongoDB)。
前端和后端开发:具备前端和后端开发的能力是一个优势。前端开发涉及用户界面设计和交互,后端开发负责服务器端逻辑和数据库。
版本控制系统:熟悉使用版本控制系统,如Git,以便协作和代码管理。
沟通能力:具备良好的团队合作和沟通能力,能够与其他开发人员、设计师和项目经理协作。
►业务介绍:
在不同公司中,SWE的具体职责会不尽相同,主要都是围绕产品软件相关的从设计搭建到开发测试的软件工程pipeline。例如在BCG这样的知名乙方行业头部公司,软件工程师主要需要和客户的IT部门沟通确立好云计算构架、数据库构架等细节的问题。也有一部分软件工程师会和数据科学家合作,帮助数据科学家将代码完善好并且制作成DAG等适合于在大规模运算平台上运行的产品。另外还有很多软件工程师致力于制作各个领域的BCG工具,例如产品化的推荐算法等。如果在客户项目上项目长度同样为3-4个月,但是如果分配到制作各领域工具则项目周期更长,在6-12个月。
而在微软这样拥有20W+员工的科技大厂,Software Engineer岗位在不同的org/team下做的具体工作很不相同,工作体验也会有不一样。日常工作总结起来就是与PM共同进行产品功能的设计,参与架构方案的讨论,以及主导日常的开发与测试。技术栈方面微软各个team一般都比较统一,基本上主要使用的都是微软自己开发维护的.net框架与c#语言。Azure的team还会接触到Azure DevOps, Distributed System, SaaS/PaaS, Kubernetes等许多行业最新的热点。至于学习成长方面,刚入职就会组织员工参加Azure Bootcamp, 能了解部门的产品,学到很多分布式、云计算的知识。更多相关内容:干货 | 微软Microsoft软件工程师岗位介绍
►行业薪资:
根据美国劳工统计局的数据,从2021年到2031年,美国求职市场对于软件工程师和开发人员的需求将增长25%(比平均职业增长高出 20%)且还作出预测:每年将有大约189,200个软件工程师职位空缺。据Jobted称美国软件工程师的平均年收入为106,227美元,是全国平均工资53,490美元的两倍,以下是按美国城市细分的软件工程师薪资概览:
►职业晋升:
一般的升职在每2年左右,升职路线为:AI software engineer → Senior AI software engineer → Lead AI software engineer → Principal → Partner → Managing director and partner
可以见到在Lead这个职位之后,所有BCG面向客户的职位都将合并到Principal->Partner->Managing director and partner。具体的软件工程师考核制度和数据科学家考核制度基本一致,但是会在软件工程师的专业知识(云计算、构架等方面)技能上有着重的考核。
►可以投递的公司:
Tier1:FAANG集团
“FAANG”是 Facebook(现Meta)、Apple、Amazon、Netflix和Google的首字母缩写词,一开始“FANG”这个说法主要由2013 年CNBC的Mad Money电视节目主持人吉姆克莱默 (Jim Cramer) 推广,当时他称赞这些公司“在他们的市场上完全占据主导地位”,随后Apple于 2017 年也被加入缩写中成为“FAANG”。行业地位和软件开发实力之外,这些公司在求职市场中无疑也是所有CS学生青睐的去处,不仅职业发展空间开阔、团队氛围好、同事能力强,薪酬和福利也是出了名的好,往往entry level软件工程师就已经能够拿到近20万美金的年薪。
代表公司:Facebook(现Meta)、Apple、Amazon、Netflix 、 GoogleEntry Level年薪范围:17万-20万美金/年
Tier2:其他知名高薪大厂
除了FAANG外,当然还有其他很多大厂也提供着优渥的薪酬待遇条件和非常有竞争力的工作环境,而且这些公司在各自领域也是有着极为突出的业务能力优势,在求职市场中他们给出的软件工程师应届岗位也是所有CS学生必争之地。
代表公司:Uber、Tesla、Microsoft、LinkedIn、Snapchat、AirbnbEntry Level年薪范围:16万-18万美金/年
Tier3:其他知名公司
由于业务架构及对于部分软件工程师分配工作内容的不同而让这部分公司entry level SWE薪资范围跨度比较大,平均数和上述前两类公司有了一定的差距,但随着职级晋升也会稳稳踏入绝对的高薪行列,且如果能负责核心的业务相关软件开发,total compensation也是能到第一梯队的。
代表公司:Cisco Systems、IBM、OracleEntry Level年薪范围:10万-15万/年
更多相关内容:
2023 美国地区Software Engineer平均薪酬Top10
►面试流程:
微软
以微软为例:
面试历程包括申请 → Online Assessment(optional)→ Phone Interview → Onsite Interview → Offer这几个阶段。
一般电话面试会由recruiter或者engineer进行30分钟的行为面试,亦或加面一道easy的coding题目。这一轮的面试主要是recruiter对你进行一个全面的了解,不会有太深刻的technical的考察,但是需要准备好微软常问的bq问题。在这一轮后,recruiter会对你进行team match,后面的onsite就都是组面了。
Onsite这一轮一般会进行4场长度为一小时的面试,其中三场是技术+行为面,还有一场是由比较senior的manager或director主导的纯行为面试。微软的技术面试一般都比较简单,只要刷好leetcode的tag题目便没有太大的问题。但是微软的整体面试feedback很看重行为面试,需要着重练习,尤其是那一轮纯行为面试尤其重要。
谷歌
1. 第一轮:OA (在线算法面试)
这一轮主要考察面试者的基础算法能力和代码能力。题目一般不会太偏或者太难。这一轮算法主要是针对R&D类型的岗位:软件工程师、机器学习工程师、测试工程师。其他不要求大量coding的岗位,比如PMHR这些岗位不会有OA这一轮。
2. 第二轮:电话面试这一轮一般会更加technical,偏向于基础的技术面试。这一轮会有一位面试官和你一块解决一个实际的算法问题。毕意是和人沟通,这一轮不仅仅是考察算法能力,同时还有和人的沟通交流,解决问题并且协作能力都会得到考察。我已经已经在谷歌当了多年的面试官。曾经还没有工作的时候有时觉得面试就是为了刷掉人,故意拔高难度。但我越来越发现,其实面试的过程就是去考察你是不是合适在公司里面大家一块共事。遇到了问题大家能够各抒己见,一块共同攻克解决。在实际工作中遇到的问题,往往比我们曾经在学校里面遇到的课程问题要难上很多,一个人没有办法轻松解决,这个时候如何发挥大家的力量,如果我们在团队给出反馈的时候积极沟通解决,这样反而可能比自己埋头苦干要更加有意义。
3. 第三轮面试:Onsite Interview (到公司面试)这一轮是到公司内面试。由于疫情,很多公司都采取Virtual Onsite Interview。轮数是一样的,只是采用了线上交流做题的方式。这段时间,疫情也在慢慢好转,很多的公司开始欢迎面试者到公司内部面试。这一轮在谷歌有5轮,相比于几年前多了一轮行为面试。4轮面试对于刚刚毕业的同学基本都是算法面试。对于有工作经验>2年的同学,会有System Design和OOD的面试内容。这一轮的面试会有更加全面的题型,所以需要Onsite面试的同学一定要注意好好复习,更加全面地整理知识内容,包括算法的理解。Behavior面试又称为行为面试,建议大家去谷歌的官方网站看谷歌的文化内容,并且针对性的基于自己经历整理描述内容。
请关注微信公众号 【PH求职】(可以获得更多求职干货/咨询,并可以获得免费和资深咨询师1对1机会)