
We're going to introduce the course and talk about the specific approach we're going to take to take you from being a non-programmer to being a programmer.
We're going to talk about what version control is, and introduce some basic version control concepts that we can work with as we move ahead.
We'll take our version control concepts and put them into service by performing some basic operations with the Git command line.
We're going to lay out the basic concepts of C#, the language we're going to be working with, and look at how you can use it to solve problems.
With the basic principles in place, we're going to actually write some code and see how it works.
Even experienced programmers end up with junk in Git that doesn't belong there - we'll take a look at how to keep junk out of Git with a gitignore file.
We're going to create a gitignore file so that we can keep unwanted junk files out of our project in version control.
We're going to dig into the key instruments we work with in code, classes and variables, and talk about what data types are and why we need them.
Armed with our understanding of C# classes, we'll dig into the code and make one work.
We're going to take a look at branching and merging in Git, and get a surprise explanation from the plot of the move Avengers: Endgame.
Right now, our program just runs on the rails we gave it - it's not going to be very useful until we can allow the user to drive what's being purchased, so we'll lay the groundwork for making that happen.
The true power of Git is taking what we've done on a branch and merging it back to the main branch without causing too much trouble. We'll look at how this happens, and how to drive it from the command line.
We're going to dig into the language of the World Wide Web - HTML. We'll talk about where it came from, how to use it, and perform some basic work with it.
What is the Web, but links and images? We'll dig into the meat and potatoes of what you see on web pages, how they work and how to use them.
All these links go somewhere - but how? We're going to take a lesson and do a deep dive on URLs so that we know what we're doing when we work with them.
Even long-time users of Git end up with junk files in Git because of a bad gitignore file. We'll look at how to get junk out and keep the problem from happening again.
Another mistake even long-time users make in Git is forgetting to branch, and doing a bunch of work on the main branch that should have been isolated. Never fear - Git knows how to do this really well, and we'll make it happen in this lesson.
CSS, or Cascading Stylesheets, is how content on the web is made to look beautiful, or least effective. We'll dig into the basics of CSS and see how to make our content more visually effective.
The most basic elements you'll work with in HTML are DIVs and SPANs, the workhorses of HTML. We'll dive into how they're used and what the difference between them is.
We're going to deepen our understanding of what is actually going on when we click links. We'll examine HTTP, the protocol that browsers and applications use to transfer content on the Internet, and what it means for our work.
Razor Pages is Microsoft's solution for writing code inside web pages. We'll look at the basic syntax, and look at how to solve our problems using Razor.
We'll look at some basic login forms and how to make them user-friendly and accessible.
We'll take the work we did in creating our form in Razor page to the next level.
Testing stuff manually is a huge drag - we're going to look at how to create automated tests that do the work for us every time. With this done, we can make sure that changes we make won't break older stuff that we wrote - as long as its covered by a test.
We're going to look at an organic and interactive way to learn CSS. Engaging with the sites you use and seeing how they work with respect to their styling and interactivity beats the heck out of poring over web pages, or, for that matter, watching courses online.
Once you get past the basics, you're going to want to automate stuff you do in Git. We'll look at a quick and easy way to automate some multi-step Git processes.
We'll look at how to create an effective user interface by mapping input to output.
Mobile interfaces are at least half of the user-ship nowadays - we'll look at leveraging Bootstrap, the HTML framework we're working with, and how to make our stuff look good on a mobile device.
Another overlooked client for our work is a printer - we'll look at how to use stylesheets to make our website look good when its printed out.
With our page looking good on mobile and print, we'll implement the actual production code for our menu page.
As we begin the flight path towards delivering a real application, we're going to take everything we've done so far and get it into a real Razor pages implementation.
Installing SQL Server is a huge pain - we're going to look at using another tool, Docker, to run a local container with SQL Server instead of installing it to our machine.
Databases, how do they work? We're going to look at the basics of designing a database to contain our product data, and what the rules are for how we do it.
Writing database code is a huge pain - but we can let a piece of software called an ORM do it for us. We'll take a look at Microsoft's tool Entity Framework, and how to get it done.
Programming culture is filled with inside jokes, pranks and phrases that seem impenetrable to outsiders. In a rest lesson, we'll take a look at a few key elements and where they come from.
We're going to talk about how I got started in programming. I was very lucky, but I did some things right, and I want to share those with you so that you can turbo-charge your professional development as a programmer,.
Managing software dependencies is a part of any kind of software lifecycle. We're going to look at Nuget, a package manager, and how it manages these dependencies effectively.
All this stuff needs to be versioned so that we can keep track of how things are changing over time. We'll look at Semantic Versioning, the most widely user versioning system in the world.
In order to work effectively in different environments, our application is going to need to have different states of configuration. We'll look at how to manage configuration effectively between local and deployed instances.
At last - our application is ready for at least an internal deployment. We're going to learn how to set up our application so that it can be hosted in Microsoft Azure, Microsoft's cloud hosting service.
As we close out the course, we'll take the last steps to get our application into the wild and hosted out in the world.
For years, people have asked me to help them get started with programming, and I never had a good answer on how to do this - until now. This course will take you from being a moderately sophisticated computer user to being able to actually write and think in code. We'll walk through each step in detail, covering a range of the skills you'll need to become a programmer, but only to the depth necessary to get our work done. At the end of the course, you'll be know enough of the answers, and more importantly, be asking the right questions that a programmer knows to ask.
Traditional intro courses teach a single subject in depth - but this is not how people learn. New programmers learn a small piece of a subject, then learn another small piece of another skill, and learn to connect them together. Only later when it's needed to complete a problem does in-depth knowledge come along, and this course reflects that. By pursuing this minimum knowledge approach, we're minimizing the confusion and maximizing the effectiveness of what you have learned. We'll go from nothing installed in the beginning to working with development tools to deploy our application to the cloud at the end, stopping at every point along the way to make sure that we understand what we're doing and why.
Thanks to the very funky Benjamin Tissot at Bensound for 'All That', our theme music.