One thing I didn't expect when I started coding is how long any and every project would take. counter to what developer-related movies would have you believe, everything you hope to do will take at least 2-5x longer than planned, especially when you're just starting out.
'101 Project Ideas' blogs might have you thinking that as you dream it, you will build it all. But then again do you even want to cram project after project into your undoubtedly jam-packed date?
Doing a challenge like 100 Days of Code is one thing, but as someone in the job market, will employers be impressed with 100 beginner projects in my portfolio? From my conversations with working developers, the answer is a resounding NO. Bummer.
Building a ton of projects is great for making and showing progress. Following a structured path, like100 Days of Code, can make it easy to continue building from what you've learned. So by no means, am I bashing this approach to individual learning. But the employer's perspective, I was advised to focus on the quality of my projects over the quantity.
If limited to coding only 1 hour each day, I should be spending at least a few days working on a longer term project that will allow me to showcase my understanding of intermediate to advanced JavaScript concepts. In attempting these more challenging tasks, at least two days will be spent on debugging and researching what wrong. Maybe one day goes towards practice solving JavaScript challenges and another towards reviewing the prior weeks' achievements. So then, what's left?
There are so many things I want to learn. And in barely less than 10% of the time left to learn it. I want to build apps that help people, connect them to friends they would not have otherwise found, and create communities that make each day a bit better– in the way of the sites that shaped me as a millennial growing up on the internet.
I also want to create free tools that make it easier for people manage the small annoyances that can add up, like the many apps I rely to make my life function– a notes app with my favorite quotes, timers for every possible thing, a counter to track my water intake.
My list of "Projects" gets longer and longer each day, so that I can focus on building one thing and building it well. But that new goal of building one thing well, has changed me as a developer. I used to wonder why developers haven't built everything that can be built or why it is that some apps don't have x and y features. But I'm starting to get it. Building one thing is insanely difficult.
Programming isn't like the movies, where you smash the keyboard, and magic happens. It's slow and laborious. There's too much trial and error, with moments you find yourself wanting to throw the whole computer away. But there are also days where it hits me how much more I know now. Then I find myself giddy at the thought of eventually making it through my list.
Things I would like to build (eventually):
- Pomodoro Chrome extension that lets me snooze breaks when I'm in the zone
- VS code extension that guides you along like a tutorial
- A To-Do app that tells me the best time to do each item
- A mobile app that always tells me where I can get the cheapest food within a 5 block radius
- An app to send someone money via texting (even if they don't have a bank account)
- A Chrome extension to remove me from the million Meetup groups I've joined
- A way to soft-block people on Twitter, because blocking them just lets them know to create a new account
- An amalgamation of everything I am online, with a button to opt out of all unnecessary permissions
- A way to ask dev questions across websites (Quora, StackOverflow, Reddit)
- A quiz app that can test one question according to a method or with specific constraints
- A recipe app, with grocery shopping for one
Top comments (4)
"From my conversations with working developers, the answer is a resounding NO. Bummer."
^ Good on you for having the awareness to realise this! Due to unusual circumstances at my startup, I've recently had to help evaluate Frontend devs to hire.
The vast majority are quite raw so I had to check their GitHub portfolios to make a conclusion. Every time I came across a portfolio with 10 apps which looked like they were copied and pasted from a tutorial in half a day, I had to say no, simply because it's impossible to tell how they would handle more complex projects that you work on in the real world.
I'd much rather see someone who has just a couple of projects in their portfolio but has worked on them for months or years, as this is a good indication that they have experience handling a codebase which grows in complexity
I think it is more like you should focus real world application of does it solve a problem be it to eat your own dog food or to solve a pain point of a person.
My suggestion is you could to take a look at Indie Hackers to learn on those real world stories of what developers has build.
Seconded indie hackers. Love that place.
Definitely try to build a smaller number of bigger apps than a ton of small projects. Those are good for learning simple concepts (e.g. IndexedDB), but they don't show that you can build an enterprise level app. Also, larger projects will come with problems you'll have to figure out (e.g. pepper your code with a bunch of hard-coded API paths, and then you'll learn to stick them all in one time or folder and use imports, or to write logic in Vuex getters rather than components, etc.). You'll learn best practices (as long as you read, and think).
That said, it always depends. A ton of beginner projects with clean code can still open some doors to you... Just to more entry-level / junior jobs.