Lecture 1: Course introduction
This is the introductory welcome video where I will tell you what we are about to create in this course. I will show you a short demonstration of Talker, the discussion platform you are about to create from scratch.
First, make sure to read everything below this video as I tried to formulate there what's behind this course and I want to make sure that we are on the same page.
Code examples
This course comes with a lot of resources. Make sure to download the RESOURCES.zip file. Save and unpack it to the location of your choice, for example on Desktop. In the unpacked folder, you will find examples and code snippets that I will refer to during the course, so I want you to have them ready right from the beginning.
Quality over quantity
I deleted over 40 hours of content to make this course digestible in a single day. I believe that you can find a lot of information about web development on the Internet and I didn't want to create yet another encyclopedia about web technologies.
I wanted to create the course with a focus on one single goal - to make you a web developer, to ignite that fire inside you, to inspire you, to motivate you.
The goal of this course is to give you only what you really need, nothing more. I don't want to waste your time with hours and hours of content, I don't want you to skip lectures trying to find what's relevant. I did it myself by deleting almost 80% of the original content leaving only the most important stuff so you can create your own web application.
I hope this will help you understand what web development is about, I don't want you to start thinking above specific languages and technologies, I want you to start thinking about principles. That's why I try to give you only what's absolutely necessary from the theoretical part and I want to push you as soon as possible to get your hands dirty with real work.
But I didn't stop there, I deliberately start slowly and gradually gain speed. I want the course to be challenging for you, I will help you step by step, but I want you to think about the code. That's why you will get the whole snippets of code which you can either just blindly copy & paste or try to understand and ideally even improve and optimize!
I hope you will further develop your final project, add new features and improve yourself on your own along the way. Treat this course as a starting point which goal is to push you in the right direction and leave you to thrive on your own.
I am real
Yes, I am real, and I am here for you. I am ready to help you and I won't leave you in the dark. This course is challenging, no question about it, but if you really struggle, make sure to let me know and I will help you.
I usually react the same day, the next day at worst. I will take my time to discuss your issues with you and we will find a solution together. Don't run away as soon as you hit your first problem you won't be able to solve on your own. Mistakes are the most precious things in the learning process. Make them and learn from them.
Especially the second part of this course, building your own web application might seem to be too fast, but rest assured that this is by design. Will your head spin? Good! Will you feel lost and confused? Even better! That's all the part of the process. Stick with the course and you will realize how it all fits together.
At the end of the course, you should be able to formulate not one, but many improvements and new features of Talker. How about avatars for users? How about uploading images to posts? How about allowing links?
Why isn't it already implemented? Because I want you to have the opportunity to figure this out your own way! I deliberately stopped with the bare minimum to give you something you can build upon your own solution, your own flavor of this application.
But I am still here, so even if you feel lost, I will take you back to the right track so you can keep pushing forward.
Development process
If you've never created any web application or even a simple web page, it's important to understand the lifecycle of the development or the development process.
Usually, there are three stages:
- Development itself, which is done locally on your own computer.
- Staging, which is a testing on a remote server in the environment same as the environment of the production server.
- Deployment, which means getting the final product to the production servers and have it ready to use.
There are big advancements in this field. If you are interested, google "DevOps", "Vagrant" or "Docker" and you will discover a huge world of very interesting information. I will touch some of these concepts later in this course.
Basically, everything revolves around the fact that those three environments can be different thanks to many aspects, which can cause a lot of trouble. Your app can work flawlessly on your Development environment, but for some reason, it won't work on the Staging environment.
Sometimes, this is caused by using third-party solutions called Frameworks. Frameworks are great time savers, they offer a lot of code, libraries, and functionalities. But they come with two problems.
The first one I have already addressed above. The second one is the fact that a lot of essential stuff is a like a black box. You don't know what's inside, you just know what you can throw in and what will come outside. This is not ideal when you want to learn web development.
That's why in this course, we won't use any frameworks or API unless we will understand what's behind the curtains. In some situations, we will reinvent the wheel, but for a good reason. Once you understand the inner workings, you can better use frameworks and appreciate the work of others behind it.
So, in the Backend section especially, we will work with vanilla technologies and create everything for ourselves from scratch, thus learning everything we need, all the concepts crucial to understand, and at the same time we will make sure that our final product will work anywhere, or any server and any web hosting, because we won't ask our web hosting provider for more than just the basic technologies.