Introduction to application development specialization, overview of the curriculum. Welcome to Introduction to Application Development, the learn Quest, Introduction to application development specialization is designed to provide you with an introduction to the knowledge and skills necessary to be a professional programmer. This specialization has no prerequisites. Rather, this specialization is the prerequisite for a number of learning quests, programming specializations. The Introduction to Application Development Specialization consists of four courses. This specialization is introductory in nature. The four courses that make up this specialization will cover a lot of ground, but are intended to give you just enough depth to prepare you for other courses. We're looking for a foundational knowledge, not mastery. Let's now discuss what will be covered in this specialization. Here are the four courses that make up this specialization. In Fundamentals of Programming, we'll get started with the basics of programming. What is programming? What concepts are common across many programming languages? How do we use those concepts to solve problems by programming? What are algorithms and design patterns? You will learn about data types, variables, expressions, conditional and looping code, subroutines and more. For this course, examples, demonstrations and lab exercises will be performed using the Python language, but the ideas are portable to other programming languages. A large percentage of enterprise programming today is done with object oriented platforms. In object oriented concepts, we will introduce the core concepts behind modern object oriented programming. We will discuss objects, classes, messaging, inheritance, polymorphism, and more. As with Fundamentals of programming, we will illustrate the concepts using the Python language, but they will be portable to other object oriented languages. Today, many developers, not just those working in the enterprise, use version control systems and build automation tools. In Essential Tools, we will look at these two important classes of tools for developers. We will look at why we use such tools, discuss common concepts for those categories of tools, and then look at a specific and common example of each, apache subversion for version control and Apache Maven for Build Automation. In the past, programmers might have been given an idea or even a written specification of something that needed to be coded and then in a parody of the famous Nike's slogan, Just Do It. But in most enterprise environments today, there will be formal methodologies in place, guiding the process of software development. In development methodologies overview, we'll examine what a software development methodology is, review and compare a few of them, take a slightly deeper dive into one popular family of methodologies known as Agile, look at something called continuous integration, continuous deployment, and conclude the course and specialization by looking at concepts that are important to the sorts of modern microservice-based architectures that are increasingly common in enterprise development today. These courses are all relatively short and focus on being concept-based. Given that you won't have a mastery of programming, what should you expect? By the time we finish, you will have learned the basics of programming. You will have learned the core concepts of object oriented programming, both of which will amply prepare you for deep dives into important languages such as Java, Python, TypeScript, and more. You will understand the concepts of version control and build automation. You will be ready to participate on an Agile teams, a member with instruction from your team on exactly how they practice the methodology. Finally, you will have some foundational knowledge of why such things as the 12-factor app and cloud design patterns important in modern enterprise programming. My name is Noel Bergman. I've been an active programmer since the mid to late 1970s and working professionally since that time. I've written real-time operating systems, e-mail servers, distributed object programming platforms, and more. So far over the decades, I've made contributions to standards, worked on many projects, and have had the distinct pleasure of mentoring and training many thousands of programmers. A core tenet of my decades-old consulting business has always been making sure that our clients became self-sufficient on the technologies we used. Starting in the mid 1980s, I made a practice of going to developer conferences, presenting new and emerging technologies and greatly enjoyed the process of introducing people to new ideas. I have been delighted to work on this and other specializations in the Learn Quest Coursera curricula. Although, I won't be with you in real time, I've tried to imagine you, listening and asking questions as I recorded what became the hundreds of videos. I wish you the very best of success on this journey and would be delighted if our paths would cross someday.