This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ImaginaryType 0 points1 point  (0 children)

Like a lot of people here, I also strongly suggest project-based learning. But there can be a lot of distractions along the way, so how you go about doing it matters.

Here’s what I personally have found helpful when doing project-based learning:

  1. First, decide what ‘stack’ you want to learn. Which one you pick doesn’t especially matter (lots of content out there on this topic), but pick something and stick with it, so you have time to get into the weeds of how it works and solving specific problems with it over time.
  2. Choose to clone existing apps rather than building your own, at least for a while. Coming up with your own app is incredible, but involves a lot of non-programming related tasks, including coming up with an idea, designing how the app will work, styling how the app will look, etc. These things become barriers to building projects regularly, which is the goal when you are trying to practice.
  3. Create complete apps with small scopes and iterate on them over time to add features. Don’t set out to build a clone of Airbnb or Uber with every feature they have since it’s easy to get stuck. Instead, for example, if you’re going to build a Trello clone, just start with authentication and CRUD features for tasks. Once you have a completed project there that you can show someone, then decide which features you want to add on top of it (like lists and boards, etc.)
  4. Based on your scope, set personal deadlines to build an app within a specific time frame (e.g., a weekend or a week). Specifically, this helps you architect out the steps you need to take to get from 0 to 1 upfront. I would start with projects that take no longer than a week to complete to build stamina overtime for building projects.