Hi all! My name is Leo and I was inspired to make my 1st post on DEV after seeing many web developer portfolios from new grads (university or bootcamp). After all, I myself am a fairly recent grad and I learn a lot by looking at other code. Here are my thoughts that I wish to share. This is not a technical article but more of a reflective piece on personal growth and leveling up through personal projects. Hopefully this won't be a super long post 🙃
I see too many portfolios that have 5+ apps within a 6 month bootcamp period. And those apps in many cases are not thoroughly planned. Missing error checking, linting; No thought about web security, use-case scenarios, cross-browser / device testing, performance optimization, CI/CD, etc.
Now, your 1st or 2nd app aren't meant to cover all of that. They're meant for you to get dirty with the fundamentals, the basics. Get you comfortable in your domain. But each app needs to build your knowledge base and make you GROW, not just reuse what you already know.
Imagine if you spend 2+ months on 1 app but you thoroughly go over best practices in your development area, experiment with new technology, learn what it takes to get an app into production mode, make it "bigger" than all your previous apps. It's a tall order for 1 person based on your app's complexity but if you put yourself through the grind and finish it, that 1 app can speak volumes over your previous 3. And that leads to my second point.
Let's be real here. Everybody wants to have projects done yesterday, get a great job as fast as possible, become a great developer in 12 months. But here's the thing: YOU NEED TIME AND FAILURE FOR ALL THOSE THINGS. Especially when it comes to your portfolio! Your bad-ass web dev portfolio won't contain your first 5 projects...it's going to be your next 5. So put in the proper time to really make your projects shine, not just on the exterior but your code base, your deployment practices, your automation scripts, your knowledge of how the tools you use work (to a small degree at first, but always go deeper just a bit with each project).
If you work and finish each app with this mindset, you will leave a better developer than when you started. And that's honestly more important than what you build. You are essentially investing into your growth! So why give yourself less time? And now to my third point...
In my opinion, your portfolio should show your growth and progress. Each project's experiences, successes, failures, experiments are compounded into your toolkit and taken with you into the next project, making you more efficient and experienced. But in order to grow, you have to be willing to try new things. As an example, don't make 3 React SPAs in the same exact manner. Instead, incorporate your React knowledge from your 1st app into your 2nd app by learning a new framework (i.e. Next.js) and diving deeper into parts of React that you didn't use yet. Then in your third app incorporate a new database, animation library and dive deeper into how create-react-app works so you can really optimize that build folder and see if you can get 90+ scores on performance using Lighthouse :)
You can find endless lists anywhere on the net that will tell you what to learn, how to learn it and what is needed to become a great developer. But the most important thing is staying humble, trying new things and not being afraid of time. Your portfolio will be amazing and you will be awesome in your field. But it's not an overnight type of thing and it never was. At least that's my humble opinion.
Stay peaceful and keep coding. -Leo