Skip to content

Base project for someone to learn C# from scratch, enough to take someone from zero programming experience to a junior C# dev job. Best done 1:1 with a mentor pairing. Feel free to use this as a mentor or mentee to help someone learn! I use this base project when I mentor =)

Notifications You must be signed in to change notification settings

KetchupOnMyKetchup/LearnCSharpBase

Repository files navigation

Overview

This guide and code base is intended for self study or for mentor/mentee pairs:

  • To provide enough external resources for someone with no dev to have resources to learn to get themselves started with Visual Studio and C#.
  • To provide a project rich with projects and homework (with solutions) to teach C# the language itself from zero to intermediate (no front-end or databases, just learning how to do dev) in a hands-on manner.
  • To provide links to additional external content for you to continue your journey with front-end web development, try out making a full application connecting to a database, about workflow, and more.
  • To have enough content in this file to get someone with no idea how to code, to get themselves enough information to be able to land themselves a job and to understand the full picture of what is needed with a syllabus and step by step instructions.
  • Mentors: For mentors to give a set of working projects, homework, and links to teach someone C#.
  • To be completely free!!! Nothing in this guide costs money, this guide and everything linked in it is free, you can teach yourself to do C# dev without paying a dime!

Syllabus

Pre-requisites

Download Visual Studio Community (free)

Install Git (free)

Interactive C# Tutorial

Visual Studio

Take your pick between the below two, do both, do one of them, but use this to learn how to use Visual Studio and get started with programming in C#. If you are working alone you will 100% need one or both of these to get started:

This Project

Downloading this project

  • Make sure you have Git installed
  • Navigate to: https://github.com/KetchupOnMyKetchup/LearnCSharpBase (this page)
  • Hit Code, then Local, then Copy as seen in the screenshot above the URL to this repository.
  • image
  • Open Git Bash on your desktop which you should have after installing Git.
  • cd to the location you want to download this to or just download to default and move it later
  • Type git clone https://github.com/KetchupOnMyKetchup/LearnCSharpBase.git
  • image
  • Open .sln file in Visual Studio
  • image

Basic Shortcuts and Usage of Visual Studio

  • F5 to debug
  • F10 to step to the next line
  • F11 to step into a method
  • CTRL + SHIFT + B build project

How to Use This Guide

  1. Go into the Program.cs file and follow the instructions and order there. If you do not have a mentor or do not know how to use Visual Studio, watch the video linked above or click here: https://www.youtube.com/watch?v=GhQdlIFylQ8
  2. Go through Part 1 and complete all hw and projects
  3. After part 1, watch the below materials to watch after Part 1, and before starting Part 2 about Object Oriented Programming (OOP)
  1. Go through part 2 and complete all hw and projects
  2. Go through additional content as needed
  3. Go through interview questions online to see if you have any gaps in knowledge, you can search things like C# interview questions for example to get an idea of what could be asked.

Content

Basics Part 1 (everything before classes)

Learn types, variables, methods, collections (arrays and lists), and loops

  • Project 1: Intro and Fizz Buzz Problem
  • Project 2a: Simple Calculator to Add, Subtract, Divide, Multiply 2 numbers. No separate methods and expanded variable assignment
  • Project 2b: Similar Calculator with separate methods
  • Types, variables + initialization, methods, parameters, if/else, case/switch
    • Calculator
    • Tic Tac Toe
    • Rock paper scissors
  • Collections: Lists, arrays
  • Loops: for, while, foreach, do
  • Dealing with Null
  • Setting variables to methods return variables
  • Methods
  • Different syntaxes / shortcut (syntatical sugar) syntaxes

Basics Part 2 (classes and OOP)

Learn classes, properties, constructors, and basic object oriented programming

  • Classes, properties, methods in classes
  • Separating large projects into multiple classes, namespaces, accessors (public, private, internal, etc)
  • Class constructors
  • Class inheritance, interfaces .. Object oriented programming
  • Method overloading
  • Unit testing
  • Debugging practice, fix broken code!

The following is a screenshot of the contents in Visual Studio:

image

Additional advice for if you have a mentor or are a mentor:

  • If mentors can setup a GitHub or Azure DevOps project and work with you on a sprint basis, help you break down work into Epics/Features/User Stories/Tasks and teach you how to work in an Agile/Scrum environment this will help you adjust to working and estimating work. Also then you will understand what it's like to be in a sprint in a very hands-on manner.
  • If mentors can have you fork this repo, then create a branch, do your work, do a pull request, describe what you did, then they review and leave comments on your pull request, you will learn how developers push and work on code everyday! Also it will really help you with your Git skills and confidence!
  • The above two will help you with both interviews and working in your actual job and help ease your transition into dev work!

Continue your C# Education!

Below is a completely free and comprehensive 24-hour-long course, where you can use C# and follow along to make an application from start to finish.

Additional Self-Study Content

These resources are unrelated to Project and can be done before/after/during project content but are very useful to becoming a software engineer and will help you get started at work quicker.

More C# and .NET resources

Web development general (HTTP, SSL, and more)

Web development front-end technologies

Databases

Git and Source Control

Agile/Scrum/Kanban and workflow

Intro to Data Structures and Algorithms

Resume Writing

Below is a golden resource we highly recommend, we used this as a guide to revamp our own resumes years into our career and it helped a lot!

About

Base project for someone to learn C# from scratch, enough to take someone from zero programming experience to a junior C# dev job. Best done 1:1 with a mentor pairing. Feel free to use this as a mentor or mentee to help someone learn! I use this base project when I mentor =)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages