After working in different places and projects, and having learned what to do and what not to do. I want to order all the knowledge and start to create well-crafted software, learning step by step: tools, methodologies, patterns, languages of programming, paradigms, architecture…