Storytime: My Most Challenging Project Yet

Lailah Gifty Akitah once said,

"in situation, we must learn to adapt, survive and strive."

This simply means in every seemingly difficult situation, one must learn first to adapt, survive, then strive. this has been the case in my tech journey generally. It has been a journey of fun, adapting and surviving. Don't get me wrong, I don't mean "surviving" in a terrible way. I mean in a good, "makes you better" way. In this article, I will be writing about my hardest project yet. It was a React admin dashboard project.

Fun

In one of my earlier articles, I wrote about how I was going to start learning a JavaScript framework this year. Well, I did. After burying myself in an Udemy course I bought for about two weeks, I decided that it was time to delve into some fun projects. I scoured the internet, looking for the simplest of them all and eventually, I decided to go with a to-do list which I executed and deployed. Then I thought, why not get involved in a live project. I have a couple of developer friends so one of them reached out to me around the time to help with an admin dashboard frontend project and I took it because, what could go wrong? Nothing!

Adapting

My first challenge was how to successfully install create-react-app. I kept getting this error.

$ npx create-react-app my-app

You are running create-react-app 4.0.0, which is behind the latest release (4.0.1).

We no longer support global installation of Create React App.

This wasn't the first time I was using create react app because remember, I already completed a react to-do list so you could imagine my surprise when the code refused to run. It took a hundred stack overflow and Github issues tabs to finally figure it out. The problem was resolved simply by uninstalling the previous versions globally and then re-installing the latest create-react-app version.

Next up was the issue I had with react components and routers. How many components should I have? How do I go about state management and a host of other questions? I had too many questions that I thought even Google could give answers to.

Using a REACT template

Since this project was supposed to be an admin dashboard, I thought building from the scratch was going to be quite time-consuming and difficult to embark on given the time frame so instead, I decided to use a template which turned out to be even more difficult. As at the time, I had not fully learnt the basics of React and database structures (what would be connected to what) so trust me to get stuck, again! I thought using a template would make life sweet for me, but it even became more bitter. It was at that point that it actually dawned on me that I knew little to nothing about what I was trying to build, which took me back to learning the basics more intentionally.

Surviving: Lessons learnt

During the course of my ordeal (lol!), I learned a few lessons.

1. Learn to plan first before executing.

Now, I know for experts, they usually do the planning in their heads and it works pretty well for them that way. However, for starters like me, it is important to have a mental/documented picture of what is to be done and how it will be done. For my dashboard project for example, I should have had at least a wireframe. This would have gone a long way in helping me in the execution of my project.

2.Learn the basics properly

I know all about the project-based approach and how it helps beginners get started on real-life projects and get past the "tutorial hell" but honestly, learning the basics well will help prevent a lot of confusion and frustration in the nearest future. With this point of mine, I hope I have been able to convince you that it is very important to master the basics well before undertaking big projects.

3. Be patient

Patience is key! It is very easy to get discouraged because you're stuck or can't get past a particular stage in your project but it is highly important to never give up. It is key to your progress as a developer and in life, generally. I wish I would take my own advice because I eventually abandoned the project. Well, technically, I didn't :-). The person who contracted it to me told me they were no longer going through with it because of financial reasons and I couldn't have been more relieved.

I look forward to taking on React projects now that I have learned a lesson or two about what it takes to undertake a challenging project.