/javascript_videos

A video series that walks through the Free Code Camp algorithmic challenges

Primary LanguageJavaScript

JavaScript Video Series

In this video series, Stephen Mayeux walks through the algorithmic challenges at Free Code Camp.

Viewing Tips

  1. YouTube automatically plays videos at 480p, but it is recommended to play these videos at 720p High Definition and full screen.

  2. These videos will be very practical because they will walk through the algorithmic challenges at Free Code Camp. As such, they will contain solutions to the challenges. If you want to solve the solution yourself, don't watch this video! When you have finally solved the challenge OR if you get stuck, come back and watch the video.

  3. Do not be a passive learner. After watching each video, open up your favorite text editor and start applying what you have learned. Experiment with the syntax and be very, very curious. Read more about the syntax with the official JavaScript documentation. Just don't watch the videos without coding.

Content

Basic Challenges

Video 0 - Basics of JavaScript Functions -- Syntax of functions. Passing 0, 1, or multiple arguments. Calling/invoking functions. The return statement. undefined values. YouTube: https://youtu.be/Zg6ESLIasic

  1. Reverse a String in JavaScript -- Method chaining. split, reverse, and join methods in JavaScript. YouTube: https://youtu.be/gPAtcWuM8AM

  2. Factorialize a Number -- for loops and if/else blocks. Using the reduce array method. Functional programming. Recursive programming. YouTube: https://youtu.be/43XF7GBY05E

  3. Checking for Palindromes -- Recursive programming. slice and replace methods. Regular Expressions. YouTube: https://youtu.be/mQ6ZB24DInc

  4. Finding Longest Word in a Sentence -- for loops. Functional programming with forEach(). Using split(' ') as opposed to split(''). YouTube: https://youtu.be/U5-jiTDgmR8

  5. Title Case a Sentence -- Using the map() method to return a new array. YouTube: https://youtu.be/fsvBwqOrkKs

  6. Return Largest Numbers in an Array -- Using push() to add numbers to the end of an array. Using sort() to sort an array of Strings and Integers. YouTube: https://youtu.be/YD4M77uB3lo

  7. Confirm the Ending -- Using Math.abs() and -Math.abs() to generate absolute numbers. Using .slice() and its alternative .substr(). YouTube: https://youtu.be/AsLtWDncqeQ

  8. Repeat a string repeat a string -- Using the .repeat() method (surprise!) to repeat strings. Ternary operators for simplified if/else blocks. YouTube: https://youtu.be/stGujQgT9EM

  9. Truncated String -- Nothing new here! Just a simple .slice() method with an if/else if/else block. YouTube: https://youtu.be/pnUjKTgMhe8

  10. Chunky Monkey -- Iterating through arrays using while loops. Shortening counter = counter + size to counter += size. YouTube: https://youtu.be/4MR5N0_KINM

  11. Slasher Flick -- Removing items from the beginning of an array with shift(). Inserting and/or removing items from an array with splice(). YouTube: https://youtu.be/OhOOyVrERkI

  12. Mutations -- Checking whether or not a character exists in a string using indexOf(). YouTube: https://youtu.be/cz6JbsG4A-Y

  13. Falsy Bouncer -- Boolean objects and the filter() array method. YouTube: https://youtu.be/6a0Owm4PUA0

  14. Seek and Destroy -- Arguments object and converting it into an array using Array.prototype.slice.call(arguments, 1). Checking whether or not an array includes a value with includes(). YouTube: https://youtu.be/jm7s-tZ508Y

  15. Where Do I Belong -- Joining two arrays with concat() and how it differs from push(). YouTube: https://youtu.be/t4ETMI5m26g

  16. Ceasers Cipher -- Encoding and decoding strings with fromCharCode() and charCodeAt(). YouTube: https://youtu.be/37yPWD-g-Ik

Intermediate

Watch the Intermediate Prep Video!!! -- YouTube: https://youtu.be/SqZJr2pSr-0

  1. Sum of Numbers in a Range -- Using Math.min() and Math.max() to add up the numbers within a range. YouTube: https://youtu.be/dlwEs4xcloY

  2. Diff of Two Arrays -- Finding the symmetric difference or the difference between two arrays. This function uses our good friends filter(), concat(), slice(), and indexOf(). YouTube: https://youtu.be/ylbjD5fHytI

  3. Roman Numeral Converter -- Object literals. Iterating through objects using for...in loops. The difference between Math.round() and Math.trunc(). Our good old friend String.repeat(). YouTube: https://youtu.be/OHIeCYZWVuQ

  4. Where Art Thou -- Object literals. Creating an array of object keys with Object.keys() and testing whether or not every item of an array passes a test with every(). YouTube: https://youtu.be/zFYkDRnKdLw

  5. Search and Replace -- If you've been following along, this challenge is nothing you couldn't do on your own! Very simple, but I introduce the .charAt() method. YouTube: https://youtu.be/4Zx0OFWVj-w

  6. Pig Latin -- Converting an English word into Pig Latin. YouTube: https://youtu.be/Rg-0XRgsFlI

  7. DNA Pairings -- Creating a 2d array of paired DNA elements. YouTube: https://youtu.be/TlksPje9A5Y

  8. Missing Letter -- Finding the missing letter in a range of letters. YouTube: https://youtu.be/ZdU3v0irI24

  9. Boo Who -- Boolean primitives and the typeof keyword. YouTube: https://youtu.be/QCFSd-JpZgg

  10. Sorted Union -- Arguments object. Functions as first-class objects in JavaScript. Using reduce, concat, and filter all in one! YouTube: https://youtu.be/73IeA87eXUk

  11. Convert HTML Entities -- Escaping characters. Replacing characters in a string with values from an object literal. YouTube: https://youtu.be/p0SN049ikj8

  12. Spinal Tap Case -- Converting strings to spinal-case-with-regex. Capturing groups in Regex and our old friend the replace() method. YouTube: https://youtu.be/o66bwArtShw

  13. Sum of All Odd Fibonacci Numbers -- Adding new methods to arrays via prototypal inheritance. The this keyword. YouTube: https://youtu.be/6gsOXQWDGwo

  14. Sum All Primes -- Function hoisting. Writing modular code by breaking out logic into separate functions. YouTube: https://youtu.be/7-Z7lcm999o

  15. Smallest Common Multiple -- Finding the smallest common multiple for a range of numbers using Euclid's alrogithm. YouTube: https://youtu.be/itPtMtdEPis

  16. Finders Keepers -- Using function expressions with the filter() method. YouTube: https://youtu.be/0JrZju2q2bs

  17. Drop It -- Using while to loop through something an unknown number of times. Using shift() to remove the first element of an array. YouTube: https://youtu.be/T3Q5Pffp6EM

  18. Steamroller -- Flatten a nested array using reduce() and recursion. 2 solutions available! YouTube: https://youtu.be/0Ke8KQSOFms

  19. Binary Agents -- Convert a string of binary code into human readable text with parseInt() and fromCharCode(). YouTube: https://youtu.be/ghLTDAvLs_w

  20. Everything Be True -- Checking whether or not all objects in a collection have a certain property with every(). YouTube: https://youtu.be/UuRsIAjTKzI

  21. Arguments Optional -- Returning functions and preserving values with closures. YouTube: https://youtu.be/wA45ErxhRao

Advanced

Watch the Advanced Prep Video!! -- YouTube: https://youtu.be/dv6pkLYmqY0

  1. Validate US Phone Numbers -- Very seriously long and complex Regular Expressions. Using Regex.test() to validate strings against a regular expression. YouTube: https://youtu.be/JB71tFPsm2s

  2. Symmetric Difference -- Finding the symmetric difference of 2 or more sets of numbers. Uses reduce() and 2 helper functions. YouTube: https://youtu.be/v04Bmbfa4Jk

  3. Exact Change -- Good, old-fashioned problem solving with the methods you already know and love. YouTube: https://youtu.be/_nAUQYOjIek

  4. Inventory Update -- Updating the current inventory (a 2D array) with the newest inventory (another 2D array). YouTube: https://youtu.be/5FoMIM5IChw

  5. No Repeats Please -- Calculate the number of permutations of a string with non-repeating values. YouTube: https://youtu.be/B5lUyJDkWzE

  6. Friendly Date Ranges -- Using Date.parse() and the Date object to create friendly date ranges. YouTube: https://youtu.be/Q1qlJkPb9Nk

  7. Make A Person -- Object constructors and the this keyword. Difference between public and private properties. Configuring object properties with Object.defineProperty(). YouTube: https://youtu.be/vhqkRKkeyVo

  8. Map the Debris -- Doing astronomical calculations using forEach() and reduce(). YouTube: https://youtu.be/DQxLcQKVkP4

  9. Pairwise -- The final challenge (unless Free Code Camp adds more)! Using additional arguments with reduce(), NaN, and multiple variable assignments. YouTube: https://youtu.be/yu6C1YLIdQA

Contribute

Contributions is what makes open source projects succeed! If you see a mistake or think you have a useful improvement, fork/clone this repo and make a pull request!

If you contribute a video lesson to this series, then you are amazing! Just follow these steps:

  1. Upload your video to YouTube.
  2. Submit one JavaScript file for each lesson.
  3. Update the README and add your lesson under the Content section.
  4. Make a pull request and await everlasting glory.