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.
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.
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.
"Not to be confused with Java"
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
undefined topic in this course, which is not always easy to teach, especially to beginners.
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.
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
.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.
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.
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.
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.
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.
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.
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.
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.
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 👨🏾💻