
Welcome to the Software Development Master Class with intermediate C# programming.
Find out what will be covered in this course.
Get an overview of what was taught prior to this course and is a prerequisite to understanding this course.
Find out how to download examples and assignment results.
Learn how to load Visual Studio 2019 in order to work along with this course and do assignments.
Section overview of variables and arrays.
Understand what a value type variable is, get more detailed information on the different types of standard variables and how they are stored and discover limitations on numeric and other types of variables.
Learn how to use date & time stamps in a software application and understand what time based issues are encountered.
Get a deeper understand of strings and how to manipulate them.
Use arrays to store collections of variables. This includes declaring array variables, indexing into arrays to store and retrieve values and using array literal values.
Learn about organizing programs with additional program logic flows and decomposing functionality into methods.
Get an introduction to the switch/case statement as well find out how to use the foreach to iterate through arrays (and other collections). Finally, what is De Morgan's Law and can it provide valuable help with logic.
Learning about functional decomposition and defining methods (functions) in C#.
Learn about classes, methods, properties, fields, and constructors.
Get an introduction to Object-Oriented Programming (OOP) with defining classes and instantiating objects. Learn how C# classes can be defined with fields, properties, and methods.
Learning about class constructors, method overloading, and get some more in-depth information about declartion and use of properties.
Find out what a struct is and how it is different than a class.
Introduction to standard .Net libraries, in particular, to generic lists as well as writing and reading strings to and from files.
Find out how to build a multi-tier application using object-oriented design techniques.
Find out about good class design and get an introduction to Object-Oriented Design (OOD). Get an introduction to Object-Oriented concepts like single responsibility and encapsulation.
Learn how to break an application down into multiple tiers in order to separate architectural boundaries.
Create object instances and store them in memory using lists.
Build object references with lists and correlation class where a many-to-many relationship exists.
Understand how to handle exceptions and generate your own exceptions so that errors do not occur or, when they do, be able to handle the error gracefully.
Use JSON serialization to persist an object graph to a file and load it back into memory at a later time.
Learn about logging frameworks and develop your own logging framework to write messages to a file. Handle all first chance exceptions so that they are logged as well.
Find out what data structures are and what will be discussed in this section.
Data structures provide a way to organize data into various forms. Learn what these are.
Here I present some updates to the school application to prepare it for using various data structures to store and retrieve its data.
Learn about sorting lists using a bubble sort.
Learn how a sorted list can searched in an efficient manner by repeatedly breaking the list in half until the searched item is found.
Learn about binary trees and how to build one with data.
Learn how to walk all the nodes in a binary tree so that the results come back sorted.
Find out how to search for a particular node in a binary tree.
Find out how .Net dictionaries and .Net libraries in general can make your job a lot easier.
You made it through the course, find out what we covered and what's next.
Get a recap on what was learned during this course.
Find out how to leave a review for your instructor.
In this course I will set you on a path that can take you from absolute beginner to professional software developer. This is not something that you can do in an afternoon, but this intermediate course is a start. My name is Mike Witt and I'm developing this course as the second step in a program that is intended to provide all the information that you will need to become a programmer with skills in a particular area: Developing web applications built around a .Net server, SQL Server database, and an Angular based UI. This course is the second step, but if you stick with it you can turn your learning and hard work into a career.
If you've glanced at my bio, you will note that I've been developing software for over 35 years. When I started, I had no idea what programming was. You may only have a basic understanding, but programming (unlike rocket science) is more of a skill and a craft than a theoretical science (like rocket science)! Because of this and because of a shortage of workers, many companies are willing to hire someone even if they don't meet their educational requirements. To be sure, most companies want a degree in computer science or at least some degree in a science or related field, but when it comes right down to it they want and need someone who can do the work.
This program will help you leap over the education gap by, not only understanding the technical nuts and bolts, but also by projecting your thinking and personality as someone who can do and understand software development. Here are some of the very important topics you will learn as part of this course:
- An in-depth look at variables and their capabilities as well as date and time types and arrays.
- Build more program logic elements into your applications with foreach loops and switch/case branches.
- Get a start on developing object-oriented programs with classes, methods, properties, and constructors.
- Find out how to build an application with a mult-tier architecture using object-oriented design techniques.
- Use object relationships, exception handling, logging, and data persistence to build first-class applications.
- Understand how data structures work to provide efficient and fast access to data.
- Finally, you will learn about various .Net libraries that can help with common programming tasks such as lists, dictionaries, and files.
I am truly excited to share my knowledge and my enthusiasm for developing software with you. Come on this journey and I will do my best to help you learn, enjoy, and finally become part of a community of developers who make this world go round!
This course comes with detailed explanations of each concept along with working examples for each programming assignment and a Verifiable Certificate of Completion.