Allow us to introduce you to Yihua Zhang, a self-taught software engineer and an instructor at Zero to Mastery.
He’s answering burning questions such as:
ā Why is React “The One?“
ā What’s the best React hack?
ā Why are FAANG interviews so damn hard?
And more.
This post contains affiliate links. We may receive compensation if you buy something. Read our disclosure for more details.
Answers have been edited for clarity and brevity.
In today’s interview, Yihua Zhang dishes about his React course re-launch.
He also gives us some insight into what to expect at FAANG interviews.
1. Tell us about yourself. Who are you and what do you do?
My name is Yihua Zhang, and Iām a software engineer!
Iāve worked as a software engineer, digital transformation consultant and web development instructor for over 8 years now.
I currently consult as a senior software engineer as well as work a full time job as a tech lead for a Toronto-based startup called Bonsai.
2. Tell us about your (re-launched) React course.
The shorter answer is that I decided to fully re-record and re-launch my Complete React Developer course after seeing how much the React ecosystem had changed in the last two years.
And also because the best practices and patterns that have emerged with these changes have solidified.
Iām confident itās the most up-to-date React course out there and is the best course for learning the advanced React concepts that are actually used in the real world.
The Slightly Longer Answer
The slightly longer answer is this: I originally launched my course in 2019.
Over the subsequent years Iāve been working, consulting, and leading teams in large tech companies that work in React.
We’ve been finding and understanding the best patterns that scale within the React Ecosystem and all the new changes that have come in the past few years (React hooks, Firebase, context API, Apollo, Typescript, Redux, etc.).
The ecosystem and patterns change quickly in the world of React, but it takes time for these changes to get tested, scaled, and settled into best practices.
Enough time has passed now that the best practices have settled, and that means the time was right to update, re-record and re-launch the entire course.
The relaunch is a full re-launch.
The Much Longer Answer
In the JavaScript world, especially frontend, a year might as well be a lifetime when it comes to changing patterns and best practices.
With how fast things change, itās easy to get caught up in trends and want to work with the shiniest new thing.
But this is dangerous because a lot of the practices are still being discovered and tested.
The old patterns and practices may be clunkier than the new ones, but they are tried and true.
This is why I waited until I was certain and had seen first-hand how these best practices scaled before deciding it was time to update and relaunch the course.
For my React course the central tenant is this: teach the core fundamentals of React that give students the foundation for their whole career as a frontend developer.
By understanding the foundation of React and why it does things the way it does, students can look at any of the best practices, patterns, and libraries in the ecosystem and understand exactly where it fits in and what exactly it helps solve.
3. With all the JavaScript frameworks and libraries out there, why is React “The One?”
I think when talking about React being “The One,” I would more so speak to the popularity of React as opposed to React being superior to any other framework.
React mainly competes against Angular and Vue when it comes to the frontend framework world.
They each have their time and place and pros and cons.
(Before you yell at me, I will preface by saying that this is largely my opinion from my experience having worked with all three.)
When comparing the three, React and Vue are more similar to each other than either is to Angular.
Angular forces every developer to code in the Angular way.
React and Vue on the other hand are significantly more lightweight and the code you write feels like youāre just writing JavaScript.
There are numerous libraries and patterns developers can choose for solving problems; many of them being very different from one another.
Due to the lightweight nature of React combined with the lower cost of adoption for experienced JavaScript developers, React became the preferred solution for many smaller teams.
(And many of these previously smaller teams have now scaled up to become large tech enterprises that we know today!)
I think React may be more popular than Vue not necessarily due to the technical differences between the two, but due to React being created and maintained by Meta (Facebook).
Meta is one of the largest figureheads in the tech industry (the F in FAANG) and theyāve proven React can scale due to them using it in their own solutions.
4. What’s your favorite React hack?
This is not necessarily a hack, but Iāve been a huge fan of React Context since it came out.
So many projects donāt need the complexity and boilerplate that comes with Redux, nor the added overhead that comes with scaling Redux.
Many projects can go a long time with just React Context!
Itās a great way to implement global state management while keeping everything connected through Reactās render cycles and core practices.
If you want to see some of the reasons why I love React Context, Iāve made three lessons from my Complete React Developer course available here for you to check out.
5. Tell us about your FAANG interview prep course.
With my FAANG interview prep course, I wanted to teach students a simple mental framework on how to approach solving any interview problem.
Itās inevitable that to prepare for FAANG interviews youāll have to practice solving a lot of data structure and algorithm-based problems.
The problem is that many interviewees approach it by grinding through large question sets trying to memorize as many solutions as possible.
In the course I show that thereās a better way of practicing these problems.
The interview questions themselves are large complex puzzles that need to be broken apart, sequenced and understood before even writing a single line of code.
In my opinion, the process of understanding the problem and breaking it apart is actually the bulkiest part of the work required.
Even more so than the coding portion.
The course is designed to teach you my framework of how to systematically think through a problem, break it down into smaller subproblems, and figure out which data structures or algorithms can help you optimally solve each of those smaller problems.
(My fellow ZTM Instructor, Andrei Neagoie, has a great course to learn more about data structures and algorithms and prep for interviews).
6. Why are FAANG interviews so damn hard?
The process of FAANG interviews is actually designed to decrease the number of applicants since FAANG companies are the holy grail for most developers.
This means they get hundreds of thousands of applications a year, which is a Herculean task to sift through.
They want to set an incredibly high bar for their talent, but they also need to find them quickly, so as a result they offload a significant portion of the challenge onto the interviewees.
I do want to note that data structures and algorithms themselves are incredibly useful and powerful.
They are the reason technology is what it is today.
They aim to optimize and scale the underlying solutions for all of our modern technology, and they continue to be the foundation upon how we improve our technology.
For most developers, their day-to-day work wonāt require them to do anything remotely close to working with the kinds of problems theyāll see in the interview.
Data structures and algorithms is more of an academic topic that gets covered during a Software Engineering / Computer Science degree.
Many developers in our industry donāt have a technical degree but still are able to become a senior developer.
It just depends on if you happen to work in a space where there is a need to use these optimization and scalability tools.
Even if a developer does have a relevant degree, unless they work in a job that requires data structures and algorithms then theyāll likely forget a large majority of what they know about them.
Itās like a muscle that needs to be worked out and improved!
7. How long does it take to prepare for an interview at a FAANG company?
It varies from person to person.
Iād say it will range from 2-6 months for many, and possibly years for others.
It all depends on how well you can learn these topics, tackle the problems, handle your nerves, and perform during the interview.
Do not underestimate the time it takes to practice, especially as you apply for intermediate positions and beyond.
The algorithms and problems become much harder, and the expectations for the optimal solution increase.
8. What’s your favorite algorithm and why?
The algorithm is Hoareās tortoise and hare algorithm.
Itās actually an extremely easy algorithm to understand and implement.
Itās an algorithm that helps detect if thereās a cycle in a linked list.
The reason itās a very special algorithm for me and my favorite, is because itās the first algorithm where I put in the time into truly understanding why it works.
Not just how it works, but genuinely through mathematical and computer science proofs why it will always work (I actually teach the proof in my course!).
By truly understanding the proof of this algorithm, it helped me better understand the sheer amount of work it takes for computer scientists to create these solutions.
It genuinely helped me start seeing these data structures and algorithms as more than just a barrier to a great job.
9. As a self-taught developer, what would you do differently?
Honestly, nothing.
Iāve had an incredible ride of a career doing this, and all the mistakes and tumbles Iāve taken along the way have provided me with more personal growth than I could have ever imagined.
This career has changed my life, and not just because of the money.
I have made lifelong friends from peers who I deeply love and respect.
I have learned so many valuable lessons about hardship and life, and most importantly about myself.
I would like to say this to anyone reading this who is also self-taught and trying to figure it out: be kind to yourself.
You are putting in the effort to better yourself and change your life. Thatās an incredible thing.
Our industry is rife with self-doubt and imposter syndrome, but itās okay to stumble and fall.
Please be kinder to yourself and recognize that you decided today to try and be better than you were yesterday.
10. Is there anything else you’d like to add?
It wasnāt until I became a software engineer that I truly understood what Isaac Newton meant when he said:
I want to thank all my peers and mentors who helped me get to where I am today.
I am nothing but a reflection of all your efforts and toil and I hope to be able to pass it forward.
Specifically my dear friend Mo Binni (who is also a fellow ZTM Instructor) and a mentor in my own career.
It is incredibly important for any developer to find good mentors and peers.
Above all else, donāt rush the process. Enjoy it!
I also wanted to let you know that RealToughCandy readers get started with React: Iāve made the first hour of my course free so that you can learn the key concepts in React!
You can check it out right now by clicking here (no sign-up required).
Yihua Zhang Interview: Conclusion
In today’s interview, we looked at the re-launch of Yihua Zhang’s popular React course.
He also gave us some valuable insight into why FAANG interviews can be such a challenge.
A big shout out to Yihua Zhang for this interview!
For more more software developer interviews, check out our recommendations below.