Hack Reactor: JavaScript 401 Workshop

Overview

Scheduled Length: 3 Hours

Hey there! Ready to get your hands dirty with some code? This is the practice exercise repository for Hack Reactor's JavaScript 401 workshop. JavaScript 401 is the fourth and final lesson in our free, four-part Introductory JavaScript Series (101, 201, 301 and 401). We're excited to have you.

EXPECTATION: You will be expected to fully engage during lecture periods. Accordingly, please wait until the designated times during this live workshop to explore the exercises. You will be given 10-15 minutes per section, so please pace yourself accordingly.

NEED HELP? Practice developing your autonomy as a programmer. Use Google Search or Stack Overflow, peruse documentation at mdn.io, or talk to your friendly neighbor. If you're utterly stuck, flag down your instructor for guidance.

DISCLAIMER: Completion of this workshop is no guarantee of admission into the Hack Reactor immersive program, nor does it have any influence in the admissions process.

Slides

The slide deck for this workshop can be found here.

Exercises

Each lecture in this workshop will be followed by a set of self-guided practice exercises. The exercises are divided by section and are housed in their respective folders within this Github repository.

Each section of practice exercises has a Basic Requirements portion. Some sections may also contain additional sections for advanced practice. During the live workshop, you are only expected to complete the Basic Requirements sections and may complete the remainder as homework.

For your ease of access – click the following links for each section's practice exercises.

Exercise Solutions

You may find reference solutions for this workshop's exercises on the solutions branch of this repository. Please do not refer to the solutions until you've given each problem set a valiant effort.

Thinking about JavaScript

Reasoning Methods

As you embark on your learning journey, a sound method for thinking about JavaScript will be to consider each line of code as a discrete instruction being provided to your computer.

  • What is each line of code intended to do individually?
  • How about when combined together?

It will be beneficial for your growth as a sophisticated programmer to think deeply about the intentions of your code so you can predict and understand the behavior your program produces.

  • What is the expected output of the code?
  • Why will the code produce the output that I expect?

Thinking about each line of code can take many shapes:

  • How is this line of code structured and why?
  • What syntax rules is this line of code following? Not following?
  • Where is this line of code located contextually within the program?
  • What references is this line of code making to other parts of the program? Are such references sound?
Vocabulary Development

Developing your vocabulary as a programmer is as important as learning to write code. To accelerate your conversational capabilities, we recommend partnering with a neighbor to discuss your code at every opportunity. The more opportunities you have to explain yourself, the better. Don't worry – with time, the ambiguity with which you presently speak about code will transform into eloquent prose.