阅读视图

发现新文章,点击刷新页面。

产品设计和系统设计面试的区别(Product Design vs System Design)


meta 产品设计和系统设计面试的区别(Product Design vs System Design) Facebook 程序员 系统设计 计算机 面试

Meta / Facebook

在 Facebook/Meta 的软件工程师(包括站点可靠性工程师SRE企业工程师EE)的面试中,产品设计/Product Design和系统设计/System Design起着比较相当重要的作用。

一般来说,编程面试(Coding Interviews)和行为规范面试(Behavior,考查是否和公司的文化价值观一致)是最基本的要求,而设计能力(系统设计或者产品设计)才是决定给你Offer的级别。

产品设计面试:Product Design Interview

  • 目标:评估您创建以用户为中心的产品的能力,这些产品可以有效解决实际问题。
  • 重点:您如何考虑用户需求、确定功能的优先级以及制定符合业务目标的解决方案。

典型问题

  • “您将如何设计一个允许用户管理其隐私设置的功能?”
  • “为 Facebook 上的新用户设计入门体验。”

评估的技能

  • 了解用户角色和痛点。
  • 打造直观且可扩展的用户体验。
  • 平衡用户需求与业务目标。
  • 分析不同产品特性之间的权衡。

关键方法:CIRCLES 等框架(考虑用户、想象场景、需求、削减和确定优先级、列出解决方案、评估权衡、总结)。

系统设计面试:System Design Interview

  • 目标:评估您构建可扩展、可靠且性能卓越的复杂的分布式系统的能力。
  • 重点:如何设计技术后端和基础设施以支持高流量和强大的应用程序性能。

典型问题

  • “设计一个像 Facebook 一样可扩展的新闻推送系统。”
  • “您将如何设计 URL 缩短服务?”

评估的技能

  • 了解分布式系统和架构原则。
  • 能够选择适当的技术(数据库、负载平衡器、缓存)。
  • 了解可扩展性、容错性、数据一致性和延迟。
  • 不同架构之间的权衡选择。

关键方法:使用 RESIST(需求、估计、存储、接口、可扩展性和权衡)等框架,并专注于应对技术挑战

总结:TLDR

  • 产品设计侧重于用户体验和产品功能。
  • 系统设计侧重于后端基础设施和技术可扩展性。
  • 两者的准备都需要模拟场景练习,但重点不同(用户需求与技术架构)。

Meta 猎头:

本次面试将重点关注系统设计和架构——考虑分布式系统和 API——非常注重构建/实现结构/产品。问题的一个示例:您将如何构建一个处理数百万同时连接用户的聊天系统?请务必非常透彻地解释,我们通常在白板上寻找一个方框和箭头图。

我还附上了几份白皮书供您阅读,它们展示了我们设计系统/产品的方法,希望可以让您了解我们在寻找什么(Haystack 是一个具有产品设计元素的完整系统的示例,即 API 和 CDN,其余的是更多的系统设计专注)。

英文:Difference Between Product Design Interview and System Design Interview

面试经历

面试题

面试技巧

面试其它

本文一共 819 个汉字, 你数一下对不对.
产品设计和系统设计面试的区别(Product Design vs System Design). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 产品设计和系统设计面试的区别(Product Design vs System Design) Facebook 程序员 系统设计 计算机 面试
The post 产品设计和系统设计面试的区别(Product Design vs System Design) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. C/C++ 中的内存管理器(堆与栈) 最近面试的时候遇到这个问题。这个问题考你计算机的基本功。 在 C/C++ 中,内存管理是控制程序如何分配和管理其资源的关键方面。C/C++ 程序中的内存通常分为不同的区域:堆栈和堆是最主要的动态和自动内存分配区域。 ACM题解系列之 – 最小堆栈 (Min Stack) 堆栈内存 定义:堆栈内存用于静态(自动)内存分配。它是存储函数参数、本地变量和返回地址的地方。当调用一个函数时,一个新的内存块(称为堆栈帧)会被添加到堆栈的顶部。当函数返回时,该内存会被自动释放。 分配:内存由系统自动管理——在变量超出作用域时自动分配和释放。无需人工干预。 生命周期:受限于函数或代码块的作用域。一旦函数退出,内存将被释放。 大小限制:堆栈的大小通常较小并由系统预定义,意味着大的分配可能导致堆栈溢出。...
  3. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  4. 软件工程师可以通过ChatGPT来帮助审核代码(提高代码质量) 软件工程师(aka 码农)可以让ChatGPT来帮助审核代码。我发现在工作中挺好用的,把同事的PR(Pull Request)代码贴给ChatGPT,那么它会帮你看看代码中是否有问题,是不是有一些BUG,甚至会给你一些建议,效果很不错。很多时候我发现ChatGPT比我更专业,很能给出中肯的建议(我甚至想不到的方面,也帮助我拓展了思路) 不过,我不建议完全依赖于ChatGPT,至少在拿到ChatGPT的审核结果后你需要自己再看一眼,看看是不是有道理。切忌直接Copy/Paste。 你也可以试一试其它AI工具,像Google的Gemini(以前叫Bard),还有Claude AI等(现在各类AI通用人工智能真是百花其放)。 英文:ChatGPT Use Case for Software Engineer: Review Pull Requests...
  5. 我用诺顿杀毒软件, 你呢? 我这几年一直用的是诺顿杀毒软件(Norton Security),而且是正版的。这些年软件都是按订阅制了/Subscription,所以能用上基本上是正版的。 但是我没花一分钱,因为这个是我家网络公司PlusNet免费提供的。PlusNet是一家谢菲尔得的公司,在谢村中心西街/West Street上,当年我路过透过玻璃窗户还看到他们家的员工在打乒乓球。 今年又续了2年的宽带,他们家的网络不错,在英国的朋友可以用我的推广链接加入(并且填写我的用户名 doctorlai),有折扣。 免费的就是香,要是自己花钱,那可能就会觉得贵了,虽然每个月也就大概6英镑(年付是73.99英镑)。这个宽带套餐包的这个诺顿可以在7台机器上安装。我给家里其它电脑都装上了,还有剩余。如果你也想蹭一下,请我喝杯咖啡即可,先到先得。 PlusNet宽带还有其它一些功能,比如每月可花5英镑买一个静态IP/Static,这样方便在家里架服务器,不过一般来说静态IP地址并不是最难搞的,家里的网络上行一般只有下载的一半,而且家里的网络也不够稳定,再加上没有机房稳定的供电和散热,一般家里架服务器就是玩玩而已。 这年头只要不乱下载软件,一般不会搞到电脑病毒/木马,其实最重要的防护是防止监听/木马等,上次下载了一个迅雷下载就被诺顿报安全风险,我立马给禁了删掉了,浏览器插件也有风险,上次币圈有一个插件就偷偷的记录你的浏览器登陆Cookie然后就把币给盗走了,所以在浏览器里登陆交易所,切记用安全模式(隐身模式),因为在隐身模式下所有插件是会被禁用的,比较安全。 常在河边走,总会湿了鞋子,所以还是做好防护,这可不是心理安慰,安全就如防火,平时不出事的时候看着没事,但一旦出了事,就追悔莫及。 本文一共 600 个汉字, 你数一下对不对. 我用诺顿杀毒软件,...
  6. 记录那些值得回忆的精彩瞬间 媳妇 @happyukgo 其实挺反感我给她拍照片的, 但主要原因是 我经常把她拍得很丑, 而我除了会用美图秀秀简单的滤镜之外就不会一丁点儿的PS技术. 我家孩子 Eric 很爱臭美, 每次看着我拿相机, 总会让我 “Take a picture”, 然后各种摆姿势做鬼脸,...
  7. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  8. 贪心算法玩比特币玩的就是心跳 行情不错, 比特币最近一个月大涨, 很大一部分原因是因为FACEBOOK说要开发稳定的虚拟货币LIBRA, 使很多投资者对加密货币这一块又重新有了信心. 更多的人了解到了比特币想趁着一币一嫩模前赶紧上车. 玩比特币的大多是有信仰的(不到10万美金不卖的), 当然也不乏有见好就收的投资者, 又或是像我这种并没有花真金白银投资的人. 我的比特币都是玩STEEM区块链脑力挖矿还有见证人出块的收入: 给开源做贡献, 乌托邦Utopian开源审稿报酬, 各种空投币, 还有就是见证人出块​. ​ 由于我的比特币来的相对没有成本(时间+见证人服务器),...

站点可靠性工程师(SRE) vs 软件开发工程师(SE/SDE)


许多大公司都有站点可靠性工程师(SRE = Site Reliability Engineer)的职位空缺。例如,谷歌、Facebook/Meta 或字节跳动的抖音。软件工程师(Software Engineer)与亚马逊/Amazon所称的软件开发工程师相同(Software Development Engineer)。

站点可靠性工程师(SRE)是一个专注于确保生产环境中软件系统的可靠性、可扩展性和性能的角色。SRE 负责服务的健康状况和正常运行时间,平衡软件开发与运维任务。软件工程师(SE)主要专注于编写和维护代码以创建软件产品,而 SRE 则融合了开发技能、系统管理、故障排除和事件管理,以确保这些产品在实际环境中顺利运行。

以下是两者之间关键区别的比较:

站点可靠性工程师 (SRE)

专注于可靠性与运维:

  • 确保系统高度可用、可扩展且具有弹性。
  • 监控系统健康状况,管理事件并处理故障。

运维自动化:

  • 使用代码自动化手动任务(例如基础设施部署、监控和补救措施)。
  • 通过创建自动恢复或仅需最少人工干预的系统来减少重复性工作。

随叫随到的职责/也就是On-call:我在亚马逊AWS云On Call的体验

  • 通常参与随叫随到的轮值,处理操作问题和紧急情况。

性能和容量规划:

  • 分析系统性能,确保系统能够应对增长和流量高峰。

SLA、SLO 和 SLI:

  • 定义和管理服务级别协议(SLA)、目标(SLO)和指标(SLI),以测量并确保正常运行时间和性能指标。

事件管理:

  • 调查事件,领导事后分析,并实施修复措施以防止未来发生类似问题。

软件工程师 (SE)

专注于开发:

  • 主要参与设计、开发和维护软件应用程序或服务。
  • 通常致力于构建新功能或改进现有软件。

产品开发:

  • 在开发阶段关注软件的功能性、可扩展性和可维护性。

与其他团队合作:

  • 与产品经理、设计师和其他工程师合作,定义功能并实现软件解决方案。

代码质量和测试:

  • 编写测试代码,并通过代码审查、单元测试和自动化测试等实践确保代码质量。

较少参与生产操作:

  • 通常不负责系统正常运行时间或紧急响应(除非在专注于 DevOps 的团队中工作)。

重叠点:

  • 编码技能:SRE 和 SE 都编写代码,但 SRE 可能更侧重于自动化和支持生产系统的工具。
  • DevOps 实践:两种角色可能都遵循 DevOps 原则,以确保持续集成和部署,SRE 强调可靠性,而 SE 则注重开发速度和功能交付。

总而言之,SRE 是一个强调确保生产系统可靠性和运维效率的专门角色,而软件工程师则更多地专注于构建和增强软件。

SE 和 SRE 入职门槛要求的比较

关键区别:SRE 角色通常需要更深的系统操作和基础设施管理知识,而 SE 角色则更强调软件开发和计算机科学理论。

站点可靠性工程师 (SRE)

教育/背景:

  • 通常需要计算机科学、系统工程或相关领域的背景,类似于软件工程
  • SRE 往往具备软件开发和系统管理(Linux、网络等)技能的组合。
  • 通常需要 DevOps 工具、云基础设施(AWS、GCP、Azure)和自动化工具(如 Ansible、Terraform 或 Kubernetes)的经验。

运维经验:

  • SRE 需要管理生产环境、理解 SLA、监控和事件管理的实际经验。

所需技能:

  • 系统工程(Linux、网络等)方面的强大知识。
  • 熟练掌握脚本编写/编程(Python、Go、Ruby 等),用于自动化任务。
  • 具备监控工具(如 Prometheus、Grafana)、CI/CD 管道和基础设施自动化的经验。

软件工程师 (SE)

教育/背景:

  • 通常需要计算机科学或相关领域的学位,尽管有些人通过编程训练营或自学进入该领域。
  • 专注于数据结构、算法和构建软件解决方案。
  • 为应届毕业生或那些具有较少专业经验的人(实习、项目)提供入门级职位。

所需技能:

  • 熟练掌握一种或多种编程语言(Java、Python、C++ 等)。
  • 对计算机科学基础(算法、数据结构、面向对象设计)有深入了解。
  • 具备编写干净、可维护、可扩展代码的能力。

SE 和 SRE 面试难度的比较

关键区别:SE 面试更侧重于算法,而 SRE 面试更多关注系统、操作和可靠性工程,编码要求较低但仍然重要。

站点可靠性工程师 (SRE)

难度:中等到高

  • SRE 面试通常涵盖广泛的主题,包括系统设计、故障排除、生产级故障和监控。
  • 面临与系统可靠性、基础设施扩展和事件响应相关的解决问题的挑战。
  • 面试通常测试您的网络、Linux 基础、云架构和基础设施自动化知识。
  • 部分面试可能会专注于编码,但复杂性因公司而异(通常为中等难度,以脚本为主的任务)。

涉及主题:

  • 系统设计(重点是可靠性、弹性)。
  • 与自动化相关的编程/编码挑战。
  • 故障排除和事件处理。
  • 监控和性能优化。
  • 网络基础和基于 Linux 的系统知识。

软件工程师 (SE)

难度:高

  • SE 面试通常更多关注算法、数据结构和编码挑战。
  • 高级职位的系统设计面试可能会非常复杂,涉及可扩展架构、分布式系统和性能优化。
  • SE 面试往往更注重算法密集度,测试您在时间限制下解决问题的能力。

涉及主题:

  • 数据结构和算法(例如排序、图遍历、动态规划)。
  • 系统设计(针对高级角色)。
  • 以编码风格、团队合作和问题解决为重点的行为面试。
  • 在 LeetCode、HackerRank 或公司自定义平台上的编码练习。

SE 和 SRE 薪酬待遇的比较

关键区别:两种角色的总薪酬非常相似,尤其是在顶级科技公司中的高级职位。然而,在某些技术性极高的职位上(例如高级工程师/首席工程师),SE 可能会因为更大的股票和奖金包裹而超越 SRE。

站点可靠性工程师 (SRE)

基础薪资/Base:

  • 在顶级科技公司(如谷歌、Meta、亚马逊),SRE 的基础薪资通常较高,类似于软件工程师。
  • 在美国,入门级 SRE 的年薪约为 12 万 – 16 万美元。
  • 高级 SRE 的年薪可能在 18 万 – 22 万美元或更高,具体取决于公司和地点(特别是在硅谷等科技中心)。

总薪酬/Total Package:

  • 包括奖金、股票期权和其他福利后,顶级科技公司中的 SRE 的总薪酬可能达到 20 万-35 万美元或更高,特别是高级职位。
  • SRE 经常获得与系统正常运行时间、可用性或事件管理相关的丰厚奖金。

软件工程师 (SE)

基础薪资/Base:

  • SE 的基础薪资通常与 SRE 类似,尤其是在大型科技公司中。
  • 入门级软件工程师的起薪通常在 11 万 – 15 万美元之间。
  • 高级软件工程师的年薪可能在 18 万 – 25 万美元或更高,具体取决于经验、地点和公司。

总薪酬/Total Package:

  • 包括股票期权、奖金和绩效奖励后,SE 在大型科技公司中的总薪酬可能达到 20 万 – 35 万美元或更高,尤其是在股票重的薪酬结构(例如谷歌、Meta、亚马逊)中。
  • 在某些公司,软件工程师的薪酬可能会因为更大的股票包裹而偏高,特别是在较高级别上。

SRE 和 SE 的总结

方面 站点可靠性工程师 (SRE) 软件工程师 (SE)
入职要求 系统/运维经验,基础设施,自动化知识 强大的编码技能,计算机科学基础,专注于开发
面试 系统设计,运维,自动化,事件管理 算法密集,数据结构,编码和系统设计
薪酬 与 SE 相似,基础薪资 $120K–$220K;顶级科技公司总薪酬 $200K+ 与 SRE 相似,但在高级职位上 SE 可能比 SRE 赚得更多

两种工作都非常有价值,尽管 SRE 职位需要更多的系统和运维专业知识,而 SE 职位则更强调开发和算法问题解决。

英文:Site Reliability Engineer (SRE) vs Software Engineer

软件工程师

本文一共 2207 个汉字, 你数一下对不对.
站点可靠性工程师(SRE) vs 软件开发工程师(SE/SDE). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 站点可靠性工程师(SRE) vs 软件开发工程师(SE/SDE) 工作 程序员 资讯 软件工程
The post 站点可靠性工程师(SRE) vs 软件开发工程师(SE/SDE) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 避免选择低质量没保障的 VPS 公司 现在程序员基本都会有VPS服务器, 价钱也不贵, 一个月几美元, 随随便便就能申请个玩. 我自己这几年也玩了不少VPS, 现在手上大概有10台VPS, 用于不同的服务: 博客, 区块链, API等用途. 上两周, 其中一台服务器商 supremevps 突然发邮件 给两天时间,...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. C/C++ 中的内存管理器(堆与栈) 最近面试的时候遇到这个问题。这个问题考你计算机的基本功。 在 C/C++ 中,内存管理是控制程序如何分配和管理其资源的关键方面。C/C++ 程序中的内存通常分为不同的区域:堆栈和堆是最主要的动态和自动内存分配区域。 ACM题解系列之 – 最小堆栈 (Min Stack) 堆栈内存 定义:堆栈内存用于静态(自动)内存分配。它是存储函数参数、本地变量和返回地址的地方。当调用一个函数时,一个新的内存块(称为堆栈帧)会被添加到堆栈的顶部。当函数返回时,该内存会被自动释放。 分配:内存由系统自动管理——在变量超出作用域时自动分配和释放。无需人工干预。 生命周期:受限于函数或代码块的作用域。一旦函数退出,内存将被释放。 大小限制:堆栈的大小通常较小并由系统预定义,意味着大的分配可能导致堆栈溢出。...
  4. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  5. 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
  6. 虚拟货币USDT兑换法币英镑的汇率比较: Crypto.com, Ledger硬件钱包卡 和 WirexApps USDT虚拟货币 – 也被常称为U或者泰达币. USDT(Tether)是一种与美元挂钩的稳定币. 它旨在与美元保持 1:1 比价, 这意味着 1 USDT 始终等于 1 美元. 它主要用作不同数字资产交易所之间转移价值的手段, 允许交易者和投资者轻松地在平台之间转移资金,...
  7. 2019剑桥龙舟节: 很荣幸代表福建船队参赛 时间: 2019年6月2日星期日 前不久, 剑桥每年一度的龙舟节在剑桥Jesus Green大草地还有边上的剑河举行了. 每次都是星期天, 所以基本上附近的华人都来了, 很热闹. 旁边的剑河里有条不紊的两两进行着淘汰对抗赛, 草地上大人小孩子席地而坐, 野餐, 聊天. 孩子们有蹦蹦床玩, 有美食(摊位)广场, 天空做美,...
  8. Telegram机器人能通过AI算法进行视频和图片换脸 2023年开始AI火起来了, 各种AIGC算法, 生成美女图, 生成视频, 生成文章, 生成音乐等等. 今天发现一个Telegram机器人号称可以把图片和视频给换脸, 只有一次免费使用的机会, 要继续使用就得充值. 支付方式可以使用波场U-USDT虚拟货币来支付买积分. 10个积分能操作一张图片换脸. 视频换脸: 30积分/10s 图片换脸: 10积分/图片...
❌