We are trying something unique this month. Instead of everyone working on their own project, we are going to be working on one project together which we will put on www.producthunt.com at the end of the month and actually see how it does in the real world!
The reason for doing this is to:
- Have a real life scenario of working on a project with other programmers
- Publish something you have helped create on producthunt
- Have a great story to tell about a project you have worked on during your interview
- Learn why working with teams is hard
- Give you experience working with others so that you can add it to your resume
What is the Challenge?
You have just been hired by a fast growing startup! www.fullstacktrends.com has hired you and a few other developers to "make their product great". However, there is some bad news: They do not have any idea how to help you. They simply say "Can you please make the code better so we can launch by the end of the month?" You start looking at the codebase (big shout out to @Matt @notAnkur and @Dhaval for setting up and creating this initial project).
Hmm...you see that it is a React project. How can you improve this codebase and contribute to this? This is a very common scenario when starting to work at a company. You are most likely not starting a project from scratch but instead, you are getting put on an existing project to work on new features, refactor code, and fix bugs. This is what we are going to practice in this coding challenge.
You start looking at the code... first thing you do is:
git clonethis repository.
Great, you have built the project locally! Now it's time to start impressing your bosses at fullstacktrends! What should you do first? It is up to you, they have give you some freedom, but looking at the code initially, there are several places you can help them:
- There are a few bugs where
NaNis shown on the website
- There are no unit tests on the project
- There is no folder structure for components
- There are a lot of places where code can be cleaned up
- There is no Continuous Integration set up to run all tests and deploy when master is updated.
- Change the design, make it more responsive, etc...
- The Logo can be updated
It is up to you to decide what you want to fix/improve. However, as you work on this, you will notice a few things: Working in teams is hard. You will have to make Pull Requests with your changes and because there is no "central figure" like a product manager or a scrum master telling you who is working on what, it is important that you make small Pull Requets with small changes. This challenge is specifically designed for you to understand how working in teams is like, and where the hard parts are that give us a need to have tools like Trello, Jira, CI/CD, etc... These are all valuable lessons that will make you great developers.
How to get started?
- Start making small Pull Requests wherever you think you can help. The Management team will be handling the project and adding the features/bugs that you create as they come.
- You can use the #coding-challenge channel on Discord to discuss anything related to this project.
- It's a good idea to let the community know what you are working on so there are no conflicts here: https://github.com/zeroDevs/coding_challenge-13/issues
Who can participate?
Anybody! Think of this as a playground where no matter what your skill level, you can contribute (see the Git and Github section of the Complete Web Developer in 2019: Zero to Mastery if this is your first time contributing to open source) to this project and nobody is going to yell at you if you make a mistake :)
How to make a good PR
Here is how you should make your Pull Requests great: https://blog.github.com/2015-01-21-how-to-write-the-perfect-pull-request/
Where do the numbers/rankings come from?
The job demand numbers as well as the developer love numbers were gathered and collected by myself as you can read here: https://medium.com/zerotomastery/tech-trends-showdown-react-vs-angular-vs-vue-61ffaf1d8706 The top 5 technologies where based on these numbers as well as the potential for growth/increased demand in 2019.
One Last Thing
As with all my challenges there is zero benefit or monetary gain I receive from it. This is just my way of thanking my students and making sure that you are able to continue gaining valuable knowledge outside of just my videos. It would mean a lot to me if you are able to rate my course...5 star reviews make my day :)