• Stars
    star
    291
  • Rank 142,563 (Top 3 %)
  • Language
    C#
  • License
    MIT License
  • Created over 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A set of Koans to teach the C# language on .NET Core.

.NET Koans

Build & Test All Contributors

The .NET Koans walk you along the path to enlightenment in order to learn C# on .NET. The goal is to learn C# syntax, structure and some common functions and libraries available on the .NET platform. .NET is a cross platform environment that runs happily on Windows, OS X and Linux. It is super simple to get started learning.

The Structure

The koans are broken out into areas by file, arrays are covered in AboutArrays.cs, lambdas are introduced in AboutLambdas.cs, etc. They are presented in order in the PathToEnlightenment.cs file.

Each koan builds up your knowledge of C# and builds upon itself. It will stop at the first place you need to correct.

Some koans simply need to have the correct answer substituted for an incorrect one. Some, however, require you to supply your own answer. If you see the object FILL_ME_IN listed, it is a hint to you to supply your own code in order to make it work correctly.

Getting Started

Running Locally

  1. Install .NET SDK 6.0.
  2. Install Visual Studio Code, the Insiders Edition is highly recommended.
  3. Clone the repository: git clone https://github.com/NotMyself/DotNetKoans.git.
  4. Change directory into the cloned repository cd DotNetKoans.
  5. Restore packages: dotnet restore.
  6. Open the project in VSCode code-insiders . or code . depending on what version you chose to install.
  7. Run the koans in watch mode: dotnet watch --quiet run.
    • Note: The --quiet flag is used here to suppress messages from the watch framework.
  8. Follow along with the instructions printed to your console. Each time you save a *.cs file, the project will be built and run again for you automatically.

Contributing

Want to contribute? Check out our Code of Conduct and Contributing docs. This project follows the all-contributors specification. Contributions of any kind welcome!

There are many topics yet to be covered by this set of koans. I have added a handful of needed topics as issues and tagged them as Up for Grabs. There are even some specifically tagged as Beginner Friendly.

If you have never contributed to an open source project, let those be your first. I promise to work with you to get your contribution into the repository and be friendly and encouraging about it. It is what Jim would have done.

If you think a topic is missing, propose it's inclusion by submitting an issue yourself. Or better yet submit the issue and an accompanying pull request with how you think the topic should be introduced. Think about beginners in your effort; be clear and informative, be concise and most of all be playful with your examples.

About Koans

This project is based on the work of Cory Foy and his original multi-language project DotNetKoans. If you are interested in learning VB.NET, please look at his fine work.

Programming Koans came about because of the most enlightened Ruby Koans by Jim Weirich. Jim was a great teacher & programmer whom I had the pleasure of meeting, learning from and playing games with. Rest in peace, sir. We will continue your effort to bring a love of the craft to anyone willing to learn.

For a fuller explanation of what is going here, see the blog post Learn C# on Windows, OSX or Linux with the .NET Koans

Contributors ✨

Thanks goes to these wonderful people (emoji key):

John Hoerr
John Hoerr

πŸ’»
Victor Grigoriu
Victor Grigoriu

πŸ’»
James Naylor
James Naylor

πŸ’»
Samuel Cherinet
Samuel Cherinet

πŸ’»
Chris
Chris

πŸ’»
Delaine Wendling
Delaine Wendling

πŸ’»
Allen
Allen

πŸ’»
Jonathan Couldridge
Jonathan Couldridge

πŸ’»
Lukas Sinkus
Lukas Sinkus

πŸ’»
Richard D
Richard D

πŸ’»
Stratos Kourtzanidis
Stratos Kourtzanidis

πŸ’»
Agustin
Agustin

πŸ’»
Matthew Parsons
Matthew Parsons

πŸ’»
Jamie MacLeod
Jamie MacLeod

πŸ’»
Stuart Harrison
Stuart Harrison

πŸ’»
Chris Jones
Chris Jones

πŸ“–
Atanas Pashkov
Atanas Pashkov

πŸ’»
Tomasz Cielecki
Tomasz Cielecki

πŸ’»
SophieLemos
SophieLemos

πŸ’» πŸ› 🎨 πŸ“– πŸ€”
Dan Schnau
Dan Schnau

πŸ› πŸ“–
Joshua Belden
Joshua Belden

πŸ’»
Shawn Vause
Shawn Vause

πŸ’»
Jeannie Nguyen
Jeannie Nguyen

🎨
Adam
Adam

πŸ’»
Ferrier Benjamin
Ferrier Benjamin

πŸ’¬ πŸ’»
Ibrahim Islam
Ibrahim Islam

πŸ’»
Nikiforov Alexey
Nikiforov Alexey

πŸ’»
Ozge Cimendere
Ozge Cimendere

πŸ’»
Jakub Rusek
Jakub Rusek

πŸ’»
RAFAELDEV2016
RAFAELDEV2016

🎨
Cedric Rup
Cedric Rup

πŸ’»
Sophie Obomighie
Sophie Obomighie

πŸ‘€
Scott Milliorn
Scott Milliorn

πŸ“–
Thomas M. SchΓΆller
Thomas M. SchΓΆller

πŸ’»
coder2213
coder2213

πŸ’»
Leila
Leila

πŸ’»
Marcin Kolenda
Marcin Kolenda

🚧
Keith Gonzalez
Keith Gonzalez

πŸ’»
farbodsr
farbodsr

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!