There is this nervous feeling that comes over us when we have an interview to sit for.
For tech students or professionals who want to work in the world’s top tech companies, scaling the tech interviews isn’t something to scoff at.
Not especially when the interview deadline is close.
The next question will be what is the best software to use to prepare in such a short time?
I invite you to come along as I dissect Grokking the Coding Interview course.
The naming has dropped a hint. The course only teaches coding.
Let’s see if the course is worth buying and whether it’s really the messiah to invoke if you need to prepare for an interview fast.
Table of Contents
Overview of Grokking the Coding Interview
Grokking the Coding Interview is a software platform for aspiring software engineers to practice their skills while preparing for coding interviews.
Unlike many other coding interview prep courses, Grokking doesn’t go into in-depth teaching of coding.
There are no videos to watch, whether pre-recorded or live. Everything is based on text.
That’s because the platform is not meant for the usual classroom style of preparation when a student has enough time.
Instead, the course is designed for when users don’t have much time left to prepare for a coding interview but don’t want to take the tests completely unprepared.
Think of it like going for fast food rather than a luxurious gourmet.
Grokking’s teaching method strikes the middle ground between college-style teaching and merely practising from a database of questions.
Of course, you’ll also get to solve past questions, and that’s because many tech companies like Facebook usually repeat many questions.
The main core of Grokking’s coaching is identifying patterns from a massive body of coding questions.
These patterns can then be applied to solve new questions.
Grokking’s team describes this technique as mapping a new problem to an already known problem.
Arslan Ahmad is the founder of Grokking. He is an ex-Facebook software engineer and has a lot of experience in coding.
Grokking is suitable for people who want to secure positions in FAANG companies. FAANG is the collective acronym for the big five companies, Facebook, Amazon, Apple, NetFlix and Google.
I explained earlier that Grokking helps learners identify patterns in coding problems that can be applied to new questions.
There are up to 17 patterns that sweep through nearly every coding aspect. We will talk about them in more detail later.
Grokking is not meant for newbies. And it’s not hard to know why. Remember, this is not a full training that starts from the fundamentals.
Users must have gotten conversant with the basics and even have some experience with coding.
Also, before joining the platform, there are some related courses you must take.
After completing the training, you also need to step up with additional courses.
N.B. It is not also for those who are not aiming for FAANG companies.
Grokking the Coding Interview Course Instructor
In this section, I’ll acquaint you more with the author of Grokking, Arslan Ahmad.
Arslan Ahmad is an indigene of Redmond in the United States.
He got his bachelor’s degree in Computer Sciences from the National University of Computer and Emerging Sciences from 1993 to 2003.
Later, he went on for his MPhill (Master of Philosophy) in the named courses.
He is a veteran coder and systems designer with 18 years of experience in the domains above.
Arslan worked first with Hulu as a Senior Developer from 2013 to 2014.
And later on, he worked with Facebook as a Distributed Storage expert from 2014 to 2018.
He is now the proud owner of Design Gurus, which Grokking is a subsidiary of.
Aside from Grokking the Coding Interview, Arslan also has Grokking the System Design Interview.
Grokking the Coding Interview Course Outline
Grokking offers a pretty exhaustive course outline.
But remember that this is not like some module where the next topic builds on the one before it.
That means that you can decide to revise the patterns in any order that suits you.
We will now examine the patterns.
As expected, there is an introduction to guide students through the course.
It contains information on who the course is meant for and what it contains.
2. Pattern: Sliding Window
Also known as windowing, this topic refers in basic terms to how data transfer between computer networks is controlled.
Every engineer should have a good understanding of sliding window, as failure to do so could result in faulty computer networks.
Besides, big companies such as the ones that dictate the internet rely on the sliding window technique to avoid congestion of traffic.
The topic is among the most commonly asked in a coding interview.
3. Pattern: Two Pointers
Two pointers are used to solve problems in the least time possible.
Every software engineer should know that the two pointer method helps rule out much redundant information.
Under this topic, one problem that tech interviews like asking candidates is the two-sum problem.
That means finding out which two elements in an array add to a number.
Running through every possible pair would take time but with the knowledge of two pointers, problems like that can be solved in a shorter amount of time.
4. Pattern: Fast & Slow pointers
Another name for this topic is the tortoise and hare method.
It talks about the use of two pointers to determine the traits of a directional data structure.
In many cases, the technique is used to find out if there is a cyclic list in a set of data.
It becomes clear that there is a cycle in the given set of data when the two pointers used meet at a point.
This is part of what coding students will learn on the Grokking platform because knowledge of fast and slow pointers is important for organising data.
5. Pattern: Merge Intervals
Another pattern that is considered in the course is merge intervals.
Basically, it refers to merging of all possible intervals from a given collection of intervals.
Questions on merge intervals are not child’s play as you have to know the fastest and most convenient way to approach them.
There are several approaches to solving problems on merge intervals. The question given will tell what approach to use.
On Grokking, students will learn how to interpret any question given and apply the best approach to solve it.
6. Pattern: Cyclic Sort
Cyclic sort is a complex topic that deals with algorithms. A tech interview candidate must be able to understand the principles behind it to get a particular array of information from an unorganised one.
And at the end of the day, a software engineer must be able to utilize his knowledge of cyclic sort to write programs that can be used to execute the process of cyclic sort.
7. Pattern: In-place Reversal of a LinkedList
Linked list is another topic that many problems are taken from. Computer systems whether on desktop or mobile make use of linked lists a lot.
That’s because these devices run on huge amounts of data. Linked lists is part of the computing tricks used to organise all that data and manipulate it without distorting the entire system.
But reversing a linked list can be a tricky hurdle which is why software engineers need to be able to handle problems on them to prove they are qualified to handle it in computer systems.
8. Pattern: Tree Breadth First Search
Tree breadth first search is a process that is connected with how data is organised.
In computer systems, points of communication between computer systems are often referred to as nodes.
Data is transmitted through these nodes. These nodes can in turn be arranged in a tree pattern or a non- hierarchical pattern.
In coding interviews, candidates will be required to be able to identify nodes on a tree that has certain properties by tracing from the root to all branches at a particular level and then to the next level.
With Grokking, a learner should be good to go in this area.
9. Pattern: Tree Depth First Search
Tree depth first search is just another way to search a tree data structure or graph data structures for a particular kind of node.
It’s like the tree breadth first search in module eight above. You start at the root but then explore as far as possible along each branch before going back to continue on another branch.
10. Pattern: Two Heaps
Two heaps is a coding pattern and type of data structure that has many uses.
Software engineers use it to solve a variety of problems such as scheduling tasks, finding the mean, median, and mode in a set of data, or implementing a priority queue e.t.c.
In this section of Grokking, users will learn how to identify heaps problems and tackle them successfully.
11. Pattern: Subsets
We may remember this topic from our maths classes in college. Well, for software engineers, it goes beyond the basics of what we were exposed to in college.
Of course, it is the basic principles that are being applied with some high level additions for more complex problems.
Some of the subtopics in this module include: subsets with duplicates, permutations, balanced parentheses, and more.
This topic is one that many tech companies are careful not to miss in their interviews as knowledge of subsets is crucial when designing software and hardware components that work well together.
12. Pattern: Modified Binary Search
Modified binary search is similar to the standard binary search except that it uses to solve problems that defy the use of the latter.
Competent coders need to be able to use the modified binary search to solve problems that might take the form below:
“Find the minimum element in a Rotated and Sorted array” or “Find the Pivot Element in the Rotated and Sorted array”
Is it next letter, number range, or minimum difference elements? All of that will be addressed in this module.
13. Pattern: Bitwise XOR
Bitwise XOR is a kind of logic operation used to trigger certain processes and functions.
It is a basis of algorithms which in turn form part of the basis for AI.
14. Pattern: Top ‘K’ Elements
K elements are among the key elements involved in sorting and arranging of data.
Amazon interviews usually feature questions on K elements a lot.
Popular sub-topics in this module include top K numbers, kth smallest numbers, connect numbers, etc.
15. Pattern: K-way merge
K-way merge talks about an algorithmic technique used to combine or merge data with specific properties.
If you are a software developer or engineer, you might have already used this skill.
And if not, suffice it to say that mainstream programming languages like Python use K-way merge in their functions.
16. Pattern: 0/1 Knapsack (Dynamic Programming)
In very crude terms, the 0/1 knapsack is an element of dynamic programming that runs on an all-or-nothing principle.
This and other associated methods are used to solve practical problems where one must get the most fruitful results with minimal effort or stress.
And it involves a significant amount of coding. Some of the subtopics here are; equal subset-sum partition, subset-sum, etc.
17. Pattern: Topological Sort (Graph)
Grokking can help coders cover a lot of ground in topological sort. Topological sort is a special algorithm that considers vertices and complex forms of graphs.
The topic has many applications in computer animation like 2d and 3d graphics.
Tech companies put a lot of emphasis on their design and animation sections. If you are a coder using Grokking to practice, you might find yourself in the animation section of the company you are applying for.
This portion is dedicated to the kth smallest number. It contains lessons on topics that readily come to the mind of coders. I mean issues like time and space complexity, max heap, etc.
This part is meant to prepare you for what to do after completing the Grokking the Coding Interview course.
It contains a list of recommended courses, such as the Grokking Dynamic Programming Patterns for Coding Interviews.
There are other recommended courses like the system design course offered by Grokking.
The other two are the Grokking the Advanced System Design Interview and Grokking the Object-Oriented Design Interview.
They all follow the pattern-based format of the course we are reviewing.
Grokking the Coding Interview has an exhaustive curriculum, but that is just a part of the story.
In this section of the review, we will look at what describes the course and the formula around which it is built.
1. Hands-on Coding Environment
Learning cannot occur simply by observing others. You need to jump right into what others are doing and try your hand.
This is one of the principles around which the Grokking the Coding Interview is built.
It features exhaustive lessons on each pattern and gives students a lot of room for practice.
2. Text-based Learning
One unique feature of the course is that none of the lessons are video tutorials.
They are text-based rest might look strange, but the assumption behind this choice is that you don’t have much time left to prepare.
It would help if you brushed up as fast as possible, thus ruling out the use of video since, according to the team, video can be time-wasting.
The argument is that the average speech rate in videos is 150 words per minute compared to the 250 words per minute count when one is reading.
It boils down to personal preference. Many people prefer learning through videos, so if this method spells boredom for you, you have to look elsewhere.
3. No Setup Required
There’s no need to start scrambling around for how to download any software.
The platform is entirely cloud-based and can be accessed from any browser.
You need a device (preferably a laptop or desktop) with a good internet connection.
4. Trackable Progress
Having a way to measure your progress when learning anything can do a lot to enhance the learning process.
That’s one of the benefits of using Grokking the Coding Interview. The platform has many exercises in each module for self-assessment.
There are also completion certificates that you can always keep in your archives and even add to your CV to try and gain an edge over others.
The benefits are double-sided. If you are not levelling up, you can go back and track the root of the problem
On the other hand, if you are acing the tests, it can give you the confidence to try harder.
Either way, you are gaining.
Grokking the Coding Interview: Pros and Cons
There are good reasons why we can’t afford to skip the pros and cons of the platform we are reviewing.
One reason is to isolate the key takeaways of the review quickly.
Another and more important reason is that no software is perfect. We must ensure that any software or platform that scales through our decision-making process is ticking enough of the right boxes.
I think the pros should be considered first.
- The lessons are comprehensive and cover almost all the arms of coding.
- An industry-leading expert in coding authors the program. Arslan Ahmad has worked not only as a software developer but also as a Team Lead and senior manager.
- There are numerous exercises and challenges for students to test themselves with.
- Lots of visual aids and other interactive content.
- The absence of video content for the training is, in my opinion, a bummer. This might force a potential user to have to look elsewhere for prep.
- The platform doesn’t teach any soft skills such as those involved in human relations and teamwork.
- The platform only focuses on coding. You will have to purchase other courses to level up with systems design and other aspects of software engineering.
- The platform is only restricted to coders with experience and those who want to apply to FAANG companies.
Grokking the Coding Interview (GCI) Pricing
Grokking the Coding Interview is offered by Educative.io
, a platform that gives access to hundreds of other courses.
You can get the GCI course for $47 yearly.
And if you want to have the full suite of courses that Educative.io offers, you should set aside a budget of $35 monthly.
Throughout this review, we have subjected Grokking the Coding Interview to the test. In a nutshell, what did we find out?
• The course is a quick way to brush up on coding essentials if you don’t have enough time left for full-fledged classroom-style learning.
• The course replaces the conventional video style of teaching with text-based resources.
• GCI can only help you with coding revision.
If the above tabulation rhythms with your needs, you’ll have no problem with the platform.
On the hand, you should consider alternatives if you:
• Have enough time left for a thorough study.
• Want an all-in-one tech interview prep course that will handle the four fundamentals of software engineering (coding, system design, data structures, and communication) in one package.
• Prefer learning through more interactive video content complete with mock interviews and a community.
• Can afford the extra cost of using more comprehensive learning platforms.