Tuesday, 7 August, 2018 UTC


Summary

It would be difficult to be a developer these days and not have at least a limited understanding of the web and it's massive popularity. As many of you probably already know, the Web (or World Wide Web) is the system of web pages and sites that uses the Internet to pass data and files across it between endpoints. It was developed in the late 1980's by Tim Berners-Lee.
But enough of the brief history lesson, lets have a look at how much impact the internet has on the world as we know it. It has enabled revolution of almost every part of our lives. From how we interact with friends, colleagues, and government, to how we shop or even sell our items. The internet has had an incredible impact on a huge number of industries to mention but a few; education, entertainment, marketing, and commerce.
With this kind of impact it's important for one to have a deeper understanding about the web, which includes knowing how to build applications for it. This is something I would recommend for everyone, learning about the internet, irrespective of which industry you are in, as you or your company will likely need a website at some point. Teaching others to develop for the web may hurt my job security, but it will make the world a better place.
Throughout this article I will be reviewing The Web Developer Bootcamp, which aims to teach you how to develop websites and web applications that are accessible across the internet.

Instructor

It's quite the CV the creator of this course has. The instructor is Colt Steele, and with just 5 courses to his name he has definitely made quite an impression. With over 370,000 students taking his course (at the time of this writing), this goes to show just how many people out there trust him and are taking his courses. Already feel like you are in the right hands? There probably is good reason. Colt was actually voted Udemy's Best New Instructor in 2016.
Colt Steele also has quite the experience in a variety of other roles as well, having worked as a Lead Instructor, Curriculum Director, and Lead Course Developer for the company Galvanize. To check out more about him and see his other courses, be sure to visit his profile on Udemy.

Audience for Course

Like I alluded to earlier, thanks to the popularity of the internet, web development is becoming more and more for everyone. The instructor of this course understands that very well and has made sure that this course can be taken by anyone, no matter their level of expertise.
No Prior Web Development Knowledge is needed.
If you want to learn web development and have absolutely no prior knowledge of it, just jump in to the bootcamp and get started. The course even has an introduction to the web that explains extensively how the web and internet works, and then progressively moves on to even teach about APIs and other web technologies.

Content Overview

Enough with the background, it's about time we take a look at the contents of this course.

HTML & CSS

HTML and CSS are 2 of the most important technologies in building components for any website. HTML (Hyper Text Markup Language) is used to describe the structure and layout of web pages, using elements which are represented by tags, whereas CSS (Cascading Style Sheets) describes how the HTML elements are to be displayed on screen.
Understanding the importance of these technologies to web development, the trainer takes time to take the user through introduction and continuing to intermediate concepts for both HTML and CSS. The course takes a hands-on approach at training learners, taking them through building a Pokemon table, creating a Tic-Tac-Toe board, and much more to help the learner grasp the concepts.
This sections also makes sure to cover Bootstrap (an open source toolkit for developing with HTML, CSS, and JS), and uses it to help the learner build an image gallery and a landing page in the process.

JavaScript

"Not to be confused with Java"
Not sure how many times I heard that phrase when I was starting out in JavaScript.
JavaScript has, on many occasions, been referred to as the "Language of the Web". So, it's definitely not a surprise that we are having this amazing language covered in this course.
Step by step, Colt takes the students through an introduction to JavaScript, training the user on the JavaScript syntax. After acquiring a grasp of JavaScript syntax the student is then taken through JavaScript control flows like loops and conditional statements. The course then moves on to cover more loops, arrays, and objects in it's in-depth dive into JavaScript.
During all this, the user learns by building simple apps like an Age Calculator, a simple game, and more. I also have to give props to the trainer for tackling the null and undefined topic in this course, which is not always easy to teach, especially to beginners.

DOM Manipulation

The DOM, or Document Object Model, defines the logical structure of documents and the way a document is accessed and manipulated using code. This mostly involves writing some JavaScript code that selects HTML elements from the page and manipulates them. It's used in almost every non-static website out there.
Some of the things we can do with DOM manipulation is change the content or style of text, react to events, or add and delete HTML elements. As you can see this is what makes the web pages interactive. This is one of the most important concepts for creating dynamic content in web development, as it's used by almost every web developer out there, and it's so important that at this age most developers consider it an essential part of building applications. Whether they do it directly or from one of the many frontend frameworks out there like React.js, Angular, or Vue.js.
As always this course takes the learner through the basics and later build on top of that to give an introduction of more advanced concepts. The instructor takes the learner through basic manipulation all the way to interacting with events. Keeping up with the hands-on approach of helping the learner understand, you will get to build a few apps with the help of DOM manipulation, like the Colour Game Project, Simple Selector, and a few others.

jQuery

jQuery is a feature-rich JavaScript library that helps with DOM manipulation, event handling, animation, and AJAX, among other things. When it was first introduced jQuery revolutionised how people wrote JavaScript.
However, the trainer starts with acknowledging the discussion for and against jQuery that is currently on-going. Giving the learner some of the reasons to or not to use jQuery. He also giving the learner reasons why they need to know jQuery, thus reason for its inclusion in the course.
The course takes the learner through what jQuery is, the discussion mentioned above and how to include jQuery in your project, basic introductions. It moves on to show the learner how to select and manipulate DOM elements using jQuery and including some other exercises along the way. The course goes on to introduce the learner to class manipulation and events e.g .keypress(), .on("event"), etc. and provide examples to aid in understanding the use of these different concepts.

Node.js & APIs

There is a lot of content in this course on these two topics, diving deep into different parts of each of the two. But since much of these overlap I am going to talk about the contents of the two together.
The course starts out with the basics giving the learner a deep dive into HTTP (e.g status codes, request types, etc.) and the backend workflow. The backend workflows seek to show the learner how to set up and connect to databases, how to create and run servers in Node, and lastly how to create routes to access data and handle different request types.
An introduction to Node is given to help the student understand the working of the same and how to interact with its package manager, NPM, as well. The course also goes on to provide details on a few critical libraries that help with development in Node, like Express.js, by showing the student how to set it up and use the library for development.
Finally, the student is shown how to use APIs, or Application Programming Interfaces. The course walks the student through the various steps of how to create a simple API and then moves on to show the user how to use other 3rd party APIs. This is one of the most important skills for any web developer since it's becoming more rare to build a web application without interacting with an API (yours or a third party). In this section you'll get to interact with the Yahoo weather API and Open Movie Data Base Movie API.

YelpCamp

This course finishes up with one of the most amazing features I have seen in any course. The trainer takes time to take the learner comprehensively and step by step through creating a web application. This part covers from project set up, taking the user through route set up, setting up the database, and data persistence. The course uses the Mongoose library, which is a popular database ORM used in Node.js.
The Web Developer Bootcamp further goes on to explore RESTful routing, demonstrating it by using a simple blog and then integrating it in to the project. The course further goes on to demonstrate data associations, authentication, and working on the UI. This amazing part of the course finishes up with one of the most important steps of development that is often overlooked, deploying the app. The learner is taken through the process of deploying the app to Heroku.

The Good

Hands-on Approach

As you probably have noticed, I have mentioned on several occasions that this course takes a hands-on approach to training the learner on every topic it tackles. For every topic undertaken in this course the trainer takes time to actually show the user how to do it and let the user follow along with simple tasks and exercises.

Resources

Like in any other course, it can be hard to follow along for most lecturers, especially if it's a new concept. This course understands this for a fact and has provided back up resources like slides used in the video and code snippets to help the learner reinforce what is taught in the video lectures.

Projects

This course further goes on to lead students in building real-world projects to help them get to market standards. Unlike other courses that just teach the basics and let the learner figure out the rest on their own, this course takes ownership of that and shows the learner how to do a couple of projects.

Honorable Mentions

Other honorable mentions of course topics that I was really impressed wth include:
  • Git and Github: A section to teach the student how to use version control to save all changes they make to their code and how to share this code with other developers on your team.
  • Tackling JavaScript: The tricky stuff: A deeper dive in to JavaScript that teaches students some of the more advanced topics of the language.

Critique

Frameworks

This course is brilliant, but the fact that it over-looks all the frontend frameworks that are out there and very widely spread is a bit alarming to me. These frontend frameworks offer a great deal of value to developers, so the least they could have done is mention a few frameworks and give a shallow introduction to one of the more popular ones.

Conclusion

The web has been around for a while, and looking at its impact I'd say that it's not going anywhere anytime soon. As mentioned earlier, at some point almost everyone, or at least every company, is going to need a website sometime and learning how to build one can be an incredibly useful skill to have.
There are numerous ways to learn how to build web applications using a wide range of programming languages out there. However, JavaScript has been described as the language of the web, thus learning to build with it is an added advantage. This course does just that, from building static HTML to styling and building an API all-in-one course.
No course can teach you everything on any single topic, and even though this course might have it's faults, The Web Developer Bootcamp can at least serve as a great starting point. I'd personally recommend you start learning how to build web applications using this course, and from there move on to explore other ways of learning until you find a method that works best for you.
Happy Learning 👨🏾‍💻