Étudiez le code des logiciels que vous aimez que vous pouvez trouver par exemple sur CodeProject, GitHub, GitLab, SourceForge, etc.
Essayez de faire des logiciels similaires et adaptez-les, sans plagier en dehors de l'apprentissage personnel, comme un bloc-notes, une calculatrice, un explorateur de fichiers, un gestionnaire de banque... ou un jeu.
Écrivez du code, ne vous arrêtez pas pour écrire.
Et surtout, lisez et relisez des livres.
Personnellement, j'aime les livres de Wrox (Wiley), ils sont très bons : n'hésitez pas à lire même des livres anciens si la version plus récente n'est pas disponible.
Les cours en ligne sont excellents aussi, mais ils ne remplacent pas les livres et le code source ou la formation professionnelle.
Pour pouvoir comprendre des sujets avancés et approfondis liés à la programmation et à la nature des ordinateurs, nous devons aller à l'Assembleur, non seulement à l'IL, mais à l'assembleur natif et au code machine.
Une mention spéciale pour ceux-ci
- Beginning Visual C# 2008 Programming : start here, with this 2008 version, lastests are a little less good but cover new things while throwed out some.
- Beginning C# 2005 Databases : start here to learn ADO.NET databases and data bindings step-by-step using WinForms, this book is unique.
- Component-based development with Visual C# : for advanced front-end and back-end development, as well as frameworks, a must have.
- Dive into Design Patterns : a clean initiation as simple as it is expert and easy to understand on the whole of the OOP.
Quelques autres
- Professional C# 7 and .Net Core 2.0 (Christian Nagel)
- Professional Visual Studio 2015 as vol I and 2017 as vol II (Bruce Johnson)
- Professional .NET 2.0 Generics (Tod Golding)
- Professional ADO.NET 3.5 with LINQ and Entity Framework (Roger Jennings)
- Professional Refactoring in C# & ASP.NET (Danijel Arsenovski)
- C# Design and Development Expert One on One (John Paul Mueller)
- C# 3.0 Cookbook (Jay Hilyard)
- C# 4.0 How-To (Ben Watson)
- Effective C# (Bill Wagner)
- More Effective C# (Bill Wagner)
- Code Complete (Steve McConnell)
- The Software Craftsman (Sandro Mancuso)
- Beginning Software Engineering (Rod Stephens)
Robert C. Martin
- Agile principles, patterns and practices in C#
- The Clean Coder
- Clean Code
- Clean Architecture
- Clean Agile
Fondamentaux
- OOP Basic Principles
- C# Tutorial Level 0
- C# Tutorial Level 1
- C# Tutorial Level 2
- C# Tutorial Level 3
- C# Tutorial Level 4
- C# Documentation
- .NET Framework and .NET Core
- .NET Framework & .NET Core & .NET Standard & Future .NET
LINQ
- LINQ Made Easy
- LINQ Tutorial 1
- LINQ Tutorial 2
- Language Integrated Query
- Work with Language-Integrated Query
- Deferred vs Immediate Query Execution in LINQ
Génériques
Nommer
- C# Naming Conventions
- C# Coding Standards and Naming Conventions
- C# Coding Conventions (C# Programming Guide)
- Pragmatic Database Schema Naming Conventions, Practices, and Patterns
- Database Naming Standards
Commenter
- Putting comments in code: the good, the bad, and the ugly
- What Makes a Good Code Comment
- Comment (computer programming)
Avancé
- Upcasting and downcasting
- Upcast And Downcast Basics
- Understand 3-Tier Architecture
- N-Tier/(Layer) Architecture
- Related resources for DataGridView
- C# ZetCode
- C# Functionx.com
- Threading in C#
- .NET OpCodes Class
Autres
UML
- UML Tutotrial
- UML Class Diagrams Reference
- UML Class Relationships
- UML Association vs Aggregation vs Composition
- The Unified Modeling Language Reference Manual
Source .NET Framework
Computers and Assembly
- Computer Fundamentals Tutorial
- Assembly Programming Tutorial
- Operating System Tutorial
- Operating System Concepts Book
- .NET via CLR
- MSIL Programming 1
- MSIL Programming 2
- MSIL Programming
- MSIL in Depth
Manuels pour Développeurs Intel CPU
- 8086 to i486 Instructions Set
- 80486 Programmer's Reference Manual 1990
- x86 Developer’s Manual Volume 1: Basic Architecture 1997
- x86 Developer’s Manual Volume 2: Instruction Set Reference 1997
- x86 Developer’s Manual Volume 3: System Programming Guide 1997
- Intel® 64 and IA-32 Architectures Software Developer Manuals
Bibliographie