The following tips are based on personal experience. Something that I apply all the time and move forward to the next round of an interview every time. I hope this will help you as it helps me!
When it comes to a take-home coding challenge, the first thing that most developers think of is, "Sweet! I can just google for the answer". However, this is where they all fail.
So, how do you pass to take home coding challenge?
When I receive a technical challenge, I would read it multiple times and take notes on what has been asked to develop. My notes would consist of what I have to do step by step, so I won't waste time on something that the requirement didn't even ask. For example, this is what my notes would look like:
[✔️] Create a simple table to display information
[✔️] Send a request to API with specific params
 Do the required task with params
 Send response back
 Populate the table with content received from API
After creating the steps, I now have a perfect picture of what the system should do, and I can start building it out! Also, notice how I'm not talking about what tools (language) I'm going to use. You could build the system using any language you want, and the list won't change.
The above list would consist of what the technical spec is asking of me. Nothing more, nothing less, and I will fill confident in the application as I understand the problem.
So if you're wondering what you should do first, take the time to understand the problem and write out the steps you need to take before touching the keyboard.
After taking the time to create the above steps, coding out the problem becomes much more manageable and straightforward!
You can now use any language that you're required to use. In this step, I won't be able to recommend what framework or packages you could use since we all specialize or currently using different server-side languages. However, I could tell you my thinking proses.
When it comes to coding, I follow 3 simple steps:
1. Make it to work,
2. Refactor the code, and
3. Fix performance of the code.
These three steps are something that every Software Engineer follows, regardless of what you're working on, and have critical attention to detail.
3. Improve your code.
After you're done, and you think it's working, take a day off and stop thinking about the code.
Every time I step away from code, I always find a piece that I could either improve or find a bag that I didn't catch before. To that point, you want to find as many bugs as possible before submitting it.
Also, I would run a linter on my code to be sure that the entire project looks the same with spacing, line indentation, fix naming convention, file orientation, and etc...
Last but not least, don't forget to include a small readme file that explains what your code does and how someone can run it locally without guessing and looking at your code.
These are the three steps I use when it comes to taking home coding challenges, that I hope will help you too.
If you need more helpful tips and advice, subscribe to my channel DevPool and don't miss future topics.