 Software development is a broad field that encompasses a wide range of job titles and roles. Software jobs require different skills and are better suited for different types of people. Someone may enjoy one type of job, but really dislike another one, even if they may seem similar positions at first glance. I'll go through a few examples and some of the skills that you'll want to make sure that you have for each one. This is not a full list, but it does include some of the ones that I've had the most experience with. So first up, software developer. This is a very general term that can refer to a wide range of roles, but typically involves writing some code to create and maintain software applications. For this, you're going to be expected to know at least one programming language and to be able to demonstrate some experience with creating projects. This one breaks into a few different possibilities that we'll cover next. Full stack developer. A full stack developer is a software developer who has experience and expertise in both the front end, the client side, usually like a web browser, and the back end, the server side of software development. This term has risen in popularity over recent years and is probably overused when people advertise their skillset. In my opinion, it takes years of experience with both front end and back end development to really consider yourself full stack. That said, it does create a role for developers who enjoy both front end and back end development and who like to be able to control and create the full application process, including the database. Front end developer. A front end developer is responsible for creating the user interface, the UI, and the user experience, the UX, of a website or application. Skills for this role include languages like HTML, CSS, JavaScript, more modern day requirements include reactive frameworks like React, Vue.js, many more new ones that are introduced all the time. Keeping up with all of this could be very daunting since the rate of change is very, very rapid for front end systems and web browser applications. Back end developer. Back end developer is responsible for the server side of software development. Typically use languages like Python, Java, C sharp, Go, Rust, Node.js, something like that to develop and maintain the servers, the databases, and the APIs. Experience creating REST APIs that connect to a database would be a big requirement for this position. Mobile developer. A mobile developer creates software for mobile devices like smartphones or tablets. They typically use languages such as Swift for iOS development and Java or Kotlin for Android development. This is also a rapidly changing space and keeping up with device changes and available code libraries for each, that's an added skill. Game developer. A game developer creates video games for a variety of platforms such as PC, console, mobile, typically use game engines like Unity or Unreal Engine as well as programming languages for those like C++ or C sharp. There are many other smaller game engines available but most games use one of these two engines. Luckily, most of the hard work is handled by the game engine. And although there's a lot of math involved in game dev, the engines usually abstract that away and make it way easier to do the common tasks. DevOps engineer. A DevOps engineer is responsible for the infrastructure and operations of a software project. They typically use technologies like Git, Docker, Kubernetes, cloud services like AWS, Azure, Google Cloud to manage and deploy software. While programming skills are very useful for DevOps, often they're not required beyond just some basic scripting with Python or Node.js or shell scripts. This is also a rapidly developing area and many DevOps groups are moving into platform engineering and creating internal applications to serve developers and testers as an internal customer. QA engineer. A QA engineer is responsible for testing software and creating automated tests that can run as part of a CI CD process flow. Skills for QA include JavaScript, testing plan software and testing frameworks like Selenium and Playwright among many others. Attention to detail and a curious nature are also really good skills to have for QA because finding new bugs that the devs miss can be a fun experience for the right person and lead to overall confidence for the whole team. There are many other roles and job titles in the software development field like security expert, data analyst, project and product managers and many of the roles can overlap. Also, many software developers have a combination of skills so the job titles are not always so clear cut. So hopefully this video has given you some information on what employers are looking for when they post these terms and job listings. Feel free to ask for clarification and more detail on any of this in the comments and I'll make some more detailed videos for you. If you found this video helpful, this next one will continue your learning.