# Learning facilities matrix, following the meeting on Learning paths design for Reserve: .NET upskill This document describes ways for developing competencies for .NET software engineers who are in Reserve and are not assigned to any project. In such cases, it's proposed to either concentrate on self-learning The matrix is split by competencies which correspond to IntelliGrowth job competencies. ## .NET ### C# Read: - CLR via C# - http://sd.blackball.lv/library/CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf - .NET architecture - https://github.com/sidristij/dotnetbook - C# Typesystem - https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/ - Generics - https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/ - C# interop - https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interop/ - Roslyn compiler overview - https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/ Watch: - Pluralsight course learning path on C# - https://www.pluralsight.com/paths/csharp - Making .NET applications faster - https://www.pluralsight.com/courses/making-dotnet-applications-faster - .NET microservices https://www.pluralsight.com/paths/net-microservices - Azure for .NET - https://www.pluralsight.com/paths/net-developer-on-microsoft-azure Certifications: ### ASP.NET Read: - ASP.NET patterns - https://github.com/davidfowl/AspNetCoreDiagnosticScenarios - ASP.NET fundamentials - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?view=aspnetcore-5.0&tabs=windows - ASP.NET fundamentials - https://www.telerik.com/blogs/understanding-asp-net-core-initialization Watch: - ASP.NET Core learning path - https://www.pluralsight.com/paths/aspnet-core - Security in ASP.NET - https://www.pluralsight.com/paths/securing-aspnet-and-aspnet-core-applications - Getting Started with ASP.NET Core SignalR - https://app.pluralsight.com/library/courses/aspdotnet-core-signalr-getting-started/table-of-contents Certifications: ### Entity Framework Read: - EF internal architecture and terminology - https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/overview - EF Core overview - https://docs.microsoft.com/en-us/ef/core/ - Dapper overview - https://medium.com/dapper-net/dapper-net-tutorial-summary-79125c8ecdb2 Watch: - Learning path on Entity Framework Core - https://www.pluralsight.com/paths/entity-framework-core - Dapper - https://www.pluralsight.com/courses/getting-started-dapper Certifications: ### LINQ Read: - LINQ overview - https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/ Watch: - LINQ Fundamentals - https://www.pluralsight.com/courses/linq-fundamentals-csharp-6 https://docs.microsoft.com/en-us/dotnet/csharp/linq/ Certifications: ### Roslyn Read: - https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/ - https://github.com/dotnet/roslyn Watch: - Building Code Analyzers with the new C# compiler platform (Roslyn) - Filip W - https://www.youtube.com/watch?v=ghnY4S8unMM - The Power of Roslyn - Kasey Uhlenhuth - https://www.youtube.com/watch?v=nXljhGDokqA Certifications: ### TPL Read: - TPL concepts explained - https://docs.microsoft.com/en-us/dotnet/standard/parallel-processing-and-concurrency - Task vs Thread - https://stackoverflow.com/questions/13429129/task-vs-thread-differences - PLINQ - https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/introduction-to-plinq - Parallel programming with .NET - https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff963553(v=pandp.10) Watch: - Getting Started with Asynchronous Programming in .NET https://www.pluralsight.com/courses/getting-started-with-asynchronous-programming-dotnet - Async/Await workout https://www.youtube.com/watch?v=eV45ZgXU1Mk Certifications: ## General Software Engineering Skills ### Code quality Read: - SonarQube overview https://livebook.manning.com/book/sonarqube-in-action/chapter-1/40 - Setup SonarQube for .NET project - https://medium.com/@thiagoloureiro/code-analysis-with-sonarqube-docker-net-core-aee521ee8931 - Ways to improve code quality for project - https://codingsans.com/blog/code-quality Watch: Certifications: ### CI/CD Practices Read: - https://www.infoworld.com/article/3271126/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html - https://www.digitalocean.com/community/tutorials/an-introduction-to-ci-cd-best-practices - https://www.netapp.com/devops-solutions/what-is-devops/ - DevOps & feedback - https://devops.com/faster-feedback/#:~:text=According%20to%20Goldberg%2C%20context%20in,improvements%20work%20in%20production%20context.&text=These%20more%20rapid%20assessment%20cycles,business%20value%20offered%20by%20developers. Watch: - Best practices for securing CI/CD pipeline - Victoria Almazova - https://www.youtube.com/watch?v=ZqQ5gFB2Ty4 - Modern Continuous Integration with Azure Pipelines - Edward Thomson - https://www.youtube.com/watch?v=uTv8K21scGQ - From zero to CD in 60 minutes - Glenn F. Henriksen - https://www.youtube.com/watch?v=D4_1LU9jljk Certifications: ### Code review Read: - https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/ - https://medium.com/palantir/code-review-best-practices-19e02780015f - https://google.github.io/eng-practices/review/reviewer/ Watch: - Code Review Etiquettes 101 - Janani Subbiah - https://www.youtube.com/watch?v=Z0j1m7qwk3M Certifications: ### Math Read: - Course on Linear algebra and related concepts - https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/ - Trigonometry basics - https://www.skillsyouneed.com/num/trigonometry.html Watch: - Trigonometry basics - https://www.youtube.com/watch?v=PUB0TaZ7bhA Certifications: ### Refactoring Read: - Martin Fowler - Refactoring - http://silab.fon.bg.ac.rs/wp-content/uploads/2016/10/Refactoring-Improving-the-Design-of-Existing-Code-Addison-Wesley-Professional-1999.pdf Watch: - Refactoring to Immutability - Kevlin Henney - https://www.youtube.com/watch?v=APUCMSPiNh4 Certifications: ### Unit-testing Read: - best practices - https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices - best practices - https://stackify.com/unit-testing-basics-best-practices/ Watch: - The lazy programmer's guide to writing thousands of tests - Scott Wlaschin - https://www.youtube.com/watch?v=IYzDFHx6QPY - End-to-End Automated Testing in a Microservices Architecture - Emily Bache - https://www.youtube.com/watch?v=IYzDFHx6QPY - Simplified Unit Testing with the Entity Framework Core InMemory Provider - Jason Taylor - https://www.youtube.com/watch?v=ddrR440JtiA - TDD in C# - https://www.pluralsight.com/courses/csharp-test-driven-development Certifications: ### Version Control Systems (VCS) Read: - trunk based development - gitflow - https://trunkbaseddevelopment.com/ - git best practices - https://sourcelevel.io/blog/7-git-best-practices-to-start-using-in-your-next-commit - merge vs rebase - https://www.atlassian.com/git/tutorials/merging-vs-rebasing - advanced git tutorials - https://www.atlassian.com/git/tutorials/advanced-overview Watch: Certifications: ## Core management ### Developing People Read: Watch: Certifications: ### Motivating and Communicating Read: Watch: Certifications: ### Setting Objectives and Planning Read: Watch: Certifications: ## Foreign Languages ### English language Read: Watch: Certifications: ## Soft skills ### Client Orientation Read: Watch: Certifications: ### Cognitive skills Read: Watch: Certifications: ### Collaboration. Teamwork. Conflicts & Stress management Read: Watch: Certifications: ### Communication Read: Watch: Certifications: ### Initiative, Influence & Leadership Read: Watch: Certifications: ### Personal Effectiveness Read: Watch: Certifications: ## Software Architecture ### GRASP Read: - http://www.kamilgrzybek.com/design/grasp-explained/ - https://home.cs.colorado.edu/~kena/classes/5448/f12/presentation-materials/rao.pdf - Coupling vs cohesion - https://stackoverflow.com/questions/3085285/difference-between-cohesion-and-coupling Watch: Certifications: ### Object oriented design Read: - CQRS & ES & DDD - https://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf - DDD applied - http://www.zankavtaskin.com/2014/12/applied-domain-driven-design-ddd-part-0.html - Aggregates + Event Sourcing distilled - https://blog.jayway.com/2013/03/08/aggregates-event-sourcing-distilled/ - MVC vs MVVM vs MVP - https://medium.com/@ankit.sinhal/mvc-mvp-and-mvvm-design-pattern-6e169567bbad - GoF - http://www.w3sdesign.com/GoF_Design_Patterns_Reference0100.pdf - DI vs DIp vs IoC - https://softwareengineering.stackexchange.com/questions/94616/understanding-the-dip-di-ioc-theory - Does the ActiveRecord pattern follow/encourage the SOLID design principles? https://softwareengineering.stackexchange.com/questions/119352/does-the-activerecord-pattern-follow-encourage-the-solid-design-principles - Patterns of Enterprise Application Architecture http://ce.sharif.edu/courses/97-98/2/ce418-1/resources/root/Books/Patterns%20of%20Enterprise%20Application%20Architecture%20-%20Martin%20Fowler.pdf - messaging patterns - https://docs.microsoft.com/en-us/azure/architecture/patterns/category/messaging - Enterprise patterns https://docs.microsoft.com/en-us/azure/architecture/patterns/index-patterns - Patterns for microservices - https://dzone.com/articles/design-patterns-for-microservices Watch: - Microservices Architectural Design Patterns Playbook - https://app.pluralsight.com/library/courses/microservices-architectural-design-patterns-playbook/table-of-contents - DDD skill path - https://app.pluralsight.com/paths/skill/domain-driven-design Certifications: ### SOLID Read: - SOLID explained https://itnext.io/solid-principles-explanation-and-examples-715b975dcad4 Watch: - SOLID explained - https://www.youtube.com/watch?v=rtmFCcjEgEw - Playlist on patterns https://www.youtube.com/watch?v=dhnsegiPXoo&list=PLLWMQd6PeGY3ob0Ga6vn1czFZfW6e-FLr - SOLID https://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DEV-B315 - SOLID https://www.youtube.com/watch?v=agkWYPUcLpg Certifications: ### UML Modeling Read: - https://www.geeksforgeeks.org/unified-modeling-language-uml-introduction/ and all further articles in the section Watch: - Introduction to UML - https://www.pluralsight.com/courses/uml-introduction Certifications: ## Software Engineering Management ### Agile Software Development Read: - https://agilemanifesto.org/ Watch: - Agile is a Dirty Word https://www.youtube.com/watch?v=rdr4RMAAYwA - Agile Software Architecture (https://www.youtube.com/watch?v=3YCIw3gewFE) Certifications: