2020年2月11日星期二

System Deep Dive 系统设计小班

System Deep Dive 系统设计小班

我开了一个叫做 System Deep Dive 的系统设计小班,面向在美国寻求软件工程师工作的人。系统设计面试跟算法编码面试有相似的地方也有不一样的地方。相似的地方是,你都需要让面试官想要和你共事,这需要说服他你能跟他一起解决复杂系统的设计难题。不一样的地方在于,系统设计问题没有标准答案,不存在 LeetCode 这样的系统为你的训练提供实时反馈。

System Deep Dive 采用教练带领学生探索复杂系统的小班教学模式,帮助你接触常见的系统设计面试题,模拟真实面试过程——鼓励你多提问题了解系统需求,引导你把问题分解成子问题,给机会你独立解决具体子问题。教练会对你的解题过程提供反馈,最后还会展示部分系统代码,帮助你加深对设计难点的理解。

我们的教练曾在大型科技公司中担任 tech lead,有丰富的系统设计经验和面试经验。此外他还创办了自己的 startup,帮助其它科技公司通过实战项目筛选候选人。我们保证你投入到面试准备的每一滴汗水都能有充分的回报。

为了保证跟面试和工作环境一致,整个 System Deep Dive 采用全英语沟通。以下是 System Deep Dive 的详细信息及报名链接:

What is this program?

System Deep Dive is a system design practice group with a coach. The program not only teaches you all the necessary skills to excel at a system design interview but also practices designing complex systems together. In each session, the coach would lead the students to dive deep into a complex system problem and explore different design choices together. Students are encouraged to ask questions and deliberate trade-offs because that’s the best way to learn.

What is the value of this program?

  • Get a feel for the real system design questions asked in interviews. We’ll pick the most popular system design questions asked in industry and elaborate on different paths they lead to. You will learn how to design a real system. We’ll explain in-depth about the usual structure to answer such design questions.
  • You will ask questions and lead discussions like in a real interview. System design interviews are open-ended by nature. In a real interview, candidates will do most of the talks. We will tackle the problem together as a team and you will ask questions and get answers from the coach or other students. In this way, you can understand deeply and learn the trade-offs better among different design choices.
  • You can see how a complex system works in real life. Interviewers often dive deep into the system design to see whether you were actually involved in the project. You might get stuck if you haven’t seen the real thing. We will demo some code and configuration of different system components. In this way, you will understand better, for example, what load balancer does and how the cache is built.

Who is the program for?

People who are committed to getting a software engineer job, have coding experience but lack the experience of designing a complex system.

What is the structure of the program?

This program is structured session by session. Each session will take 2 hours talking about one or two similar system design questions in depth. There will be 4 parts in a session:

  1. In the first part, you’ll be asked to discuss and walk your thoughts out for the question just like in an interview.
  2. In the second part, the coach would challenge you and guide you through different directions of the problem. Students are also encouraged to discuss and it’s a perfect time to explore the pros and cons of design choices.
  3. In the third part, the coach will talk about the common strategy to tackle such a design problem so you can learn the framework tackling it yourself.
  4. Lastly, the coach will demo with real code to illustrate different parts of the system in real life.

Who is the coach?

Our coach has many years of experience designing complex systems and interviewing candidates at well-established tech companies. He’s also the CEO and founder of a startup specialized in helping tech companies hire engineers through practical projects.

How much does it cost?

We’ll be running a series of sessions as a pilot program and charge by each session. A session will cost $200 with a limit of 8 students. Once a session is full, we’ll stop accepting registration and move candidates to the same session of a later date.

What sessions are available?

We will offer the following sessions in the pilot program:

  1. System Design Interview Skills: understanding the problem, breaking it down, exploring each subproblem, deliberating trade-offs and articulating decisions. (3/4 7pm–9pm Pacific Time)
  2. Design an Autocomplete. (3/11 7pm–9pm Pacific Time)
  3. Design a Facebook/Instagram/Twitter Newsfeed. (3/18 7pm–9pm Pacific Time)
  4. Design a Customer Service Center. (3/25 7pm–9pm Pacific Time)

We plan to offer each session once in the pilot program. We will adjust them based on feedback and repeat these sessions after the pilot program.

How do I sign up?

Use the following link to sign up for the pilot program and pick the sessions you are interested in:

https://chen.cat/system-deep-dive-pilot-program-signup

If you are interested in the sessions after the pilot program (or if you are reading this after the pilot program signup is closed), sign up for the wait list with the following link:

https://mailchimp.catchen.me/system-deep-dive-wait-list

We will contact you through email after you signed up.

2020年2月1日星期六

CoderPro 测评

CoderProAlgoExpert 的竞争对手,既然我写了《AlgoExpert 测评》,那就让我再写一篇 CoderPro 的测评吧。先说结论:我不推荐大家独立去购买 CoderPro,因为其价格跟 AlgoExpert 差不多但功能远没有 AlgoExpert 那么多。如果你原本就购买了或打算购买 Tech Interview Pro,免费赠送的 CoderPro 倒可以看一看。

优点

  • 视频容易消化。(每道题的视频控制在 15 分钟内且有些小幽默。)
  • 只用 Python 来做讲解。

缺点

  • 只有视频讲解,缺乏自己做题和测试的过程。
  • 只用 Python 来做讲解。

因为我个人认为练习和反馈的过程十分重要,所以我不建议大家买来通过看视频来学习。如果你已经通过 LeetCode 进行练习,只是有时候有些题目解不出来,那往往你能在网上找到别人的答案,包括 YouTube 上的视频解答。


CoderPro 背后的八卦估计比产品本身更有趣。原本 Tech Lead 是 AlgoExpert 的一个 affiliate,通过自己的 66 万粉丝的 YouTube 频道推荐 AlgoExpert 并从中赚取售价的 50%。后来做 AlgoExpert 的把 affiliate 的费用从 50% 降低到了 40%,然后 Tech Lead 就不干了。

Tech Lead 做了 AlgoPro 这样一个竞品,也就是现在的 CoderPro。然后他注册了 AlgoExpert.com 并指向自己的 AlgoPro。(AlgoExpert 用的是 AlgoExpert.io。)这导致 AlgoExpert 的 Clement 在自己的 YouTube 频道跟 Tech Lead 怼了起来。

Tech Lead 回应说,这都是因为 Clement 贪心,把 affiliate 的费用从 50% 降低到了 40%。Clement 说 AlgoExpert 的题目数量增加后售价也涨了,新售价的 40% 并不比原售价的 50% 少。Tech Lead 悄悄把 AlgoExpert.com 指回去 AlgoExpert.io,但 Clement 仍然不满意,表示不欢迎一个别人的域名指向自己的产品。

现状就是,AlgoPro 不再叫 AlgoPro,改名为 CoderPro,不再跟 AlgoExpert 的名字有重合的部分,事情告一段落。作为吃瓜群众,想要去了解当时的八卦的话可以看那时候的视频。

既然我在这里提到了 Tech Interview Pro,接下来我也会写一写测评,想要关注的话欢迎通过邮件RSS/Atom 订阅我的博客。