As part of our mission to support the development of software engineering capabilities within Detroit and the reduction of the race and gender gap amongst software technologists in Detroit, we have developed IntegrateDetroit: a 4 month, part-time software engineering course that will help technologists in Detroit to develop sustainable skills in delivering consumer-grade, enterprise-scaled software applications for today’s cloud-native market.
Students with some experience in technology can use this program to take the next step into a full-time software development role, where they can confidently work on modern systems and use cutting-edge technologies.
The focus of our curriculum is to equip students with a solid foundation of knowledge, technical and otherwise, that will prepare them for a variety of software development roles. We will incorporate the current tools and processes used in the industry into our learning and activities.
Along with detailed instruction in Java, students will get hands-on experience with various Agile methodologies, and gain an understanding of how to develop a project as a part of a team. Our curriculum covers object-oriented design and programming (development and maintenance), testing, microservices, team dynamics, and more.
Students will learn about the following, with instruction in Java/Spring.
TEST DRIVEN DEVELOPMENT
- Writing tests before your code, that will act as living documentation, to make it more readable, and easier to refactor
- Types of tests (acceptance, unit, contract, etc)
- Mocking, Stubbing
OBJECT ORIENTED PROGRAMMING
- Executing design best practices that will help you write code that is understandable, maintainable, and flexible
- SOLID principles
- Recognizing code smells and refactoring
- Dependencies and abstractions
Operationalize your code on modern cloud platforms
Differentiating between and implementing Continuous Integration, Continuous Delivery, Continuous Deployment
Since programming is mostly learning and problem solving, we believe we’re more effective in solving hard problems, in teaching, and in learning from each other when we work in pairs. During the course, you’ll learn how to best leverage pairing and also how to be a great programming pair.
- Designing cloud-native architectural practices and leveraging modern cloud tools
- Micro-services based architecture
- Using a modern cloud platform like Amazon Web Services