2020年8月23日星期日

AlgoTogether 算法面试小班(第四期招生)

AlgoTogether 上周日宣布第三期招生,不到一周时间就全部报满了!一开始我们开放了 20 个名额,结果到周五晚上就全没了。周五一天之内有 8 个人报了名,把剩下的名额都抢光了。因为还有学生特别想要报名,周五没抢到名额就跟我联系,我周六悄悄加了 5 个名额上去,当天就消耗完了。

考虑到 AlgoTogether 如此热门,仍然有学生想要报名,我决定立即开放第四期的报名和支付。第四期预计 10 月 31 日开始,到明年 1 月 2 日结束。课程格式跟第三期相似,但会在第三期快要结束时根据第三期收到的反馈做轻微调整。如果你原本想要报名第三期但错过了,可以点击以下链接报名参加第四期:

https://techcareer.io/programs/algotogether

如果你还不是很了解 AlgoTogether,以下是第四期的详细信息如下:

这门课程适合什么人?

这门课程适合下定决心要在美国一流科技公司找一份软件工程是(Software Engineer)工作的人。这门课程对于首次找软件工程师工作的人来说价值最大,例如说应届生或从其它行业转专业过来的人。找全职实习都适用。对于有工作经验的软件工程师来说,如果最近一年没有做过面试的准备,通过这门课程来准备面试也是一个很好的选择。

这门课程的价值在哪里?

我们的核心价值是「授人以渔」,因此课程的价值如下:

  1. 学会以面试官的角度进行思考。在面试过程中,公司对你的评价不仅仅在于代码的正确性和性能优化。我们会向你解释面试官是如何评价面试者的,这是你不可能通过 LeetCode 学习和训练的技能,你学会这些技能后就可以用面试官的视角审视自己,找到自己应该提高的地方。
  2. 基于面试场景的训练模式。LeetCode 是训练对着机器做题,面试需要的是对着人解题。我们假设你对前者已经有一定的经验,着重训练后者。后者涉及的技能包括:如果通过提问理清面试官的需求、如何清晰地陈述自己的思路、如何接受面试官的反馈和提示。
  3. 给自己下一个破釜沉舟的决心。如果你想要下定决心,在限定时间内做完指定数量的题目,同时完成指定数量题目讲解和模拟面试,我们会保证你对你自己定下的目标负责任。
  4. 理解解题思路而非背诵面经和答案。一知半解就去大量做题的话会导致背诵面经和答案的现象。我们强调学习和理解解题思路,然后通过适量的练习来学会如何灵活运用。以不变的解题思路去应付不断变化的面试题目。

课程结构是怎么样的?

整个课程总共 9 个星期的时间。每个星期我们有 3 个天会进行 Zoom 视频会议,另外 4 天进行线下各自的练习和 Slack 上的交流。

每周教练挑一个主题,例如说动态规划(Dynamic Programming),然后围绕这个主题布置 15 道作业题。你有一周的时间来完成这些题目并且提交结果,你至少需要提交 10 道题目的代码和 1 道题目的详细解题思路。所有学生都完成提交后,助教会组织大家投票选出最优秀的解题思路,并且安排题目讲解(Presentation)和模拟面试(Mock Interview)的时间和人选。教练会在整个过程中针对学生表现提供反馈。

我们每周三、周六和周日晚上 7 点(Pacific Time)通过 Zoom 视频会议进行教学、答疑 、题目讲解和模拟面试。不进行 Zoom 视频会议的日子每天同样时间在 Slack 上进行专题讨论。

课程教练是什么人?

我们的教练都在一流科技公司拥有多年的工作经验和面试官经验。我们的首席教练曾多次获得 ACM/ICPC 竞赛奖牌,此外还培训其它学生参赛获奖。我们的助教团队都有一流科技公司的工作经验,且近期经历了面试找工作的流程,非常能理解正在经历这个过程的学生需要什么。

课程使用什么语言教学?

为了保证跟面试过程和工作环境一致,整个 AlgoTogether 采用全英语沟通。学生毕业后,可以加入微信校友群,使用中文沟通。

如何报名和支付?

请打开以下链接然后选择第四期(10 月 31 日到 1 月 2 日)进行报名和支付:

https://techcareer.io/programs/algotogether

如果你看到这篇文章时已经错过了第四期,可以打开链接然后选择你需要的那一期进行报名和支付。

2020年8月16日星期日

AlgoTogether 算法学习小组(第三期招生)

我开了一个叫做 AlgoTogether 的算法学习小组,面向在美国寻求软件工程师工作(实习或全职)的人。头两期学习小组的效果不错,第二期学生对项目打分 4.4/5.0 分,对老师打分 4.8/5.0 分(数据),所以我决定继续做第三期学习小组。针对头两期学生的反馈,我对第三期学习小组进行了调整,增加了提供标准化反馈的模拟面试环节,设立了学生共同维护的解题思路库。

我知道仅仅通过 LeetCode 准备算法面试是不够的,因为面试并不以题解的优劣来衡量你。你需要让面试官想要和你共事,这需要说服他你能跟他一起通过编程解决难题。AlgoTogether 是一个有教练指导的学习小组,帮助你训练多方面的面试能力,让你在面试时成为面试官的最佳未来同事。在这个学习小组中,你不仅仅需要解题和编码,你还需要练习沟通你的解题思路、接受模拟面试和倾听来自别人的反馈。我们的教练是 ACM/ICPC 奖牌得主,也曾带队其它学生参赛获奖,此外还是大型科技公司中富有经验的面试官。我们保证你投入到面试准备的每一滴汗水都能有充分的回报。

以下是往期学生对 AlgoTogether 的评价:

SKY:作为第一期的学员,还是非常推荐这个项目的。教练很上心水平也很高,有问必答。每周的资料都很有针对性,涵盖面很广。最后一周还有教练自己收集总结的的最新大厂 OA 以及面试题,受益匪浅,在这里说一声谢谢。

罗凯:第一期学员发表一下感想。1.题目归纳的很有条理,基本上跟着项目走下来 leetcode 上大部分题目都有思路了。 2.教练业界经验很丰富,回答了很多关于实际工作的问题,也给出了很多代码风格如何优化的建议。3.同学都很认真,每周一次 mock 的时候听同学讲也收获挺多的。很多题目的想法是 leetcode discussion 里面也没有的。教练也非常有耐心,有一次周二晚上讲一个比较难的题目,一直讨论了快半小时,我这边东边都11点多了。4.项目每周大概十个题,要都弄懂还是要花点时间的。做 mock 对真实面试帮助挺大,需要自己思路清晰,代码能跑到把代码讲清楚这之间也是有距离的,需要练习一下。

为了保证跟面试和工作环境一致,整个 AlgoTogether 采用全英语沟通。以下是 AlgoTogether 的详细信息及报名链接。$800 的 early bird 价格到 8 月 29 日周六结束,之后将变为 $1,000 的正常价格。

What is this program?

AlgoTogether is an algorithmic problem study group with a coach. The program focuses on all necessary skills for coding interviews: problem-solving, coding, debugging, articulating solutions, taking feedback. The coach leads the meetings and mock interviews and makes sure that students learn these skills in a way that they can reapply to new problems in real interviews.

What is the value of this program?

  1. Understand how an interviewer evaluates you. You are evaluated beyond correctness and optimality. If a company only evaluates these two it will replace human interviewers with LeetCode to save money. You should learn what’s missing beyond your LeetCode practice.
  2. Practice like you are in an interview. You will practice articulating your solution to an interviewer and taking hint or feedback from an interviewer. That’s what you don’t experience if you simply practice with LeetCode.
  3. Hold yourself accountable. Are you willing to commit to finishing a certain amount of problems within a specific time frame? If you can commit, we will hold you accountable and prevent you from slacking.

Who is this program for?

People who are highly committed to getting a software engineer job at one of the well-established tech companies. It’s best for people who are seeking a software engineer job for the first time, for example, newly graduated students. It’s also good for experienced software engineers who haven’t done interview preparation for more than a year.

What is the structure of the program?

The program is 9-week long. We meet in Zoom 3 times a week and practice together offline through other days.

Each week the coach picks a theme (e.g. dynamic programming) and assigns 10+ problems within this theme. You have one week to work on them. Then all students submit their solutions, share their thinking processes, vote on other students’ sharing, practice presenting solutions, and get mock interviews. The coach will provide support and feedback throughout the whole process.

We meet on Wednesday, Saturday, and Sunday 7 pm (Pacific Time) in Zoom to have lectures, office hours, solution presentations, and mock interviews. We convene on Slack on the other days at 7 pm (Pacific Time) to discuss a focus topic.

Who is the coach?

Our coach has many years of experience working and interviewing candidates at well-established tech companies. He is also an ACM/ICPC algorithm competition medalist and has coached other students for the competition.

How much does it cost?

Early Bird: $800. (Before 8/22 23:59 Pacific Time.)

Regular: $1,000. (After 8/23 00:00 Pacific Time.)

We think it’s the right price to identify committed students and hold everybody accountable. You will be able to pay with a credit card. It’s non-refundable once the payment goes through.

When does the program start?

We start on 8/29 Saturday and end on 11/1 Sunday. We plan to stop accepting signup and payment on 8/28 23:59 Pacific Time.

How do I sign up and pay?

Please open the following page and click the “purchase” button to start. We will contact you through email after successful payment:

https://chen.cat/algotogether

Update: Please open the link from above and check out the latest program’s date and price, and then signup.

2020年6月29日星期一

《牛油果烤面包》回顾(Part 5 - 中国)

我在这个系列的第一篇文章里面就说到过,当初为了用最低的成本和最短的时间把节目推上线,我们选择了使用 Anchor 这个平台做发布。它如同 YouTube 一样免费和易用,当然也如同 YouTube 一样无法在中国访问。在节目上线后我们很快就意识到这个问题,于是费了很大功夫进行调整。


喜马拉雅是我们的第一个尝试,因为它是国内的平台所以它有义务保证内容可以在国内访问到。在得知 Anchor 在中国无法访问时,我们第一时间去注册了喜马拉雅,并且把我们的节目同步发布到喜马拉雅。之后斯图亚特还去注册了企鹅 FM 和荔枝 FM,但因为手工多平台发布的成本高,但又收获不了多少收听次数,最终放弃了。现在国内的平台就只做喜马拉雅。

提到喜马拉雅就不得不提一下 Apple Podcasts 在中国那一套心照不宣的特殊做法。如果你正常地使用 Podcasts Connect 提交一个播客的 RSS,默认这个节目不会出现在中国区。Apple 通知你节目通过审核时,这仅仅是意味着节目通过了 RSS 格式审核,但这跟中国一点关系都没有。之后 Apple 会默默地审核你的内容,决定你是否能发布到中国区,整个过程不会有任何的沟通,审核不通过也无法上诉。因为我们一开始使用的是 Anchor,它的 RSS 在中国根本无法访问,自然 Apple 不会把我们的节目发布到中国区。

想要把节目发布到 Apple Podcasts 的中国区,民间有一个办法,那就是用喜马拉雅导出的 RSS。因为喜马拉雅本身在中国,所以 Apple 乐意发布任何来自喜马拉雅的 RSS。为此我们专门在喜马拉雅后台申请了导出 RSS,然后把 RSS 添加到 Podcasts Connect。为了避免听众看到我们的 Apple Podcasts 上有两个节目分不清哪个是哪个,我们把喜马拉雅导出的那个叫做牛油果烤面包中国版


考虑到喜马拉雅不是一个泛用型播客平台,为了方便中国的听众使用 Overcast、Pocket Casts、Castro 等泛用型播客应用收听,我们又花钱购买了 Typlog 的服务并且把每一集的内容同步发布到 Typlog。作为付费平台,Typlog 的灵活性比 Anchor 和喜马拉雅都要好很多,而且大多数时候能在中国访问到,不过也有极少数时候用户会报告不能访问。

Typlog 值得一提的是节目文本内容的编辑灵活性。Anchor 和喜马拉雅对内容都是有限制的:Anchor 不允许多层套叠的 bullet points,如果我们写了多层的就必须手工改为一层的。喜马拉雅连 bullet points 都不支持,只能人手在每一行文本前加个星号表示这几行是个 bullet points。Typlog 完全没有这些限制,而且可以用 Markdown 语法来写,非常符合我的编辑习惯。

在建立好 Typlog 发布后,我们就逐步把各个平台收录的 RSS 地址从 Anchor 改为 Typlog 了。这样做是为了保证中国听众就算是通过 Overcast、Pocket Casts、Castro 等平台搜索到我们节目后能正常收听。可惜最近发生了一系列事情,使得很多这些泛用型播客应用被 Apple 中国区下架了,估计这些应用的中国用户将来只会变得越来越少。


最后,为了保证我们的品牌、域名和链接掌握在我们手上,不受任何一个发布平台的干预和限制,我选择了建立我们自己的网站。我们的域名 avocadotoast.live 最初只是简单地指向到我们的 Anchor 页面或喜马拉雅页面(根据访问来源国家智能指向),但这样子我们得不到任何网站分析数据,不知道有多少来自中国的用户因为指向错误而打不开 Anchor。为此我决定利用静态网站生成器编写我们自己的网站,每一集节目都要能在我们的网站上打开和播放。

网站的主体是我一个周末连夜赶工做出来的,之后花了不少时间打磨和提升自动化程度。现在只要我们发布到 Typlog、喜马拉雅或 Anchor,我们的网站就会自动更新,保证最新一集总能在我们自己的网站上看到。为了兼容中国和非中国用户的体验,我们的网站还设计为从多个音频来源进行播放,如果其中一个音频来源播放失败就自动切换到下一个音频来源。这样就算中国听众无法访问某些音频来源,最终还是会切换到喜马拉雅的音频来源从而保证播放。

制作这个网站的详细技术抉择我觉得可以单独写一个系列,就不在这里详细展开。有兴趣了解这个项目背后细节的话,请通过邮件RSS/Atom 进行订阅。如果我接下来还有时间继续写这个系列的话,我会写一写我们进行远程录音的经验。尽管我之前已经写过录音剪辑经验,但现在大家不能面对面录音了所以我们又摸索了一套新方法来做远程录音。这个话题我们下次再聊。

2020年6月28日星期日

《牛油果烤面包》回顾(Part 4 - 选题)

之前写了 3 篇《牛油果烤面包》的满月回顾(1 2 3),现在准备继续写下去。当然满月早就过了,甚至连半年都不止了,然而又没到一周年,所以文章标题就不再提及时间啦。上次我们说到了我们从个大平台都能获取到什么样的收听数据,那这次我们就说一说我们是怎么做选题的吧。

要说选题,那必须先说一下我们的受众定位。这在我们几位主播之间其实没有非常统一的观点,我们有人更在乎在美国的中文听众,也有人更在乎来自中国的听众。来自中国的听众又可以细分为更多的类型:有些是已经接触到比较多英文信息和海外信息的,那就比较类似在美国的中文听众;有些技术研究得很深入但只熟悉中文的术语,遇到英文的就比较难听进去;有些技术了解不深,希望多听听浅显易懂的科普内容,对深入话题不感兴趣。因为我们在这方面没有统一,所以选题时也没有刻意针对哪一种中文听众类型来做,每一期的受众会略微不一样。


我们选题一般会有两种风格:一种是侧重专业性的,一种是侧重娱乐性的。前者的目标是让听众爽,后者更多是主播和嘉宾自己爽。

我们先说说前者吧,我们在做这类选题时一般优先从我们身边的朋友里找专业人士,想想他们熟悉的专业内容如何能够塑造成相对科普一点的话题,保证讲述过程中的趣味性和故事性。然后我们就会跟这些朋友说,希望找他们来录一期节目,问一下他们是否愿意,然后再协商什么能说什么不能说。因为他们工作领域和公司的限制,可能有些事情他们能多说,有些事情他们不能说,这些都是要提前说好的。

因为我们强调自己是一个科技性的节目,所以我们找的很多专业人士都是自己的同行,也就是科技行业的从业人员。推荐系统人工智能硬件加速人工智能在传统行业的落地搜索引擎计算机视觉激光雷达都属于这种类型的节目。当然我们身边也有不少朋友在非科技领域有非常深入的见解,我们也会请他们来介绍他们的专业。私人飞行执照美国公务员美国个税疾控中心Airbnb 短租房东桌游电子游戏都属于这种类型的节目,因为作为主播我们自己也不是很懂,所以录制节目的过程也是我们自己学习的过程。

至于娱乐性节目,主要就是我们自己想要说,说完了还想要分享给大家听,所以我们就录了。这方面的选题是非常随性的,总之有主播想要录,我们有档期就录。这类型的节目包括互联网信息获取在家办公台北旅游托斯卡纳旅游伊朗旅游。此外还有一些选题是介于专业性和娱乐性之间的,我们做不到非常有深度的专业内容,但我们觉得嘉宾有独到的经历和见解非常值得分享,于是我们就会去录:中美互联网公司异同美国裁员冻卵硅谷春晚

最后还有一类特殊的选题,叫做蹭热点。我们还是希望我们的节目能够获得快速增长的,而蹭热点有时候是个很有效的办法,虽然不一定能成功。(这是我在知乎回答问题的经验啦,回顾了一下得票最多的答案,有一部分是蹭热点而来的。)这部分选题的时效性非常强,某个事件发生后必须尽快完成录音、制作和发布。我们的第一期节目iPhone 11 发布会就是这种类型,后面还有BlizzCon、CES(1 2)以及下周马上要发布的 WWDC。


回顾我们的选题,从播放量来看最可靠的是专业性题材的节目。这些节目我们可以持续做,只要我们能够一直找到新的专业话题,在一定程度上来说我们可以「量产」这种类型的节目,而且每一集都会有比较高的播放次数,但并不是最高的播放次数。那最高的播放次数来自什么呢?这需要的不是专业见解,而是情绪上的刺激。要让听众一看到题目就能产生情绪上的反应,以下是一些例子:

  • 美国裁员这一集刺激的是大家恐惧的情绪。在美国拿着工作签证的人都知道,一旦被裁员那就有可能被迫离开美国,之前那么多年投资在留学和工作上,就差那么一点拿不到绿卡是一个巨大的损失。这一集的播放次数非常高。
  • 中美互联网公司差异成功的刺激到了中国程序员对行业内卷的负面情绪,大家都想了解一下其它国家的互联网行业从业体验是怎样的,所以播放次数也很好。
  • 搜索引擎通过在标题中提及百度的没落而刺激到了中国网民对百度的厌恶情绪,很多人不仅仅收听了这一集的节目,还在评论种表达了对百度的不满。

有意思的是,人类确实更容易受负面情绪的驱动,在收听播客时也如此。这是现代市场推广所才去的一个常见手段,当然最终会导致民众两极分化,这又是一个新的问题。我们在选题时不会刻意的去选择挑起负面情绪的话题,但从结果上来看确实这样的话题效果更好。

2020年6月22日星期一

为什么美国网银转账那么慢:ACH 详解

我刚刚来到美国时就发现美国网银的转账速度很慢,往往中国网银一天甚至实时能完成的转账,在美国需要三天甚至更久,不过后来习惯了也就没再仔细思考这件事情。我最近加入了 Robinhood 的 Funding 团队,我们团队负责用户资金转进、转出 Robinhood 账户,为此我好好学习了一下美国网银转账背后所使用的 ACH Transfer 机制。现在终于可以来向大家解释一下为什么美国银行的转账速度那么慢了。

我这篇文章主要参考了 Gusto 关于 ACH 的系列博客(1 2 3 4 5),大家喜欢看原文的话可以去看看。在开始之前,我们来解释一下下文要用到的概念:

  • ACH:Automatic Clearing House。这是一套自动清算系统,是金融机构之间使用计算机进行自动清算的协议。
  • NACHA:National Automated Clearing House Association。这是一个制订 ACH 标准协议的机构,并且负责管理 ACH 网络。
  • Federal Reserve。美联储,实际运营 ACH 网络的机构。
  • ODFI:Originating Depository Financial Institution。这是代表发起 ACH 操作一方的发起方银行。
  • RDFI:Receiving Depository Financial Institution。这是代表 ACH 操作接受一方的接受方银行。

在美国的金融机构之间进行金额不是很大的转账,往往使用的都是 ACH。一个 ACH 操作中通常会涉及到 5 个参与者,他们分别是:发起方、发起方银行(ODFI)、美联储(Federal Reserve)、接受方银行(RDFI)、接受方。举个例子,Alice 是 Bob 的雇主,Alice 要发工资给 Bob,那么 Alice 就是发起方,Alice 的银行就是发起方银行,Bob 的银行就是接受方银行,Bob 就是接受方。

假设 Alice 发工资给 Bob 的那天算作第 1 天,Alice 的银行会要求 Alice 在特定时间(假设是 7:00 PM)之前发起这个操作,超过这个时间就算是下一个工作日的操作了。为此 Alice 必须在第一天的 7:00 PM 前发起一笔 ACH 操作转出 Bob 的工资,与此同时 Alice 的银行会在 Alic 的账户余额上减去 Bob 的工资。这是第一步。

Alice 的银行(也就是发起方银行)会在午夜把记录了这一笔 ACH 操作的 ACH 文件发给美联储,然后美联储把这个 ACH 文件转发给 Bob 的银行(也就是接受方银行)。这是第二步。

Bob 的银行会在第 2 天清早(假设是 5:00 AM)处理这一笔 ACH 操作,把工资加到 Bob 的账户余额上。这是第三步。如果一切顺利的话,事情到这里也就结束了,工资成功从 Alice 的账户转到 Bob 的账户上。但是如果发生异常的话,那就还有两步要走。

什么情况可能导致异常呢?Bob 可能填错账户号码了,Bob 可能把 checking account 错误标记为 savings account 了,Bob 还可能注销账户了,有各种原因可能导致异常。这些都叫做 ACH Return,会导致一笔 ACH 操作失败。值得注意的是,跟中国的网银不一样,Alice 作为发起方不仅仅可以转钱给 Bob,只要 Bob 签署了正确的 ACH 授权,Alice 还可以要求从 Bob 那里收钱回来。这时候 Bob 余额不足或者是 Bob 撤销授权等等的情况,都会导致异常。

在第三步里,Bob 的银行在第 2 天清早会处理这一笔 ACH 操作,如果它发现有异常的话它可以把 ACH Return 发给美联储,但这个 ACH Return 最晚可以在第 3 天结束之前发出。按照最坏的情况考虑,ACH Return 会在第 3 天和第 4 天之间的午夜由 Bob 的银行经过美联储发送给 Alice 的银行。这是第四步。

Alice 的银行会在第 4 天清早(再次假设是 5:00 AM)处理这一笔 ACH Return,然后把 Bob 的工资归还到 Alice 的账户余额上。这是第五步。整个过程耗费了 3 天的时间,准确来说是 3 个银行工作日(bank day)的时间。

一般来说,Alice 发工资给 Bob,如果 Bob 的银行没发生异常,Bob 是不会提出异议的,毕竟钱是多了而不是少了。但如果 Alice 发起的 ACH 操作是从 Bob 那里收钱,Bob 的银行没有遇到异常不代表 Bob 不会提出异议。跟 Bob 的银行不一样,Bob 本人有 60 天的时间提出异议(dispute),然后就会导致 ACH Return。Alice 的银行收到 ACH Return 之后,就要把已经给了 Alice 的钱拿回去。如果 Alice 的账户已经没有那么多钱了,Alice 的银行就赔钱了。

因此 Alice 的银行进行 ACH 操作向 Bob 收钱后,收回来的钱该不该给 Alice,是全额个 Alice 还是部分给 Alice,具体什么时候给,这些都是开放性问题,不同的银行会做不同的策略。有些银行会等到第 4 天才把钱给 Alice,因为第 3 天结束后 Bob 的银行就不再可能因为异常(如 Bob 账户余额不足)而返回 ACH Return 了。

有些银行会因为 Alice 长期的良好表现而信任 Alice,在第 2 天就提前把全额或部分给 Alice。如果金额比较大,Alice 的银行担心 Bob 在第 3 天结束后提出异议,那 Alice 的银行还可能要进行更多的沟通协调,向 Bob 的银行确认这真的是 Bob 授权了的,那就会拖更长的时间。


希望上述信息能够解释清楚为什么美国的网银转账这么慢。

如果大家对 ACH 文件的格式感兴趣的话,可以读一读这篇文章,里面做了简单介绍。实际的文件格式,请以 NACHA 官方手册为准,那是一本几厘米厚的砖头书籍,我们 Funding 团队就有一本今年最新版本的。

2020年4月30日星期四

Real Dev 测评

Real Dev 是一个我称之为「实战项目的 LeetCode 平台」。跟 LeetCode 相似的地方是,Real Dev 也是一个 OJ (Online Judge);跟 LeetCode 不同的是,Real Dev 不需要大家解决算法难题,但要大家解决工业界常见的实战问题。举个例子,Real Dev 的 Hello World 问题要求大家做一个最简单的 web 服务器,打开 /hello 页面的话服务器要返回 "REAL WORLD"

以下一些是 Real Dev 的问题:自动完成组件(Autocomplete/Typeahead)、短地址生成服务、数据分页 API、响应式配色、JavaScript 到 TypeScript 迁移、克隆 Yelp。这些项目比 LeetCode 的算法题更贴近工业界,更像是软件工程师日常工作需要做的事情。做这些项目时需要用到的技术框架也是工业界所用的:Node.js + Express 或者是 Python + Django。

优点

  • 解题过程更像是软件工程师日常工作。
  • 能够练习使用常见框架,例如 Express 和 Django。
  • 有官方的问题讨论板块

缺点

  • 题目数量不够多。
  • 每道题都要从头开始搭架子。

这次的测评不附送任何折扣链接。Real Dev 是我以前在 Facebook 的同事离开 Facebook 之后做的,他们现在正在做全站打折,由每个月 $20 打折到 $10,这已经是非常便宜的价钱了。大家想要试用的话,直接打开 https://real.dev/ 就可以了,有一部分题目是免费也能访问的。

2020年4月24日星期五

AlgoTogether 算法学习小组(第二期招生)

更新:请访问 AlgoTogether 新版网站,了解最新一期的时间和价格,并进行报名。

我开了一个叫做 AlgoTogether 的算法学习小组,面向在美国寻求软件工程师工作(实习或全职)的人。第一期学习小组的效果不错,学生对项目打分 4.3/5.0 分,对老师打分 4.7/5.0 分(数据),所以我决定开第二期学习小组。针对第一期学生的反馈,我对第二期学习小组进行了调整,最主要的区别是增加了模拟面试的环节。

我知道仅仅通过 LeetCode 准备算法面试是不够的,因为面试并不以题解的优劣来衡量你。你需要让面试官想要和你共事,这需要说服他你能跟他一起通过编程解决难题。AlgoTogether 是一个有教练指导的学习小组,帮助你训练多方面的面试能力,让你在面试时成为面试官的最佳未来同事。在这个学习小组中,你不仅仅需要解题和编码,你还需要练习沟通你的解题思路、接受模拟面试和倾听来自别人的反馈。我们的教练是 ACM/ICPC 奖牌得主,也曾带队其它学生参赛获奖,此外还是大型科技公司中富有经验的面试官。我们保证你投入到面试准备的每一滴汗水都能有充分的回报。

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

What is this program?

AlgoTogether is an algorithmic problem study group with a coach. The program focuses on all necessary skills for coding interviews: problem-solving, coding, debugging, articulating solutions, taking feedback. The coach leads the meetings and mock interviews and makes sure that students learn these skills in a way that they can reapply to new problems in real interviews.

What is the value of this program?

  1. Understand how an interviewer evaluates you. You are evaluated beyond correctness and optimality. If a company only evaluates these two it will replace human interviewers with LeetCode to save money. You should learn what’s missing beyond your LeetCode practice.
  2. Practice like you are in an interview. You will practice articulating your solution to an interviewer and taking hint or feedback from an interviewer. That’s what you don’t experience if you simply practice with LeetCode.
  3. Hold yourself accountable. Are you willing to commit to finishing a certain amount of problems within a specific time frame? If you can make the commitment, we will hold you accountable and prevent you from slacking.

Who is this program for?

People who are highly committed to getting a software engineer job at one of the well-established tech companies. It’s best for people who are seeking a software engineer job for the first time, for example, newly graduated students. It’s also good for experienced software engineers who haven’t done interview preparation for more than a year.

What is the structure of the program?

The program is 8-week long. Each week the coach picks a theme and assigns problems within this theme. Students have one week to work on them. Then they present their solutions and get mock interviews at the weekend meeting. If they need help they can join the mid-week meeting to discuss. The coach will lead both meetings.

Who is the coach?

Our coach has many years of experience working and interviewing candidates at well-established tech companies. He is also an ACM/ICPC algorithm competition medalist and has coached other students for the competition.

How much does it cost?

$800. We think it’s the right price to identify committed students and hold everybody accountable. You will be able to pay us through a credit card. It’s non-refundable once the payment goes through.

How do I sign up and pay?

Please fill out the information in the following signup form:

https://chen.cat/algotogether–2020q2

We might not be able to accommodate everybody. We will contact you through email with payment instructions if you are selected.

Update: Please visit AlgoTogether’s new website for the latest program’s date and price, and then signup.