Awesome Free Resources for Software Engineers (and Aspiring Software Engineers)
How websites like HackerNoon, FreeCodeCamp, and TechInterviewHandbook provide free content that rivals that of paid resources
I wrote an article on FreeCodeCamp called Coding Interview Prep — Free Resources to Help You Ace Your Interviews…to be completely clear, that’s what the EDITOR called it. The title may leave the reader with the false impression that I am some sort of algorithms expert, which I certainly am not — the original title was “Consolidated Free Resources,” mostly consisting of things like LeetCode mappings to Cracking the Coding Interview (since the book costs money, you can at least find free versions of the questions for free), HackerNoon versions of Educative resources (by the Educative authors, maybe as “free samples,”), and various GitHub pages, one by the author of Cracking the Coding Interview herself.
A few days ago, I made some edits because the author of The 30-minute guide to rocking your next coding interview made some updates. He also made Tech Interview Handbook, which has nearly 70,000 stars on GitHub, wrapped the whole thing in his own website for ease of use, and upgraded his LeetCode list, which had several thousand upvotes. Best of all, he gave it to us for free.
What is this obsession with LeetCode?
I think LeetCode has become synonymous with whiteboard-style coding interview questions, when in reality LeetCode is a valuable(mostly) free resource for coding interview preparation. That being said, virtually everyone I have talked to acknowledges that coding interviews in this style are part of an imperfect system — maybe one day we will have a good alternative, and we can stop saying LeetCode once and for all.
Yes, I am aware that it is ironic of me to post this on Medium…but tech content on Medium has issues. Most of it is paywall-blocked. Even content on major Medium publications is sometimes riddled with misinformation. To top it all off, many trending Medium tech articles tend to be click-baity, controversial, and discouraging. Imagine being a young, aspiring software engineer who understands basic syntax and wants to learn more. Then you are greeted by a discouraging article like this that was likely not even written by someone who knows how to code, yet still likely makes about $100 per garbage post about why you SHOULDN’T.
So, as a reminder: Yes, there ARE people building out resources to encourage newcomers in their journey. Some of them are on YouTube. One of them invented a side project called Khan Academy. But if you cannot afford a Medium subscription, I suppose you will have to wait a month for more free clicks — you definitely should not click on the toolbar in order to open a private window, or clear your cache. That would never work.
If you want to become a software engineer, you have to pass 2 behavioral interviews, 10 coding interviews, 3 system design interviews, kill a dragon, and say “test-driven development” at least 20 times to the company CEO. Okay, I am exaggerating…but you will probably have to go through both a coding interview and a system design interview.
This, System Design Primer, is a free GitHub location and such a good resource that even Pramp simply redirects to System Design Primer for most of its system design section. I find this a little bit crummy, and I also said “system design” way too many times just now, but it is what it is. I suppose it is the same way I would feel if Microsoft released their own “free online bootcamp,” but their “free online bootcamp” was just a bunch of links to YouTube.
The Quest For Educative Alternatives
Okay, I am back to my hypothetical scenario. So there is this hypothetical aspiring software engineer…16, living in San Francisco, with one single parent struggling to make ends meet, one sister supported by a household income of less than $35,000 a year, and attending a high school where more than 70% of the students qualify as low-income. These are the kinds of people resources like FreeCodeCamp can help. They can’t afford a tutor, but they can stream YouTube videos to learn to code. They can’t afford their own specialized hardware, but they can use FreeCodeCamp and repl.it for the playgrounds…or download their own free software packages to set up their own environments.
All of that being said, I still keep returning to Educative because it is:
- A one-stop-shop. If you are working through a coding tutorial, you can compile your code in a dedicated window they provide. If you are working through a docker tutorial, you can load images and access containers from their own tiny Linux machine. Your average free resource is not as seamless or as professional-looking
- Well-written, almost universally so. It also appeals to your average person’s learning preference in that there are multiple choice quizzes, coding quizzes, and coding examples you can play with
- Available. You pay, and you get what you pay for
Educative is a little bit like W3Schools, if W3Schools also extended to a wide variety of other coding and technology-related concepts.
I am sure the FreeCodeCamp team will keep doing what they can, but to this day I have never seen an educational resource quite as good as Educative.
What inspired this post? Yangshun Tay. He asked that I update the FreeCodeCamp article to link to his new work, and his TechInterviewHandbook is everything I had only dreamed of creating, and more. He is a frontend engineer at Meta, and he designed it. He made it user-friendly, he consolidated it, and he released as much free content as he could in the hope of getting someone else, someone ambitious, access to a FAANG company without having to be rich, or the son of a CEO, or both.
Wait, is it still called FAANG? I think even Cramer, who invented the term, calls it MAMAA.