JavaScript: From Fundamentals to Functional JS V2- FEM Course Review

JavaScript: From Fundamentals to Functional JS - Course Review

I just finished Bianca Gandolfo’s ‘JavaScript: From Fundamentals to Functional JS, v2’ course on Front End Masters a couple weeks ago and figured I would give my two cents on the whole thing. Being its 8 hours long, not including the pausing you’ll do to practice code and jot down notes, having a good idea of what you’ll be presented with before plunging head first might give you an idea if its something worth investing the time in.

TLDR Version:

If you’re a beginner or intermediate javascript developer, this class from beginning to end is absolutely worth the time invested. With Bianca’s in-depth analysis of some more common JS fundamentals that we take for granted, you’ll certainly come out of it with a better understanding of the Javascript language as a whole. My only critique is that the more advanced concepts of functional programming like compose and currying seemed to be rushed without going into too many fundamental use cases. People looking for expanded explanations of functional JS programming concepts may not find this course as helpful. Although most JS devs probably do not fall into that category so it’s great for the majority of people.

Course Setup:

Starting out, Bianca sets the tone of her class by telling the students that they will be called on to participate and that the coding challenges will also offer ‘clues’ . These clues are apart of a murder mystery game that Bianca has structured her class around to make the coding concepts more engaging.

Both of these qualities, student participation and Clue, gave the course an interesting and entertaining aspect. I personally hated being called on during class to answer questions in front of everyone but in this instance it works very well as a 3rd party viewer. A lot of the questions that may have been otherwise glossed over by Bianca were revisited because someone was called on and didn’t understand a certain concept. This was a huge help for me because there was a handful of times I was royally lost and one of the students also had the same question I had when they were called on.

The Content:

You can take a look at the course syllabus but Im going to list out the subjects below that I felt a much better understanding of after this course:

  • Array destructuring
  • Map and filter methods (in depth)
  • Function declaration VS function expression
  • Scope walkthroughs
  • Callbacks
  • Closure

So one of my favorite parts of the whole course was the line-by-line walkthrough of Scope. I never really had a clear idea of how scope worked and seeing it thought out loud and talked about this way made concepts like Block Scope, Function Scope and Lexical Scope so much clearer.

Honestly the line-by-line code explanations in general was what made this class so special. She really took the time to make sure the whole class knew what was going on at a very basic level before proceeding. It also seemed like the majority of the people participating were in that beginner to intermediate category (just like me) so we were all somewhat on the same wavelength when thinking through these problems.

If you didn’t read the TLDR version I had above, I did mention that there seemed to be a lack of content for compose and currying. This is just from my perspective as a beginner to functional programming. Maybe in reality those functional techniques aren’t really used that widely which is why they were glossed over, but either way I sort of left those lessons with a barebones idea of what they were.

And the killer is….

Well you’ll have to take the course and get to the end to find that out. All in all Im very happy with the time I took with this course. It improved my understanding of some more basic JS fundamentals that I took for granted. If you’re someone who uses methods like map, filter and callbacks but really want to know whats going on under the hood then this course is right up your alley. You’ll also get a lot of interesting tidbits of info like … an array is actually just an object! That one might have been obvious to some but she sprinkles a lot of little interesting facts like that throughout the course.

Oh one last thing before I end this. Throughout the course I started using this organizational/note taking tool called Notion. This thing is great, its like a notepad that was specifically built for developers. You can embed code straight to your writing with auto syntax highlighting. You can even include a functional Codepen snippet into your document. Its just clean and really a joy to use. Thought I’d give those guys a shoutout as I’ll continue to use them for jotting down my notes from these courses on Front End Masters.

Building My First App: The Process

A ton of beginners believe that they need to learn an immense amount of code before they can ever build anything useful. I’ve felt like that before, hell I still get that feeling of extreme self-doubt but its less frequent than before. I’m here to prove you CAN build an app that serves a purpose with very limited programming knowledge. There’s a few prerequisites that you must have that are not even coding related before you decide to build just anything. I’ll list the ones I find most important:

  1. Do you really want to solve problems and build things that make a difference for people?
  2. Can you identify a need or want that you have a desire to solve?
  3. Are you willing to put aside leisure activities to solve this problem?

I find the most successful programmers are not the people with the best coding skills, its the people who want to genuinely make a difference.  If you’re still struggling with those aspects then you maybe need to re-look at the whole reason you are in this game.

Ok so if you’ve got those 3 questions above answered, then we can move on. Just as a little background, I currently work at a marketing agency and we use a program called Google Adwords to setup and deploy advertisements. Without getting into too much boring details, we use these things called ‘keywords’ to basically figure out who we want to show the ads to when people search for things on Google. There’s a few modifications we can make to these keywords to alter their properties. For example, I can take the word “find a plumber” and change its properties in 3 different ways, like this:

+find a +plumber

“find a plumber”

[find a plumber]

I used to manually adjust these keywords one by one so it took a stupid amount of time to complete. I knew there had to be a better way, so I searched around and found this cool website called Keyword Toaster. This was great because I could now save a ton of time by just copying/pasting my chunk of keywords here and have this website convert them for me. Though, there were a few problems I identified that I feel could be improved:

  1. Prepositions shouldn’t be include for modified broad keywords
  2. I had rather edit the keywords in the same window as Adwords

So it dawned on me, what if I just made a Chrome Extension that fulfilled these needs? All the app is essentially doing is taking a string, altering it, then returning the altered string in an output box. Easy right? Well, kinda…

I looked into what it takes to create a Chrome Extension and found that I should primarily be using Javascript. One thing that made me go with a Chrome Extension is A) I could use the extension in the same window as Adwords and B) No backend/server-side coding needed. I rarely see anyone suggest creating a Chrome Extension to newbies but this was the easiest, most straightforward platform to launch my simple app to the world.

Alright so, I had a minimal amount of JS knowledge beforehand but I knew I really needed to brush up on the basics. So I went through a highly recommended course on that taught me these essential concepts:

  • How to read Javascript
  • How to debug
  • Functions/Arrays
  • Basic DOM manipulation

The course basically teaches you how to create a simple Todo app in your browser. This is perfect because all a Todo app does is take an input and display an output. If you think about it, that’s almost the core function of most applications at a very basic level. So what I did was run through the whole course once, then a second time. During the second pass of the course, I essentially took what was being taught and applied to to the concept of the app I was trying to create. I was able to take 80% of the code taught and use it in creating Keyword Modifier. The only real difference in this case was altering the output, which I accomplished with a little REGEX.

To live test the code I was writing I used This made it super easy to see my changes in real time for an app of this size. I wasn’t overly worried about CSS so it looked pretty fugly but all I cared about was the core functionality. Trust me, I make it sound like this was a simple process but even though most of the code I used was from the Watch and Code lesson, I had to reach out to people on different Slack channels and refer to Stack Overflow countless times for help.

After many months, my first little application was born on the Chrome Web Store. Here is a link to the first version I had initially launched.: . Its a little cleaner now after some refactoring and added functionality, so you will see some minor changes to it if you download it today.

The point of this whole article is to prove that if you have the desire to create and build, its going to carry you through the hurdles of coding regardless of how little you know.


If you’re reading this and currently struggling with your idea for an app, leave me a comment! I’d be happy to talk about your process and help you along.