Software Engineering Fundamentals
|
|
|

Table Of Contents -

  1. Introduction
  2. Chapter 1: Something to Deliver

Introduction

About the Course

Having spent about 7 years of my professional career in Computer Science, I wanted to share a little about what I have learned so far. I will note here that my experiences might not be exactly what will happen to you but sharing of this knowledge and perspective is important.

The following videos and code will step through what I hope to be a succinct collection of skills and process I've developed an understanding for over the years and apply them all at once. This course will teach pieces from multiple disciplines of Computer Science to hopefully give you somewhat of an understanding of the lifecycle of an application in industry.

Again this course is intended to give you a small test of multiple different complex topics some of which might not be as in depth or explanatory as possible. There will be code snippets provided as well as additional learning resources to help fill gaps. If at any time you find more information is needed or anything else needs to be communicated please provide feedback either on the videos themselves or in the feedback link.

Good luck and I hope that some of the content below might help you on your future endeavours!


What Not to Expect in Industry

In a simple answer: Perfection. Do not expect that the fundamentals you have been self taught or taught in a classroom setting to be implemented anywhere you go. Or at least implemented well. This is NOT a bad thing, this should tell you something about what it means to be an Engineer. We want to do things perfectly but we never do. Not because we don't try to do things perfectly but because we live in an imperfect world. Not everything was built yesterday many good things have been created long ago and have been maintained and improved on. Much like a Cathedral that has had its stones replaced after years might not be constructed of the same material 800 years ago but it holds the same value. You build off of other great engineers learn from what they've done and you will follow suit.


What to Expect in Industry

Another simple answer: Change. At the time of writing this A.I. is the rage. Deepseek and ChatGPT battling it out for shareholder value. As an Engineer in technology your ability to use new tools and technologies is always at your fingertips (As long as it's not blocked by security). This means you must adapt, but don't just adapt to what is popular in the media, you get to use these tools and apply them. See what's valuable and what's not. Some things may be popular but not applicable to your skillset or problem. This is what makes being an Engineer so great, you get to solve problems your way, trust yourself and your ability and you will find the tools you need.

Chapter 1: Something to Deliver

Getting Started

First things first we need something to deliver. We will identify a Product and the Value that it provides. Then we need to understand what and how we need to build it. This is key in understanding a job you will get hired on to do. Usually Value has been identified, a Product has been created and Someone is already using it. Unless you are in the startup world this is where you will most likely find yourself.

In this case we are going to be developing a Blazor WASM application. This is a somewhat newer framework and we will be starting from a fresh implementation with no legacy code. This will help you get a feel for fundamentals of web development but know that this is very specific just for this course and not necessarily what you might be thrown into when you first start your career.

Now that we have a framework and a general idea of how we are going to build a website lets focus it on a type of product. In this case let's make a social media look alike but maybe for a certain topic like plants. Where users are sharing and connecting with others who have similar interests with plants! We are going to assume that this company is also a "Microsoft Shop" which would mean they are in the Microsoft ecosystem, Windows OS, Azure, Azure DevOps, Entra, MSSQL, etc. This is pretty common to see. Say what you will about Microsoft but their integrations are seamless if you are willing to pay the monthly costs.

Don't worry though we will utilize Linux later on in the course and show ways to cut costs wherever possible. Cost Optimization is always a goal for every company.

You can always skip this Chapter's coding portion by going to the github repo here


Part 1: Downloading Tools

What You Need

Cost: $0

Time: 0h 20m

What You Learn

  1. Common tools to use in software development.
  2. Initial setup of an IDE and containerization software.

Videos


Part 2: Putting Together a Local Environment

What You Need

Cost: $0

Time: 0h 20m

What You Learn

  1. Why development tools matter and why you should learn them.
  2. Introduction to Blazor framework for web applications.

Videos


Part 3: Introduction to Web Development - Blazor and Entity Framework Core

What You Need

Cost: $0

Time: 1h 20m

What You Learn

  1. Introduction to Blazor framework principals.
  2. Introduction to Entity Framework Core.
  3. Website development structure.

Videos

Code

Chapter 1 Part 3

Part 4: Introduction to Web Development - Blazor Components and EF Core Migrations

What You Need

Cost: $0

Time: 0h 30m

What You Learn

  1. Introduction to EF Core migrations.
  2. Blazor components and creating your own.

Videos


Part 5: Introduction to Web Development - Client/Server Functionality, Services, and Controllers

What You Need

Cost: $0

Time: 1h 20m

What You Learn

  1. Introduction Client/Server Functionality such as Services.
  2. Introduction to Controllers and Api endpoints.
  3. Introduction to JWT Authentication.
  4. Leveraging AspNetCore Identity to create new users.

Videos

Code

Chapter 1 Part 4-5

Part 6: Introduction to Web Development - Data Validation and Login/Authentication Functionality

What You Need

Cost: $0

Time: 1h 40m

What You Learn

  1. Data Validation on Frontend forms.
  2. Login functionality with JWT.
  3. Authorization view tags.

Videos

Code

Chapter 1 Part 6

Part 7: Introduction to Web Development - Separation of Concerns

What You Need

Cost: $0

Time: 0h 40m

What You Learn

  1. How we consider Separation of Concerns.
  2. EF migrations and using Foreign keys.
  3. Building up functionality.

Videos

Code

Chapter 1 Part 7-8

Part 8: Introduction to Web Development - Securing API Calls With JWT

What You Need

Cost: $0

Time: 1h 0m

What You Learn

  1. Decoding JWT.
  2. Securing API calls with JWT.

Videos

Code

Chapter 1 Part 7-8
An unhandled error has occurred. Reload 🗙