查看: 13008| 回复: 15
跳转到指定楼层
上一主题 下一主题
收起左侧

[经验总结] 2020找工总结(系统设计)

   
全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 zzpanda 于 2020-6-17 15:40 编辑

2020找工结束,分享给大家一些关于系统设计的个人感想和资料~

感想:
  • 工作五年,面的level都是senior,一般onsite就是一轮design,或者有些coding最后有时间也会问一个小design。感觉design的表现对hire/no hire的影响越来越大,同时也直接决定了你的level和工资,因为coding只要花足够时间准备了大部分都没啥问题。。。就像fb的coding轮只有过和不过,design轮才决定你的level
  • 遇到的design可以分三种:general design (design facebook), real work design (面试官拿一个他工作中真正遇到的问题,一般比较具体) 和 domain knowledge design (你做的东西和职位非常match,比如database internal或者AI)
  • 我做的东西比较专,所以domain knowledge还不错,但是general design的话基本都没有hands-on experience, 大部分知识都是通过看资料学习的(我连REST API都没有写过),虽然准备了好久结果也不是很好,到最后的评价还是广度够而深度不够。如果你和我有一样的问题,我其实也没什么好方法,design轮fail的飞起,越fail越觉得自己不行。。。但是有几点我觉得比较重要:
               o        随着花时间看各种各样的资料和实战,我可以感觉到我的design水平(不管是硬实力还是套路)肯定是在一点一点提高的,一个知识点可能在好多资料里重复出现(比如message queue),我的理解也会越来越深,所以请一定不要放弃
               o        一个人基本不可能所有component都做过,所以要尽量把面试官往自己熟悉的方向引导,回答最好要有亮点(面试官都没有想到的点)
               o        solution多提几个option,就算很明显有问题的也可以提,之后讨论trade off,最后选择一个并解释为什。完了你每加一个东西都要解释一下为什么加它,是不是必要的
               o        设计可以从简到繁,不然可能会被说over design。。。
               o        如果到最后你觉得光看资料的帮助已经很小很小了,还有一个option就是真的去做一些小的project来增加一下hands-on experience(本人没有试过,听朋友推荐的)
  • 我的流程一般是(这个只适用于没有经验的朋友,高手可以具体问题具体分析):
               o        Functional requirements
               o        Nonfunctional requirements (availability, consistency, heavy read/write, etc.)可以顺便提一句需要monitoring system(technical/business metrics)
               o        Scale estimation (DAU, QPS (low latency), etc.)
               o        API design + database schema
               o        Overview design workflow
               o        What are the failure cases and how the system could handle it
               o        Scale up/out
               o        Deep dive in one area (需要和面试官check)
  • Mock的话就是找朋友,免费网站试过Pramp和interviewing.io一两次,感觉都还可以

资料:
  • designing-data-intensive-applications (书)
  • web scalability for startup engineers (书)
  • https://www.educative.io/courses/grokking-the-system-design-interview/ (地理好像有折扣码)
  • https://www.interviewbit.com/courses/system-design/topics/interview-questions/
  • 九章算法系统设计
  • https://github.com/donnemartin/system-design-primer
  • Medium和各个公司的engineering blog
  • https://github.com/puncsky/system-design-and-architecture
  • https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=552608&extra=page%3D1%26filter%3Dlastpost%26orderby%3Dlastpost%26orderby%3Dlastpost
  • http://highscalability.com/all-time-favorites/
  • https://time.geekbang.org/column/article/132434
  • https://github.com/checkcheckzz/system-design-interview#tips
  • https://soulmachine.gitbooks.io/system-design/content/cn/

以上都是个人看法,欢迎大家补充或者提出不同意见,求大米~





补充内容 (2020-7-6 06:24):
补充一点关于OOD的,我这次跳槽是没有遇到过,我感觉OOD是面试新人出的比较多,senior的话一般都是system design了

补充内容 (2020-8-16 14:23):
上面两本书的link,第一本大家都知道,第二本讲的东西很实际,强推:
designing-data-intensive-applications - https://amzn.to/3iLRama
web scalability for startup engineers - https://amzn.to/3h1dkjT

评分

参与人数 41大米 +94 收起 理由
will_7v + 1 给你点个赞!
Philosophie + 3 很有用的信息!
kid_1412 + 3 很有用的信息!
Kimurate + 5 欢迎分享你知道的情况,会给更多积分奖励!
heiyu + 2 给你点个赞!

查看全部评分


上一篇:如何在virtual on-site中脱颖而出之white board选择
下一篇:设计membership查询系统
全局:
感谢分享。
回复

使用道具 举报

推荐
gameboyying 2020-6-30 17:58:13 | 只看该作者
全局:
同感, 面了很多onsite,  基本都挂在design上, design的话, 我也是用你的套路,然后加自己的设计和理解, 但是,一被问细节,就不行了, 这就是做过和没做过的区别。 没神恶魔好办法,就是不停研究和学习, 学了深一点。
回复

使用道具 举报

全局:
markmark
回复

使用道具 举报

🔗
minmin1005 2020-6-30 05:50:40 | 只看该作者
全局:
很有用的信息!
回复

使用道具 举报

全局:
Mark很有用的信息
回复

使用道具 举报

全局:
马克,谢谢楼主,正在准备中
回复

使用道具 举报

🔗
markbs123 2020-7-1 11:40:32 | 只看该作者
全局:

很有用的信息!
回复

使用道具 举报

全局:
mark 谢谢
回复

使用道具 举报

🔗
333points 2020-8-27 13:37:01 | 只看该作者
全局:
  很有用的信息!很有用的信息!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表