- How to do software engineering? - Discovery & Learning - Design - Production - Algorithm and Data structures - Programming paradigms and languages - Tools - Architectural patterns - Questions - References
compose small pieces into bigger pieces: ➔ Compose software from components ➔ Compose components from classes/modules ➔ Compose classes/modules from properties/data structures and methods/functions ➔ Write code using function and data structures
joy of making things. - The pleasure of making things that help people. - For the fascination fashioning puzzle-like objects of interlocking moving parts and watch them work in subtle cycles.
ubiquitous language, …) a design discipline where you - Grasp the domain - Agree on a language - Express it in shared models - Embrace complexity - Separate models in contexts - … and evolve them continuously -
for building software that guides software development by writing tests. It was developed by Kent Beck in the late 1990's as part of Extreme Programming. In essence you follow three simple steps repeatedly: - Write a test for the next bit of functionality you want to add. - Write the functional code until the test passes. - Refactor both new and old code to make it well structured.
Testing frameworks and libraries: - XUnit frameworks - Assertions Libraries - Property testing frameworks - Mutation Testing frameworks (if you want to test your tests) - Devops processes and techniques