Welcome to your exciting journey into the world of full-stack development! Whether you've dabbled in coding or are just curious about how websites work, you're in the right place. This course is designed to turn you from a complete beginner into a confident full-stack developer skilled in crafting modern web applications using NodeJS and React.
Hmmm, what is full-stack development?
Full-stack development involves creating all the parts of a web or mobile application and developing all processes and pipelines related to quality assurance and system delivery.
Being a full-stack developer can also feel like being in a one-man band ... a really awesome band, as you must know how to play many instruments to deliver your project.
So, what is a stack, and what role does it play in full-stack development?
The stack represents the selection of technologies to build, deploy, and maintain all the parts of a software system.
As a full-stack developer, your primary responsibility is to deliver your application's front-end and back-end. The front end is the application user interface, while the back end implements the business logic and data persistence.
Very often, you are also responsible for maintaining the quality of the software product, assuring that nothing breaks when new features are developed and integrated.
Once you finish a new feature, you will deploy your solution to the infrastructure, ensuring availability and scalability. Often, your application is spread across multiple servers, cloud providers and architectures.
Last but not least, you should be knowledgeable of project management methodologies and tools to support system development and have the capability to automate repetitive processes in the lower layers of this stack. Are you ready for the challenge? Let's now dissect individual parts of the stack.
The front-end is like the exterior and interior designโwhat users see and interact with. It is the visual part of your applications, such as the skillpies website.
There are many frameworks that facilitate front-end development, such as AngularJS from Google, .NET from Microsoft, or open-source frameworks such as VueJS, Svelte or ever-so-popular jQuery.
In this course, we will use React, which is a javascript-based framework developed at Facebook, quickly becoming one of the most popular front-end frameworks out there!
Behind the scenes, the back end is where all the power lies. It's where your business logic, financial transactions, confidential computations, and the magic that drives your application all come together.
Due to the limitations of programming language support in browsers, the front end is usually built with HTML, CSS, and Javascript. But, in the backend, you have more freedom to choose your programming language and architecture.
Python language is a popular choice, supported by fully-featured Django framework and FastAPI.
Beginners love PHP, and Laravel delivers probably the most complete tool-belt out of all existing frameworks. PHP still powers over 80% of websites around the world!
If you are looking for a corporate solution based on Windows OS servers, Microsoft's .NET has been a stronghold for full-stack applications. But, in recent years its popularity for new developments is slowly declining.
While there are other languages and frameworks, such as Ruby and Rails or Java's Spring Boot, this course will use NodeJS. We have very good reasons for choosing NodeJS, which we will discuss later. For now, all you need to know that it will make your life easier while learning one of the most popular back-end frameworks.
Let's briefly discuss why we chose the ReactJS framework for front-end development during this course.
Number 1 reason is that React is straightforward to learn and use, especially if you're already familiar with JavaScript. You can build dynamic and interactive UIs with React without steep learning hurdles.
React is one of the most in-demand skills in web development today, with ever growing community.
React developers are also among the highest paid front-end developers on the job-market!
React composes user interfaces from components. You can reuse components across many projects, saving you much time. You can also use ready-made components from open-source or commercial UI frameworks or package providers such as NPMJS
As mentioned in a previous slide, React ecosystem contains tons of libraries, tools, and resources supported by a bubbly and friendly community. Check out technology visionaries and thought leaders for your next Instagram or X follow. It's fun!
With React, you are in great company. The majority of Fortune 500 companies already use React. Companies like Netflix, X, and even Tesla have recently rebuilt their online services using React. This indicates the longevity of the adoption of this technology.
Alright, we chose an excellent front-end framework. Now, let's discuss why we chose NodeJS for our backend.
NodeJS is built on the V8 engine, making it incredibly fast and efficient in executing JavaScript.
Its non-blocking, event-driven architecture allows for handling multiple requests simultaneously, making it highly scalable for large applications.
NodeJS is designed for the online world. It is ideal for building real-time applications like chat apps, gaming servers, and collaborative tools.
NodeJS unifies development across the entire stack using a single programming language, JavaScript or TypeScript.
So, you'll be able to focus on developing features for your client or server, rather than learning new technologies or running different tools.
This unification speeds up development, reduces the learning curve, and simplifies code maintenance.
Sharing code between the client and server becomes effortless, enhancing overall productivity.
I hope you're motivated to complete the exciting journey and learn full-stack development with me.
For now, we will leave the rest of the stack alone and focus on front end, back end and database development.
As a back-end, we will use the popular SQL-based PostgresDB. We will explain our choice later on and we will also try No-SQL databases, such as MongoDB.
Hey, let's dive into the exciting stuff! In the next section, we'll kick off by creating our first application. This app will help you plan your day and stay on top of your tasks. So, let's Get things Done!