The 3 Lessons I Learned From My First Full Stack Development Project
I just wrapped up my first full stack web development project. It took WAY longer than expected, but the relief from actually finishing makes up for it. This was the first project I worked on of this size and I learned a ton. I hope the lessons I learned can help other developers who are just starting out avoid some of the mistakes I encountered.
Lesson 1: Planning makes perfect
One of the biggest issues I face (along with so many other newbies) is thinking I can just jump into a project and code as I go. What usually happens is I have rough idea of what I want to make. Then I convince myself that the idea will somehow take shape as I start to work on it. I can now say this practically never works for me.
If I could go back to my previous self and say one thing before starting the project. It would be, “Hey dummy (trust me he deserves it), map out, in as much detail as possible, what you want your web application to look like.”
I can’t tell you how many hours I spent “thinking”, which really means staring at my computer screen trying to mentally sort out the entire layout of my website, and the information on every web page.
Do yourself a huge favor and start by making a map of the entire application. Check out Youtube if you don’t know what that means, because there is a ton of helpful videos on there. Drawing up a map of the webpages and how they connect was extremely helpful to get me get on the right track.
The two biggest things I learned in terms of planning were
- If you’re not sure what to be putting on your webpages, spend more time thinking about the goal or mission of your application.
- If you know the information, but don’t know how to get to the image in your head, break it down into smaller chunks.
Both of these lessons helped me realize I need to spend more time planning before I even think about coding.
Lesson 2: Focus on one feature at a time
Alright so you have everything planned out and know exactly what you want your application to look like and the information you want to include. Now you can finally jump in and start cranking out the code right? Sure! However, keep this one idea in mind.
There were too many times to count where I would run into an issue with a webpage, or login feature, or a search feature, etc.., and would jump to a different part of the website to work on.
Ultimately what would happen is I would spend two hours writing a little code here or a little there. At the end I would reflect on what I accomplished and realize I now had three new problems and no working solutions.
Therefore, my advice would be to focus on one aspect of your web application at a time. If you get stuck, absolutely take a break, or distract yourself with something you enjoy, but don’t jump around to another part and start working on it. All you’re doing is avoiding the issue you’re going to have to address eventually, and you’re most likely going to do it again the next time you hit a snag.
Lesson 3: Don’t put too much stock on self-assigned time limits
It’s downright laughable when I think back to the first time estimate I made for my project. It was the first conversation I had with my mentor about it and I foolishly stated it would only take me two weeks to knock the entire thing out. He was supportive, but also told me not to be too worried if it ended taking longer.
Cut to two weeks later and I wasn’t even close to finishing. The project ended up taking me about a month to complete when all was said and done. There were multiple factors that contributed to this like experience and time available to work on it, but in the ended it took way longer than my initial estimate.
I remember at about the three week mark feeling very concerned that I was taking so long. A lot of thoughts went through my head like maybe I’m not cut out for programming or maybe I’m not as good as I thought I was. Luckily my mentor provided some encouragement, and with some work, those thoughts eventually went away.
Therefore, don’t let your brain start being a jerk just because you didn’t hit a goal that you set yourself. If you’re just starting out, or even if you’ve been coding for a while, cut yourself some slack if something takes longer than you expected. Obviously it’s great to set goals and achieve them. However, in this case I set one time limit on the entire project, and started beating my self up when I didn’t make.
It’s okay! Every project you work is a learning experience and the more experience you get, the easier it’ll be to make accurate predictions.
I hope if you’re new to coding and you’re reading this it helps you feel a little better. I also hope you can avoid the mistakes that I made while working on my project.