Hi, guys. If you're watching this video, it probably means that you want to start a career in this highly demanded IT field. Maybe you want to get into DevOps and that's how you came across my content. Maybe you want to get into software development or cloud engineering and you've seen our Python course or Docker full course as your first step into IT. But whatever field you choose, these IT beginners course or kind of a mini boot camp that we created will be the foundation knowledge you need to enter this seemingly overwhelming tech world. I know that when you're at the very beginning of an IT journey, it can be extremely overwhelming. I receive questions from many of you about not knowing where to start, what to learn first. There are so many options, so many IT fields and professions. There is so much to learn and often you don't even know where to start. If you are transitioning from another career, you may be even thinking, will it pay off? Am I too late to start my IT career? Because there's so much to learn, I can never catch up with those who already started at an early age. Many of you have also asked me how to get into DevOps field specifically without an IT background. And I've explained in some of my other videos that starting into DevOps without any IT pre knowledge is very difficult because you need to first learn the fundamentals of the software development and release life cycle to even understand why DevOps is relevant and why we want to use any of the DevOps concepts and tools in software development projects. And I understand all of these concerns, the self doubt, the time pressure, insecurity, etcetera, and that's exactly why I created this course. I have structured and planned out this course with the main goal to make your learning journey into IT easy and fun. Completely dissolve the fear and insecurity of software development being so hard to understand. I have structured it to teach you exactly what you need to build a strong, solid foundation and focus on the most important concepts, understanding the complete process of software development life cycle and every step of it, which is something many junior engineers with a couple of years of work experience may not even fully understand. So I focus on giving you a lot of very important and sometimes even advanced knowledge, but in a super easily digestible manner. I have broken down every complex topic into simple explanations so that at no point in the course, you will feel overwhelmed by the content or have trouble understanding something. And that, as I said, was my absolute priority when creating this course. And if you follow the course without skipping any parts, take time to do all the demo projects along with me. By end of the course, you'll have an exceptional foundation knowledge to build on whatever IT specialization you choose to follow. But if you choose to go into DevOps specifically, this course will actually be the perfect entry to get you prepared for transitioning into DevOps since we made it as a perfect prerequisite course to our DevOps boot camp. So the combination of these two programs will take you from literally zero IT experience or knowledge to your very first DevOps engineer job. And if you do choose this path, I'll be very happy and honored to help you and accompany you on this journey. Now let's see what we will actually learn throughout this course. For that, you need to first understand that in IT, there is something called a software development life cycle. It's basically the complete process of developing and releasing a software all the way from planning to development, testing, packaging, and running it on a configured server to make it available for the end users. Each of these steps are done by various roles, like a developer, tester, systems administrator, product owner, etcetera. And we are simulating this entire process in an example software development project covering various roles and going through what each role does and how they work together. So we will plan the project on a scrum board. We'll create a sprint. We'll program the application as a full stack developer with front end, back end, and database for data persistence. We will then write automated tests for our code. We will then package it into an application artifact. And after that, we will create a virtual server on a cloud platform and prepare the server for running our application on it as a server administrator role. And finally, we deploy the application artifact on that server and make our application available publicly from a browser. And, of course, along the way, we will learn all the relevant concepts and tools of each of those tasks. We took our time structuring this course perfectly to include exactly the right amount of knowledge, to pick the most important core concepts and explain them with engaging animations and examples. Without rushing into things, we'll be taking time to learn every important underlying concept and more importantly, all the whys in the process. And, of course, the best way to learn anything is by doing it yourself. So we will practice all steps with hands on projects. And that's why I mentioned this is also kind of a mini boot camp considering the scope of things you learn. Now what does this course give you that you can't get in other courses or even boot camps? Well, my goal with the course was to give you an equivalent of junior developers' work experience. Now, of course, if we take junior developer who has been programming for a year, that's a lot of coding practice. So they will have more knowledge in coding specifically that you have to catch up. But here's where it gets really interesting. Very often, junior developers with even two years of experience have knowledge gaps and miss knowledge in some parts of the software development life cycle. And this is true in most cases. How do I know? Because I was a junior software developer myself once, and I know many of my developer friends had the same issue. So you know how to program front end, how to program in back end. You can make connections to database so you can work with parts of things that have been set up already and basically do the small tasks in the project. But most junior developers have not set up the project from scratch, like front end, back end database. They haven't learned the concepts of why we are using a JavaScript framework. Why are we using libraries? What's the comparison? Why are we using package manager tools? What are the best practices there? What's the underlying concept of all of this? How do I connect front end to back end? Why do I have to connect my front end to back end and then database? And what's even more, how do I take the application that I just developed, package it, and deploy it on a remote server? How do I even create a virtual server? What about installing packages on an operating system? Package manager tools on operating systems? What is all that? Why do we need them and how they work? And finally, why do we use Jira boards? What's Scrum? Agile? How the whole workflow actually works? And why are software development projects using it? So these are all knowledge gaps and whys of every step of the software development life cycle, which really makes you understand the underlying concepts. Because when you start at a tool level or a technology level, you know how to use the technology and its features, but you don't always know why you are using them. You just join a project and start working with what they have set up already. But nobody explains to you really what the purpose of each tool and technology used in the project is or the reason why they are using this workflow. And when you have a clear understanding of those whys and a big picture of the software development life cycle, trust me, you have a solid foundation that many beginner engineers will envy. And when you start working, you will not feel like you need much hand holding from your team. They will be actually amazed to how good of an understanding you have of their processes for a beginner engineer. Now, of course, you will have to learn new tools and practice programming, learn new concepts, etcetera, because being in IT is an ongoing learning process. But for each new concept or tool that you'll have to learn, you will have some kind of tie points and connections on your knowledge base. So you will be able to easily retain the knowledge because you have a point this new information can tie into. And with knowledge gaps and holes, you may miss much information and get overwhelmed because you don't know where they fit. As a junior, I actually learned too many things, things that I didn't necessarily need, but I didn't know exactly what was relevant and what wasn't. And I didn't know in which order I needed to learn those things either. So it took me longer to learn certain things and understand the big picture because I wasn't always learning the right things at the right time. It's like putting the puzzle pieces together without knowing what you're actually building, without having the end picture. So it takes you longer, and only once you get close to completing the puzzle, you start actually understanding the picture. Oh, that's what I've been building this whole time. Good to know. Versus having the picture as a road map and guide from the very beginning. Plus, by learning the right things in right order, we'll let you get the necessary knowledge in shorter period because you learn exactly what you need in a compressed curriculum, and you're not wasting any time. And that's exactly what we are achieving with this course. So this all around knowledge of concepts and roles that covers the entire software development life cycle is very rare because most courses usually focus on one specific part of this life cycle and not the whole picture. So it's very rare, but extremely valuable. And this can actually put you ahead even a lot of junior engineers who have more work experience than you do. So let's see in detail what you will learn in this course. We will start with the first part of the software development life cycle, which is planning. First, we start by setting up a Jira board for a scrum project and learn about concepts of Agile, Scrum, and how to work on a Scrum project with Jira. And we will be developing and working with a web application called Teammable as a practice project for the entire software development life cycle process. Once the first development tasks are planned in, in the second chapter, we will start with the development part of the software development life cycle and learn how to develop a web application. First, we'll learn JavaScript basics, syntax, concepts, of course. We will then learn HTML and CSS and create an example web application with HTML, CSS, and JavaScript to practice using them together. During this process, we will learn about code editors, how to use them, as well as how to make use of the browser's developer tools, which help immensely when creating web applications, troubleshooting them, etcetera. So that's a very useful and valuable skill to have. Equipped with this knowledge, we will then create the first version of the teamable application, front end with HTML CSS and vanilla JavaScript. After that, we will learn about JavaScript frameworks and one popular JavaScript framework specifically called Vue JS. We will build an example Vue JS project. And once we've learned how to use Vue. Js, we will replace the vanilla JavaScript of our T Mobile application with Vue. Js framework. And in the process, we'll see exactly why frameworks are good and what benefits they bring. And in that process, we will also learn a very important concept of versioning applications, frameworks, programming languages. With that, we will have the front end of our web application developed with HTML, CSS, and Vue. Now it's time to create a back end for our front end application. So we'll learn why we need this construct of front end and back end in web applications at all, how the communication and connection between those work on a high level and all the concepts involved in this. We'll start by learning a back end JavaScript framework called Node. Js and create an example web server application with it. We will also learn about libraries, why we need them and how to use them. Will learn about NPM, package repositories, modules, how to install packages for an application, etcetera. We will also learn the core building blocks of the web itself, such as HTTP protocol, HTTPS, ports, IP addresses, URLs, and how are they relevant in the software development life cycle. And once we've learned all these concepts as well as how to use Node. Js to write web server applications, we will implement the back end for our T Mobile application. Once we have front end and back end, we will connect our application to a database to persist data. So first, we will learn generally about databases, different types of databases and their usages. And for our application, we will use MongoDB database specifically. So we'll learn how to install and configure MongoDB database and connect our back end application to it. And with that, we'll have a fully functioning web application with front end, back end, and database where users can now make updates in our application that will be persisted in the database. So this completes the development part of the software development life cycle and brings us to the next section, which is testing. So we will learn all about application testing and test automation, different types of testing and their purposes. And for our T Mobile application, we will write unit tests and integration tests to see how it actually works in practice. Then we move on to the next part of the software development life cycle, which is application release. In this scope, we will learn how to package an application, and more importantly, why we need to create a package or application artifact. And then comes an extremely important part of understanding the server basics, learning the concepts of servers, operating systems, cloud platforms, how to create a virtual machine on a cloud platform, and so on. As part of the operating systems basics, we will also learn about command line, package managers, how to install packages and software on an operating system like macOS, Windows, and Linux, concept of SSH and securing access to servers. And I explain all of these by often giving comparisons between macOS, Windows and Linux operating systems. So you learn this on a high level, not just specifically for one OS. Equipped with this knowledge, we will then go ahead and create a Linux Ubuntu server machine on a cloud platform. We will learn how to connect to it, install packages on it, and so on. So basically, our server for the deployment. We will then get our application package and run it on our configured server. In this scope, we will also learn about firewalls, securing our server, about the different deployment environments for an application, like development, testing, staging, production, and what is the purpose of each of these environments. So this completes the whole process of developing and deploying the first version of our application. But we won't stop there because the life cycle continues. So we will simulate completing our first sprint and planning the next one, in which we will learn how to secure a database and configure access to it in our Node. Js application using environment variables. This teaches you an important concept and skill of configuring an application for multiple deployment environments. With this new application changes, we will release the second version of our T Mobile application on our deployment server. And finally, in the last chapter, we will learn the concept of collaborating on application development and working on code using a version control system like Git. First, we will learn generally why version control tools are needed, and then we will, of course, learn using Git in practice with our teamable project. And this will fully complete your broad skill set of essential concepts and tools in the whole software development life cycle. Here, I want to point out one thing that's very important to me. Throughout the course, I teach you things to enable and empower you to then go and do similar things independently. So when we install things, for example, instead of giving you some commands, you just copy and execute blindly, I teach you how to use and follow official documentations of those tools to install them, like I or any senior engineer would actually do in practice in their regular job. So I teach you the concepts as well so you can apply them to any other similar use case and not just what we learned in this specific course. And this should give you confidence and dissolve the fear of doing such things in practice by yourself. Now if all this sounds a lot for you, don't worry because my team and I have put a lot of work and effort to make sure this course is the most informative and valuable, but also most fun and engaging course out there to get you started in IT. I have broken down every complex topic into simple explanations so that at no point in the course, you will feel overwhelmed by the content or have trouble understanding something. So this should make it very clear that this is not just a coding course or a coding boot camp because they are focusing on the programming part only because that's their main focus and objective to teach you software development. While we in this course are focusing on going through each part of the life cycle, Understanding the process of complete software development and release life cycle. And last but not least, we have two lectures in this course related to AI. One of them is at the start of the course where I show you exactly step by step how to leverage the AI strength to create your own custom study companion. So I show you how to use AI to create your individualized learning schedule, create weekly and daily check ins, and how to use it to stay motivated and increase your chances of successfully completing this program. Now we are all humans. We all have highs and lows. Sometimes life gets in the way. So it's really important to have a system that keeps you on track even in those challenging phases. And I want you to really succeed in this, and that's why I created this video. So before you start with the rest of the course, please view that first and follow the steps that I show you there. Now the second AI video is at the end of the course, which is very technical. So once you have learned all these foundational engineering skills from the course, I show you how to now leverage AI's powers to become 10 times more efficient and valuable as an engineer with the help of AI. I teach you a specific tool, which is an AI code editor, and we're gonna do very specific real life use cases to learn what you can do with AI as an engineer. And also help you understand where AI capabilities can actually fit into this whole picture of your engineering career and how you can use that as a tool to really take your engineering skills to the next level instead of being intimidated by it, which is a very important mental switch for any engineer right now. Now let's talk about what's included in the course. First of all, the core part is the videos, which are mostly hands on demos often with accompanying explanations. And whenever a new concept is taught, I break it down in a simple manner with lots of helpful animations. We also created human translated English subtitles for the entire course. In each lecture, we have also added all the relevant links, commands, and repositories where you can access the code that I show in the demos. So every video will be accompanied with any relevant code from that video. With all of these, it should make it very easy to follow the demos. The course is carefully planned in a specific order to give you the full understanding of different parts. So to really make the most out of this course, you should actually follow it without skipping any parts. Even if you already have some preknowledge in any of the areas, you may still learn something new when I give some side notes or explain things from a different perspective, and you can even control if you want to speed up the videos if you're a bit impatient like me. You can also track your progress like this, which may be some extra motivation in the learning process. And last but not least, a very important part of the course is the accompanying group to the course where you get support from us if you have any questions during the learning process, but also a place where you can exchange with other students of the course. So with this, I'm already super excited to welcome you in our IT beginners course. And, of course, you can write us anytime if you have any questions that I haven't answered here. And with that, I am super excited to teach you all of these. So let's get started.