I was perusing Hacker News last week when I encountered a link subtlely titled "System Design Interview Book Review". Curious, I checked out the article-- it was a review of a resource I'd never heard of called, "System Design Interview: an Insider's Guide".
I was floored by this review! The following are quotes directly from the article:
"...the most "real-world" systems design book I've come across that does a solid effort to teach concepts, step by step, to people who have yet to work at systems at scale..."
"...a solid recommend from me: and not just for preparing for the systems design interview, but to strengthen your systems design muscle for the day-to-day."
Now, this was written by an engineer who's worked at Uber, Skype, and JP Morgan. All those companies maintain some serious, mission critical, large-scale software systems. If he says it's a good read, you'd better believe it.
I checked the course out and found it to be the perfect compliment to AlgoDaily. The same way we focus our learning around problems, Systems Design Interview focuses on real world use cases. What I love is the systems covered include ones you'll likely build as a software engineer in 2021: a web crawler, news feed, autocomplete, Google Drive, key-value store, etc.
Check out "System Design Interview: an Insider's Guide" today! I highly recommend it.
Hi friends,
This is the last call to join the the first cohort of our 60-day coding interview crash course, running from January 4th to February 28th. I'll be going through the course with everyone and will post biweekly updates. If you've already emailed us about joining, you're already accounted for! This will be the final general email about the crash course. All future updates will only be sent to crash course participants.
For those on the fence, here are some answers to frequently asked questions:
What is this? - When I surveyed existing students, the biggest issue wasn't understanding the material, it was making the time to go through the course and having support when needed. The goal is to work through this shortened curriculum together, and have access to others in the community that are working through the same lessons and problems. And since I'll be going through the course with everyone, my inbox (and the team's) is available for any questions you might have about the material. As it'll be top of mind, you'll get help much faster and from multiple sources.
What's required of me? - Simply check your dashboard for each week, and do the work! If you have any questions or feedback about the material, post in the forum or email team@algodaily.com. After the 8 weeks, if you found it useful or land a job, please let us know and consider helping us with an email or video testimonial, or by sharing the site. Share your progress on social with hashtag #algodaily or #algodaily60!
How much time will this take? - Expect it to take about 10-20 hours a week, depending how much you choose to take on.
I don't have time to work through all of the tutorials this week. - No problem. It is A LOT of work to go through all the suggested material each week. As long as you're making strides every day, you can always catch up after the 8 weeks. We try to have one big "focus" for each week (e.g. "trees" or "linked lists"), so you get a chance to catch up each time.
What's in it for you, Jake? - Great question! The big focus of 2021 is not about pumping out more content, but ensuring student success. It is extremely helpful for me and the team to get feedback on what tutorials are confusing, where folks are getting stuck, if there are bugs on the platform, and how we can help you land a better job. Shout out to members Ray, Dmitry, Jacob, and bsanneh for providing useful feedback in just the last few days.
How much will this cost? - It's tacked on as part of our premium membership. If you're already a premium member, just email us to get updates. We think this is extremely fair given that similar cohort based courses are typically in the $1000 - $7000 range. Can't afford the course? I still want to help! Subscribe to the youtube channel for free coding video tutorials.
OK, let's do it! How do I get started? - Reply back to this email for updates as we work through the next 8 weeks. If you've already expressed interest, you're on our list. Feel free to share this on social with hashtag #algodaily or #algodaily60!
Most developers, particularly junior engineers, are wary of systems design interviews. The assumption is that, while algorithms are difficult to master, they can be learned with sufficient practice.
But systems design interviews seem more daunting because of how open ended they are. In the real world, the architecture of a system takes weeks or months to properly think through and plan for. During interviews, not only are you tasked with designing one in 45 minutes, but you may not even have the proper building blocks at this stage in your career.
How can you build a scalable chat app without understanding event queues? Or architect a fast search engine without knowing about indexing?
The fastest way I've found to grasp these building blocks is to seek out existing scalable systems. We can work backwards-- there are certain pieces of software that have revolutionized the industry, and their original white papers often reveal secrets to reliability and scalability.
To that end, we have a surprise at AlgoDaily! We've summarized 7 of the most famous software white papers, and outlined them in plain English. If you go through one a day (roughly 15 minutes per read), you'll be in the zone come interview time.
The above outlines are included as part of the full course, and are immediately accessible to all existing premium members. If you find it useful, we'd love to know!
Not a member? Buy today at the following link: https://algodaily.com/subscriptions/discounted, now 50% off! We'll continue to update you as we add new content.
There's a few computer science principles that can be surprisingly applied to general life. As an example, the notion of greedy algorithms. One can liken the idea of optimal choice at every iteration to trying your best daily so that it works out over the long term -- seems reasonable.
Another one is the idea of instructions, that is, single operations for the processor. Code in aggregate is difficult to comprehend, but when taken line by line, make for a narrative of sorts. The key is that the big concepts are broken down as much as possible, to the point where the processor can accomplish a single task.
This works outside of computer science too. The notion of building a great career over 40 years can be intimidating, but can also be broken down: are you improving technically? Are you taking on harder tasks? Do you demonstrate enthusiasm?
Let's say you do want to improve technically. What area do you want to improve? Maybe your database systems knowledge needs some work. Perhaps you haven't worked much in the browser, but want to learn more.
Once you've determined the area, the actual step may be to read an article or watch a video on the topic. At this point, you have an actionable task that you can do and check off, knowing full well that you've made progress toward your goal. You can't decide that this afternoon you want to "build a great career" or "master database systems", but you can go through a few Lynda videos on the topic or scaffold an app.
If you've been meaning to start something and have been feeling resistance, try breaking things down until you can do something, and see if that helps.
I'm trying something new: AlgoDaily was created to help developers land their dream jobs, but a huge part of why we want them is to build wealth for ourselves and loved ones. I'm going to start profiling software engineers from humble means who've built generational wealth, both on Twitter and this newsletter.
As of this writing, there's a lot of political unrest in the United States-- but imagine growing up in an environment far worse and having to flee. Jan Koum grew up by Kyiv, Ukraine before moving to California, and his family had to rely on a social support program to get by.
Growing up, he often got into trouble, and barely graduated high school. What kept him going was a deep interest in computing and networking, which he tended to by buying and returning books as soon as he read them.
Eventually, he became skilled enough to land a job at the former powerhouse Yahoo!, and quit college to work there full time. But like many smart engineers, he eventually got bored and looked for opportunities outside of Yahoo! One of them was Facebook, but he was quickly rejected.
Not one to despair, Jan kept on looking for new ideas and eventually bought an iPhone. Realizing that this was going to change the way people interacted forever, he started working with a friend to build a communication app for it. He chose the name WhatsApp because it sounded like “what’s up”.
At first, WhatsApp was largely unpopular— but then Apple added “push notifications”, making it much more useful. By the time a fellow named Mark Zuckerberg asked Jan to dinner to discuss a deal, the app had 400 million users. Today it has over 2 billion.
The big takeaways from Jan’s story? First, rejection can lead to an even better path in life. And secondly, technological shifts reveal some of the best business opportunities and pivots.
If you learned something from this thread, consider following me on Twitter at @jzraps. Also be sure to check out the most accessible technical interview course available-- sale extended through this weekend.
We'll send you 100+ of the most common coding interview questions, once a day with visual explanations. Join over 53,000+ users who are doubling their salaries in 30 minutes a day.
Welcome to the most accessible guide to technical interviews. AlgoDaily was created to be a gentle, visual introduction to patterns around solving data structures and algorithms challenges.
We believe that technical interviews are a matter of practicing well. We've referenced hundreds of resources on habit change, education design, and algorithms to design the best and most streamlined learning experience.