21 Lessons from Building Clones On youtube
How to solidify your learning and grow as a software developer
Photo by Annie Spratt on Unsplash
I have been crafting software and mentoring for over a decade. I can vouch that there hasn’t been a better time than today to learn to code. Free and quality tutorials on youtube have made it easier than ever.
While it’s exciting to follow along with a youtube video and create Netflix or Amazon App clones. These videos crunch mountains of new concepts, techniques and ideas, making them challenging and often overwhelming to digest. And… easier to forget!
So then… How do you retain all that new knowledge and make that learning permanent? How do you even get to finishing that App build? Here are some tactics I have shared with my mentees and teammates from my own learning experience.
1 . The Actual build will take way longer than the video length
Be mentally prepared to spend more time than the video duration. When you start coding along with a video, it takes time to watch what the instructor is doing and then type that code into your own text editor. This context switching does take more time. Of course, you’ll encounter bugs.
More often this added time can feel like an eternity and demotivating. Acknowledging and setting enough buffer time before you start will increase your chances of completing the build.
2. Learn the Basics first
Spend a couple of hours to brush up on the basics of the programming language you’d be using. For example, if it’s a React or Angular App, make sure you familiarize yourself with the concepts of Modern Javascript before jumping into that App build.
Sure you can learn as you go, but most instructors will be focusing more on building the app than explaining programing language syntax. Having prior acquaintance with language syntax will avoid you being stumped in the middle of an interesting build.
3. Befriend the terminal and Git now
I know what you are thinking. Why would you need to know the terminal and Git while you are just coding locally on your own computer? Well… first for most of the frameworks and libraries come with a CLI and you will have to jump in the terminal more often than not.
secondly, Git is an essential part of the development process at every company. The earlier you get comfortable using it the better. Building good coding habits right at the beginning will make you a better developer. Also, you can showcase your build on GitHub, won’t that be cool?
Here’s a quick cheatsheet on Terminal and Git.
4. Slow it down and speed it up at will
Youtube video tutorials are heavily edited to keep the viewers interested. This results in some videos being too rushed, while others have a lot of marketing content in between. you might not be able to follow mouse clicks or you might miss out on what the instructor is saying or just doze off during marketing chatter.
Screenshot of Youtube player settings by author
Use the youtube player’s playback speed to slow the video down or speed it up when you need it. This is literally learning at your own pace.
5. Understand the problem you are solving
Always ask yourself what problem is this App solving? how is this App making the user’s life better or easier? Once you understand the Why, you will be able to comprehend the reason behind the certain way things are done.
Just punching in code as-is from the video will not make you a better developer. When you build an app, you don’t build it to show how powerful a framework is but rather to solve a user’s problem.
The users, in the end, don’t care which framework or language you used!
6. Frameworks change but Patterns stay
Today you might be building a Tinder clone with Angular using the MVC pattern. While you might focus on the intricacies of using the Angular framework, don’t forget to understand the MVC (Model view controller) pattern itself. Tomorrow you might be working with ASP.net or some other framework but the underlying MVC pattern will remain.
7. Learn the parts to master the whole
So you are building the checkout component of the Amazon App, you successfully show the list of countries and states you cheer and move on to the next part. Take a Pause and think back! Where else have you seen such a list? almost every other App! Understand and practice these smaller concepts like calling an API and binding the response to a list.
Here’s are a bunch of public API’s that you can use to practice
8. Third-party libraries are frustrating and you’re not alone
In the world of software, not every library comes with a proper manual. You’ll sometimes find that what works on the video might not work on your computer. This is a normal day in every developer’s life.
Try to find if the instructor has shared the source code and try to use the same config or package.json files. If that doesn’t work do a quick google search of the error message and should be able to find answers.
9. Learn to Implement Tests
One of the first things you will see in tutorials is — let’s clean up the starter App. You are made to delete every file including unit test files.
Online tutorials often skip on the importance of creating tests so that they can finish the build within the time frame.
Write your own tests, watch other videos on how to test your code and implement it.
10. Heroku isn’t the only place to deploy
Most of the tutorial videos show the easiest way to deploying your Apps. This is good but don’t stop there. Look around to see what companies use and how they deploy their Apps serving millions of users.
Explore Amazon Web Services (AWS), Microsoft Azure and Google cloud platform etc. You’ll come across many companies using different cloud providers. It helps to be familiar with deploying to various platforms.
Practice deploying the App to different hosting platforms.
11. Customize and make it better
Always ask yourself — How can I make this App better? Will that change, help the user? or will it make it harder? Even if you don’t know how to implement your ideas right now. Jot them down, brainstorm with your friend. Share your ideas on forums like Dev.to or Stack overflow and the community will be more than happy to guide you on implementation.
Software developers are always striving to provide better solutions and making user’s life easier. You are becoming a better developer when you get into that mindset.
12. The project structure shown might not be production-ready
With youtube videos, the instructor’s aim will be to explain to you the main concepts in the shortest possible time and not put you to sleep. So you might see sometimes that they do not bother about structuring their files and folders, or naming conventions unless the framework dictates.
Don’t assume that these as the best practices, companies building production software follow a set of practices and conventions that make it easier to maintain and collaborate. Learn these best practices, naming conventions and imbibe them while you practice to code from day one.
14. The App isn’t production-ready either
Be aware that in a real-world scenario if you are building Amazon, Netflix or Tinder, You will be not be deploying the App as is.
The App needs to be optimized for the best performance in production environments. Learn about performance tuning, SEO etc.
You will also be ideally able to track and log your Apps performance with Analytics. Explore internationalization (I18n) which allows you to serve your app in regional languages.
13. It is OK to ask for help and even better to help others!
We, software developers, thrive by helping each other. Whenever you get stuck or have a question don’t be afraid to reach out to the community. Stack Overflow and dev.to has some of the most helpful people. Be sure to search the web for answers. Trying to find answers on your own by googling is a skill in itself. Also, try and answer questions by others about what you already know.
Join meetup groups in your area and make friends with other developers. Software developers are always learning and building new things. This is one sure way to grow your skills and your career.
14. Keep a Dev Journal
I know “Dear Diary…” sounds cheesy but hear me out. Documenting your journey and what you have learned is of utmost importance.
Being able to look back at your journey of all the things you have learned, the concepts you have covered is priceless! You don’t need a fancy leather-bound for this! It can be as simple as a text file or a Github repo with a Readme file. Try it and you’ll thank me later.
15. Likewise… keep a bug Journal
It’s amazing how many bugs and errors we encounter every day as developers. It’s also fascinating that most of the bugs fall under a few already known categories.
While you are building that App clone, record every bug you encounter. You’ll soon realize that many commons bugs are null reference exceptions, type errors, data initialization goof-ups etc.
The more you debug the better you’ll get at identifying and fixing them. Recoding how you fixed them shaves you that extra time and energy.
16. Gist those code snippets
When you start building more and more Apps from youtube, you’ll start realizing that many code snippets are common. For example, creating a functional component in React. Or Calling an API with Fetch. Or that sneaky code to get the user’s geolocation. Just Gist it.
Developers don’t remember everything, we are problem solvers and not memory devices. Gists and code snippets serve as your own personal toolbox, whenever you need them you look them up in your gist and use them.
17. Where you learn matters too
Get comfortable, if you are lucky to have a bigger extra screen use it. If you can cast the video to your big screen TV do it. Sit on your most favourite chair, play that Lo-Fi tune in the background. Turn on that fan if it’s too hot. Shut the door and forget your phone.
Having a conducive learning environment will keep you motivated and less tired.
18. Go easy on coffee and chips
I know this is controversial, we developers literally run the world coffee and chips economy. But go easy on caffeine and crunch. Drink water. Take breaks, shake a leg and stretch. Play a game, drop and do 10 push-ups and get back to code.
Staying active and eating clean helps you learn better and retain for longer.
19. Teach what you learn
Blog it. Make a Youtube video. Tweet it or whisper into your dog’s ears! Whatever it takes, share what you learn. Recalling and explaining the concepts you have learned is one of the most effective ways to solidify your learning.
21. Respect the creators
Finally, respect and thank the content creators. Creating and editing youtube videos and online tutorials take a lot of effort and time. Most of the creators are doing this out of passion and for livelihood. It takes years of experience and expertise to be able to distill the concepts in a simple hour-long youtube video or a 5-minute blog post.
Reach out to the creators and follow them on social media. Most of them will be happy to respond to you. A simple thank or thumbs up goes a long way.
Conclusion
We are living in very fortunate times with abundant free learning resources. It can and will get overwhelming at times. Making the most of them takes strategy and focus. Cut the clutter dig deeper to learn better.
Thank you for your time. I appreciate you reading this post! I’m eager to hear about your learning journey. Happy Hacking!