To build a career, software developers must be able to quickly learn new technologies and new software systems. Experts do this by seeing any software, in any programming language, as common repeating patterns, not just detailed lines of code.
In this MicroMasters program, you will learn that same kind of expert thinking. By working through several software development projects, you will learn specific technologies, including Java, JUnit, IntelliJ IDEA, Typescript and Node.js. But, crucially, you will learn to see the common structures in programs and in tools, and how to apply that expert thinking to learn new technologies quickly.
You will learn how to write programs using a systematic approach, and to design programs that are easy to maintain. You will also learn how to build software programs that solve real world problems using agile methods.
The skills obtained in this program will give you the confidence to apply for positions that use any programming language or technology.
Learn how to apply engineering principles, such as Agile, to build a full-stack software system. You will learn software engineering principles that are applicable to the breadth of large-scale software systems. The course explores topics such as agile development, REST and Async programming, software specification, design, refactoring, information security, [...]
Learn how to design large software systems that solve real-world problems using object-oriented design techniques. By the end of the course, you will have a solid foundation in Java and Object-Oriented Design, as well as many software development concepts that can be applied to any language.
Learn powerful data abstraction and decomposition techniques to build large, complex programs. The course begins with the topic of data abstraction - from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type [...]
Learn how to design more complex programs, using new data structures, abstraction, and generative recursion. As your program requirements get more complex, you will find that simple additions to the design method make it easy to write well-structured and well-tested code that is easy to maintain. By learning how [...]
Learn systematic program design - how to write programs that tell a clear story about what they do, are well-tested, and easy to improve. This programming course takes a unique approach, as it focuses on learning a systematic programming method rather than a programming language. This practical approach will [...]