AD
Episode
254
Interview
Web News

Can You Learn JavaScript Through ONLY Project-Based Learning?

Recorded:
June 20, 2023
Released:
June 28, 2023
Episode Number:
254

HTML, CSS, and JavaScript are foundational web development technologies that Matt and Mike recommend web developers learn before trying out a framework (ie React, Svelte). Out of these three pillars, JavaScript is the most difficult to learn, especially for people that have never been exposed to programming before. Learning how to think and solve problems like a computer (programmatic logic) coupled with writing and understanding a brand-new syntax is no easy feat. These difficulties have sparked several guides, courses, and bootcamps all aimed at teaching people JavaScript and other web technologies using unique combinations of theory and project-based learning. Some people, however, will skip taking in any theory at all and go straight for project-based learning, referring to documentation and other written material only when they're really stuck. With such a difficult learning curve for junior developers, can they learn JavaScript through only project-based learning?

Listen

Also available on...
...and many more, check your podcast app!

Who’s in This Episode?

Show Notes

Scrimba Discount!

  • Learn to code using Scrimba with their interactive follow along code editor
  • Join their exclusive discord communities and network to find your first job!
  • Use this URL to get 10% off on all their paid plans: https://tinyurl.com/ScrimbaHATT

Topics

What is project-based learning?

  • Learning a web development concept by tackling a project head-on
  • Why discuss this? Multiple points/questions brought up recently on this show…
    - How should you learn web development if you’re an experienced programmer?
    - Full-Stack Struggles - the struggle between stopping/restarting, as well as potentially attending a course

For the purposes of this episode, we classified project-based learning into two types...

  • Type #1: It can be coupled with learning theory, mixed with examples (projects) to reinforce recent lessons
  • Type #2: Some people will just do project-based learning. Tackling a project head-on with little to no experience
    - They will refer to theory whenever they get stuck

Which type is better?

This depends on...

  • The learning style of the student
  • The complexity and scope of the topic
    - Web dev has a lot to it: frontend, backend, deployments, infrastructure, networking
  • Prior experience (any like-experience will help, doesn’t have to be web dev experience) 
  • The intent of the project:
    - Are you trying to learn web development to get a job?
    - Are you just trying to make a website because you need it and don’t want to get a developer involved? A one-off project?

Type #1 Analysis

  • The theory and hands-on mix appeals mostly to a couple learning styles:
    - Learners that prefer theory and see the hands-on as practice to help reinforce their readings
    - Learners that prefer hands-on may see this “practice period” as a nice break from the monotony of book-learning (these people may lean towards Type #2), but these learners still find benefit from the theory they read through
    - This is probably why many schools adopt this system as it appeals at least partially to more than just theory-learners
  • You’re spending your time reading about a topic, then doing an example, rinse repeat
    - You can see this type of learning on W3Schools and freecodecamp
  • If you don’t want to mess around trying to figure out what to learn:
    - There are “complete programs” from traditional schools and online courses that provide you with this type of learning. You don’t need to sift through countless articles on the internet you can pay and get “all” your learning from one place - and sometimes a project portfolio too

Type #2 Analysis

  • Hit the ground running
  • The classic “How to make a website” google prompt and then following the first guide
  • Mass amount of trial and error, referring to theory only occasionally
    - Oftentimes, the Google searches are less about theory topics (ie what is X CSS property) and more about a specific goal “How do I add a forum to my website”
  • If you enjoy tinkering with things, doing trial and error to get to the solution
  • This type of learning is great for:
    - People with like-experience
    - Those in a hurry either to learn, or just trying to make a one-off project
    - Those that can self-teach
    - Good Googling skills
    - Many entrepreneurial types will prefer this type as they’re working towards their goal and not spending time “just learning” with 0% complete on whatever they want to build

Project-Based Learning Skills

Ability to continually self-learn

  • Even if you took a course, you’re going to run into issues that aren’t in the course material

Googling Skills

  • Google with context: If you’re from a like-field then you will find Googling programming topics easier than if you’ve never searched up anything related. You know how to phrase questions and queries, and will usually be able to drill down to the search query you need faster.
  • Google with no context: If you’ve never Googled anything tech or programming related then your queries are going to be phrased incorrectly, probably using the wrong terminology. You’re going to have to drill down your queries from a higher point than someone with experience. Remember that Googling is a skill that can be practiced

Determination

  • Even if you decide that you’re going to take a course with some projects sprinkled in there, the course will not cover everything you need, you’ll get stuck on something that you never even considered in your planning and this is where getting over that hump get really difficult and takes a lot of determination
  • Brute-forcing issues and implementing workarounds while you’re learning gives you real-world skills
    - Maybe you’re not doing the “best method” when you’re using a workaround…but workarounds apply to production-level projects all the time

Can You Learn JavaScript Through ONLY Project-Based Learning?

Matt's Answer: Yes

  • Yes you can if:
    - You enjoy tinkering and trial-and-error
    - You’re ready to fight through issues and persevere through completion (especially if this is a project for you)
    - You’re able to self-teach
  • But…
    - If you’re trying to project-based learn as purely as possible, you are going to struggle if you don’t have foundational knowledge - knowledge in how computer/programming logic works (often referred to as “thinking like a computer” or “breaking down a problem into computer language”)
  • My preference:
    - Being self-taught, but trying to do the mixed method with some fluidity (not locking down 50% theory, then 50% project)
    - I start working on a project and then when I get stuck I stop and look up the topic so I understand what’s going on
    - Lately I’ve been leaving full on “class notes” in my comments on learning projects, even though they’re not “proper comments” I’m trying to use my theory-readings, then translate them into my own words in the context of my project so when I refer to them I have an explanation written out how I understand a given topic

Mike's Answer: Yes

  • Yes but expect to not have perfect foundation and programming standards. 
  • You’ll be piecing code snippets together