Edited wording and added emojis

This commit is contained in:
katiesavage 2022-05-06 12:12:05 -07:00
parent fd9c08bf84
commit 8639dcdc42

View file

@ -1,4 +1,4 @@
# C# Crash Course # C# Crash Course 🚀
In this C# Crash Course, we'll go over the basics of C# so that you'll be ready to build out exciting web apps! We'll start by going through the key attributes of C#, syntax basics, and introduce you to OOP. In each section, we'll link you to some quick in-browser C# challenges so you can apply these concepts. In this C# Crash Course, we'll go over the basics of C# so that you'll be ready to build out exciting web apps! We'll start by going through the key attributes of C#, syntax basics, and introduce you to OOP. In each section, we'll link you to some quick in-browser C# challenges so you can apply these concepts.
@ -25,6 +25,7 @@ A **compiler** converts the code you write into a format that your computer can
--- ---
# The basics # The basics
## 🌍 Hello World
Here's a piece of code that will print "Hello world!" to the console. Here's a piece of code that will print "Hello world!" to the console.
```csharp ```csharp
@ -32,15 +33,23 @@ using System;
Console.WriteLine("Hello world!"); Console.WriteLine("Hello world!");
``` ```
## Keywords ## Keywords
With C#, you use **keywords** like *using* and *Console*. With C#, you use keywords like `using` and `Console`.
**Keywords** are predefined, reserved identifiers that have special meanings to the compiler. **Keywords** are predefined, reserved identifiers that have special meanings to the compiler.
## Accessing methods ## Accessing methods
The `. (DOT)` in *Console.WriteLine* allows us to access methods and properties. In this example, **Console** is a type that represents the console window. **WriteLine** is a method of the Console type that prints a line of text to that text console. The `. (DOT)` in `Console.WriteLine` allows us to access methods and properties. In this example, `Console` is a type that represents the console window. `WriteLine` is a method of the Console type that prints a line of text to that text console.
## Parameters ## Parameters
In this example, we use parentheses pass a string as a parameter to *Console.WriteLine*. In this example, we use parentheses pass a string as a parameter to `Console.WriteLine`.
## 🚨 Challenge 1
Time for your first challenge!
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
1 | [Hello World Challenge](https://docs.microsoft.com/learn/modules/csharp-write-first/2-exercise-hello-world/?ns-enrollment-type=learningpath&ns-enrollment-id=learn.languages.csharp-first-steps)| N/A | 3 min | case sensitive, strings, comments | [Intro to C# Tutorial](https://docs.microsoft.com/dotnet/csharp/tour-of-csharp/tutorials/hello-world?WT.mc_id=csharpnotebook-35129-website), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
## Variables ## Variables
In C#, **variables** allow you to temporarily store a value in memory. In C#, you must declare a variable before using it. In C#, **variables** allow you to temporarily store a value in memory. In C#, you must declare a variable before using it.
@ -51,6 +60,11 @@ In this example, we created a string called `cSharp`. You can use the var keywor
Variable names can contain alphanumeric characters and underscores, but no special characters. They also cannot be keywords. Variable names can contain alphanumeric characters and underscores, but no special characters. They also cannot be keywords.
## 🚨 Challenge 2
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
2 | [Variables Challenge](https://docs.microsoft.com/learn/modules/csharp-literals-variables/6-challenge )|[Solution](https://docs.microsoft.com/learn/modules/csharp-literals-variables/7-solution)| 5 min | variables, data types, strings, ints, decimals | [String formatting tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-formatting/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
# Syntax cheat sheet # Syntax cheat sheet
## Semicolons ## Semicolons
Every statement is ended by a semicolon Every statement is ended by a semicolon
@ -66,6 +80,8 @@ Variable names can contain alphanumeric characters and underscores, but no speci
C# is case sensitive! For example, a variable "cat" is completely different from a variable "CAT". C# is case sensitive! For example, a variable "cat" is completely different from a variable "CAT".
```csharp ```csharp
var cat = "meow"; var cat = "meow";
```
```csharp
var CAT = "rawr"; var CAT = "rawr";
``` ```
@ -81,8 +97,28 @@ Variable names can contain alphanumeric characters and underscores, but no speci
| ++ | increment | | ++ | increment |
| -- | decrement | | -- | decrement |
## 🚨 Challenge 3
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
3 | [Operating on numbers challenge](https://docs.microsoft.com/learn/modules/csharp-basic-operations/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-basic-operations/6-solution)| 2 min | ints, decimals | [Number operations tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-operations/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
## Decision logic
In C#, you can build applications that employ decision-making logic so that your application performs different instructions based on a set of conditions. One way we do this is with an `if` statement. `if` statements are made up of three parts:
* The if keyword
* A Boolean expression between parenthesis ()
* A code block defined by curly braces { }
If there are multiple condition, you can utilize the `else if` and `else` statements. Basically, if the `if` statement fails, these other statements allow you to test against other conditions.
You can imagine this in the context of a rock⛰-paper📃-scissors✂ game. Imagine you chose rock⛰.
`if` your opponent chooses scissors✂, then you will win
`else if` your opponent also chooses rock⛰, then you will tie
`else` your opponent chooses paper📃, then you will lose
Each possible decision your opponent could make leads to a different outcome.
## Boolean expressions ## Boolean expressions
We use booleans to compare two or more things. Booleans are expressions that return either `true` or `false`. They are often used to compare two or more things.
| symbol | what it does | | symbol | what it does |
| --- | ---------- | | --- | ---------- |
| < | less than | | < | less than |
@ -92,6 +128,11 @@ Variable names can contain alphanumeric characters and underscores, but no speci
| == | equal | | == | equal |
| != | not equal | | != | not equal |
## 🚨 Challenge 4
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
4 | [Decision logic challenge](https://docs.microsoft.com/learn/modules/csharp-if-elseif-else/4-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-if-elseif-else/5-solution)| 2 min | if, else if, else, booleans | [Boolean expressions tutorial](https://docs.microsoft.com/learn/modules/csharp-evaluate-boolean-expressions/1-introduction), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
--- ---
# Object Oriented Programming # Object Oriented Programming
@ -104,6 +145,12 @@ Objects inherently have attributes. In C# we call these **properties**. The attr
We can also define **methods** which describe what an object can do. For example, you can sell your house. We can also define **methods** which describe what an object can do. For example, you can sell your house.
To summarize these concepts using our house example,
A Class is like a blueprint 📜
An Object is an instance of this blueprint, or a house 🏠
The Properties of a house could be the number of doors it has or the color it's painted 🚪 🎨
A Method of our class is that we can sell our house 💸
Let's look at an example House class: Let's look at an example House class:
```csharp ```csharp
// The namespace declaration provides a way to logically organize your classes // The namespace declaration provides a way to logically organize your classes
@ -131,7 +178,7 @@ public House(string address, int squareFeet)
this.Size = squareFeet; this.Size = squareFeet;
} }
``` ```
When we create an object with **new** this constructor will be called. When we create an object with `new` this constructor will be called.
```csharp ```csharp
using Classes; using Classes;
@ -139,15 +186,14 @@ using Classes;
var house = new House("123 Candy Cane Lane", 1500); var house = new House("123 Candy Cane Lane", 1500);
``` ```
# Mini Challenges! ## The .NET Class Library
Each of these mini challenges is designed so that you can apply C# concepts to mini coding exercises. These challenges are all sourced from Microsoft documentation and will allow you to get coding inside your browser. Easy peasy! C# also has built in classes and functionality within the .NET Class Library. The .NET Class Library is a collection of thousands of classes containing tens of thousands of methods. These methods are created by Microsoft and are available for use in your applications. For example, when we called `Console.WriteLine` earlier, we were calling a method from the `System.Console` class. For a more in-depth overview, you can read up on the .NET Class Library in the [.NET documentation](https://docs.microsoft.com/dotnet/standard/class-library-overview).
## 🚨 Challenge 5
| # | Challenge | Solution | Duration | What you will learn | More information | | # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - | |-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
1 | [Hello World](https://docs.microsoft.com/learn/modules/csharp-write-first/2-exercise-hello-world/?ns-enrollment-type=learningpath&ns-enrollment-id=learn.languages.csharp-first-steps)| N/A | 3 min | case sensitive, strings, comments | [Intro to C# Tutorial](https://docs.microsoft.com/dotnet/csharp/tour-of-csharp/tutorials/hello-world?WT.mc_id=csharpnotebook-35129-website), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) | 5 | [.NET Class Library challenge](https://docs.microsoft.com/learn/modules/csharp-call-methods/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-call-methods/6-solution)| 2 min | ints, decimals | [.NET documentation](https://docs.microsoft.com/dotnet/standard/class-library-overview), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
2 | [Variables](https://docs.microsoft.com/learn/modules/csharp-literals-variables/6-challenge )|[Solution](https://docs.microsoft.com/learn/modules/csharp-literals-variables/7-solution)| 5 min | variables, data types, strings, ints, decimals | [String formatting tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-formatting/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
3 | [Operating on numbers](https://docs.microsoft.com/learn/modules/csharp-basic-operations/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-basic-operations/6-solution)| 2 min | ints, decimals | [Number operations tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-operations/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
4 | [Making clean code](https://docs.microsoft.com/learn/modules/csharp-readable-code/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-readable-code/6-solution)| 5 min | topics | [C# coding conventions](https://docs.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) | [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
# Bonus and more ways to connect # Bonus and more ways to connect