(!) Worst Online Courses #2

Worst Online Courses #2Build a Responsive Web Site from Scratch on SitePoint by Guilherme Muller

I figured it was time for another entry in my “Worst Online Courses” series, and this course on SitePoint unfortunately earned a top spot in my “worst” rankings when I completed it back in 2017. It was released in April 2017 so it’s just a bit dated (but not by too much that it’s totally obsolete) by Guilherme Muller, a freelance full-stack developer. In a lot of respects it’s similar to the more well-known course Git a Web Developer Job by Brad Schiff on Udemy, as the focus of both courses is on workflow in front-end Web development using Node.js/NPM and Gulp.js.

With that intro out of the way, Muller’s course is unfortunately trounced by Schiff’s Git a Web Developer Job in so many ways, and by so much, that it’s really not worth doing at all. I honestly don’t understand how Muller’s course has so many positive reviews on SitePoint either, especially when there are so many egregious things wrong with it—so many, in fact, that I might as well just list them all out.


  • Muller’s demonstrated workflow practices were beneficial as a counterpoint to those demonstrated by Brad Schiff in his own course.
  • Course content itself was valuable in seeing how to build up a responsive site from scratch without using a framework like Bootstrap.
  • Lots of example code available to download for quick reference.


  • Muller didn’t take the time to explain a lot of the Node.js/NPM setup as far as Node.js commands, setting up the package.json file, and building the gulpfile, leaving it to the customer to figure out each step and line of code, while all of these were explained by Brad Schiff in his own course.
  • Muller rarely verbally said which file he was working on, leaving it to the customer to figure out visually from the screencast, which ended up being extremely annoying & frustrating.
  • Muller never explained why he was doing what he was doing.
  • Muller’s on-screen “typing” actions went by way too fast to visually follow most of the time, and scrolled around within his files too quickly to visually follow as well, which required excessive pausing on the video in order to follow individual lines of code. This was further exacerbated by the fact that SitePoint doesn’t offer video playback speeds of less than 1x, which would have been very helpful on this course to better follow all of the quick on-screen scrolling that happened.
  • Muller assumed that the customer/student would have a working knowledge of Sass, as he didn’t cover basic topics like variables, mixins, imports, etc. Conversely, Brad Schiff in his course did not assume any knowledge of PostCSS. Furthermore, Muller didn’t take advantage of Sass everywhere that he could have, as he didn’t use variables for color values.
  • Muller didn’t provide any explanation of BEM, leaving the customer to wonder why it’s needed and why it should be used.
  • Going through the course videos in sequence and following along by writing the code from scratch did not result in working files; Muller needed to QA his own video content before releasing the course.
  • Subtitles were often inaccurate, which was further negatively compounded by Muller’s non-native English speaking accent. Non-native English speakers may very well find it quite difficult to understand him and follow along with the videos.
  • The downloadable code files didn’t consistently match the line numbers seen in the videos, leading to distrust in both the files and the video content—i.e., it left me wondering which was supposed to be accurate, the files or the video?
  • There were many moments in the videos where it was obvious that Muller did not record all of his code typing to the screencast, as the videos often showed files in which code had already been written but should have been empty when appearing on screen for the first time.
  • There were many, many quick mouse & keyboard actions in the videos that went by way too quickly to visually follow, leading to an exercise in frustration to clearly see what happened. SitePoint’s limited selection of playback speeds were extremely unhelpful in this aspect, as speeds of less than 1x would have helped counter this quite a bit.
  • Bad demonstrated practices:
    • Demonstrating non-optimal use of GitHub’s Atom editor by setting tabs to TAB instead of tabbing with spaces (which can pose a problem when collaborating with others via Git).
    • Not using word wrap in Atom, and instead using extra-long lines instead of breaking them after a certain length like 80-100 characters.
    • Using the universal selector (*) in Sass code to apply 0 margin and padding for a CSS reset, instead of using a more targeted and limited set of selectors to achieve the reset (like Eric Meyer’s).

Conclusion: Unfortunately for this course, the cons vastly outweigh the pros, and for me contributed to it feeling like one of the most annoying, frustrating, and aggravating courses that I’ve ever taken online. There were just way too many points in the videos where I honestly got fed up with Muller’s lack of attention to the presentation and user experience in this course, and I got exasperated by it throughout. If you’re looking for a workflow course on using Node.js/NPM for front-end Web development, stick with Brad Schiff’s course on Udemy as this one doesn’t add anything that isn’t in Brad Schiff’s course, and it has a far worse user experience that I guarantee will frustrate most people.

Rating: 1 out of 5 (-4 for extreme annoyances in the presentation and UX of the course and demonstrating bad practices)