Accessing the Course
All details regarding how to access the course are available on
https://www.sw-foundations.com/basic-programming-course
Basic Programming
Online, On-Demand with Live Interactions
After completing the Intro to Programming course, you can continue with the rest of the Basic Programming course, online, on-demand with professional bi-weekly Live Interactions in groups of 8-12 people.
In this flagship course you will learn the foundations of what it takes to become a great software developer: from knowledge to mindset.
In other words, everything you need to know to pass any technical interview for an entry level back-end software developer role.
Check your inbox to confirm your subscription
Course Curriculum
Available in
days
days
after you enroll
- C00.01 - Magic Numbers (0:12)
- C00.02 - Agenda (0:12)
- C00.03 - Why This Course Was Created (2:09)
- C00.04 - Making An Impact (1:49)
- C00.05 - Addressing Common Mistakes (4:29)
- C00.06 - Course Setup (1:35)
- C00.07 - About The Course (5:14)
- C00.08 - Course Structure (2:49)
- C00.09 - Course Expectations - What We Cover (2:19)
- C00.10 - Course Expectations - What We Don't Cover.mp4 (1:43)
- C00.11 - Course Expectations - From Me (1:16)
- C00.12 - Course Expectations - From You (2:29)
- C00.13 - Reliable Tools For Taking Precious Notes (0:51)
- C00.14 - Course Expectations - From You - Practice What You Learned (3:00)
- C00.15 - Give Yourself Time To Grow (0:44)
- C00.16 - Magic Numbers Explained (1:38)
- C00.17 - What Does A Software Developer Do (0:40)
- C00.18 - What To Expect From The Life Of A Software Developer (3:09)
- C00.19 - Other Things To Take Into Consideration (2:58)
- C00.20 - Software Development Real Life Memes (1:14)
- C00.13 - Quiz
- C00.14 - Slides
Available in
days
days
after you enroll
- C01.01 - Intro (0:32)
- C01.02 - Computers (0:52)
- C01.03 - What is Programming (3:23)
- C01.04 - What is an Algorithm (3:04)
- C01.05 - What is a Programming Language (1:43)
- C01.06 - What is a Program (1:55)
- C01.07 - How Does a Computer Run a Program (2:09)
- C01.08 - Programming Process (3:39)
- C01.09 - Coming Up With Solutions (3:04)
- C01.10 - Exercise Problem (0:28)
- C01.11 - Analysis (2:30)
- C01.12 - Solutions (2:06)
- C01.13 - Decomposition (2:24)
- C01.14 - Why Use Decomposition (3:07)
- C01.15 - Pitfalls (1:16)
- C01.16 - How to Overcome Analysis Paralysis (3:39)
- C01.17 - Choosing the Solution (1:00)
- C01.18 - Solutions Assessment (2:36)
- C01.19 - Choosing the Solution Recap (2:49)
- C01.20 - Live Exercise (0:19)
- C01.21 - Conclusion (2:42)
- C01.22 - Homework (0:31)
- C01.23 - Quiz
- C01.24 - Slides
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- C03.01 - Introduction (0:33)
- C03.02 - Simple Diagrams (1:07)
- C03.03 - Programming Process Recap (2:44)
- C03.04 - Planning the Solution (1:09)
- C03.05 - Flow Diagrams or Flowcharts (4:32)
- C03.06 - Flowchart Visual Representation (0:59)
- C03.07 - Flowchart of a Simple Algorithm (0:59)
- C03.08 - Flowchart of an Intermediate Algorithm (2:56)
- C03.09 - Flowchart of a Complex Algorithm and UML (1:22)
- C03.10 - Flowchart Drawing Tools (1:48)
- C03.11 - Drawing Your First Diagram (6:36)
- C03.12 - Saving Your Diagram (0:39)
- C03.13 - Load and Resume Work on Your Diagram (0:50)
- C03.14 - Selecting Multiple Shapes (1:01)
- C03.15 - Recreating the Simple Algorithm (4:51)
- C03.16 - Recreating the Intermediate Algorithm (8:04)
- C03.17 - Multiple Diagrams Same Meaning (5:15)
- C03.18 - Live Session (1:41)
- C03.19 - Conclusion (0:39)
- C03.20 - Homework (0:03)
- C03.21 - Quiz
- C03.22 - Slides
Available in
days
days
after you enroll
- C04.01 - Introduction (0:41)
- C04.02 - Software Development Overview Recap (0:38)
- C04.03 - Programming Process Recap (0:33)
- C04.04 - Coding the Solution - Where to Start (5:38)
- C04.05 - Coding the Solution - How to Start (5:08)
- C04.06 - What is Pseudocode and Why Use It (1:47)
- C04.07 - How to Use Pseudocode (0:25)
- C04.08 - Building Blocks (4:45)
- C04.09 - Comments Actions and Variables (1:48)
- C04.10 - Boolean Values and Simple If (1:59)
- C04.11 - If With Else (0:59)
- C04.12 - If With Extended Condition (1:04)
- C04.13 - If With Multiple Conditions (0:27)
- C04.14 - Code Formatting (2:46)
- C04.15 - Loops (4:29)
- C04.16 - Pseudocode - Simple Shower Example (0:28)
- C04.17 - Pseudocode - Intermediate Shower Example (4:07)
- C04.18 - From Pseudocode to Actual Source Code (1:22)
- C04.19 - Greet User Flowchart (2:42)
- C04.20 - Greet User Pseudocode (3:20)
- C04.21 - Greet User Actual Source Code in C# (2:21)
- C04.22 - Pseudocode vs. Source Code Comparison (0:58)
- C04.23 - Next Steps Towards a Software Product (0:49)
- C04.24 - Live Session (0:41)
- C04.25 - Homework (0:04)
- C04.26 - Quiz
- C04.27 - Slides
Available in
days
days
after you enroll
- C05.01 - Introduction (1:16)
- C05.02 - Visual Studio (3:18)
- C05.03 - Common Project Types (2:40)
- C05.04 - Download (0:39)
- C05.05 - Install and Configure (2:24)
- C05.06 - Hello World (0:32)
- C05.07 - What is Console (1:07)
- C05.08 - Create Console Application (0:57)
- C05.09 - Graphical User Interface (0:39)
- C05.10 - Zoom (0:15)
- C05.11 - Coding Hello World (2:03)
- C05.12 - Build (1:19)
- C05.13 - Output (1:35)
- C05.14 - Executing Program From Windows Explorer (0:27)
- C05.15 - Navigation in Cosole (1:14)
- C05.16 - Executing Program From Console (1:02)
- C05.17 - Absolute Paths (0:15)
- C05.18 - Relative Paths (1:36)
- C05.19 - Windows is Case Insensitive (0:31)
- C05.20 - More on Executing Program From Console (1:30)
- C05.21 - Executing Program From Visual Studio (2:31)
- C05.22 - Clean it up (0:49)
- C05.23 - Error Identification (0:55)
- C05.24 - Get Input From User (5:56)
- C05.25 - Formatting is Ignored by Compiler (1:51)
- C05.26 - Conclusion (0:12)
- C05.27 - Homework
- C05.28 - Quiz
- C05.29 - Slides
Available in
days
days
after you enroll
- C06.01 - Introduction (1:46)
- C06.02 - Agenda (0:24)
- C06.03 - What is Source Control (1:21)
- C06.04 - Why Use Source Control (2:05)
- C06.05 - Source Control Flow (2:34)
- C06.06 - Code Hosting Service (1:33)
- C06.07 - Code Hosting Service Options (1:29)
- C06.08 - Getting Started with GitHub (1:02)
- C06.09 - Create Repository in GitHub (1:24)
- C06.10 - Revision Technologies (0:53)
- C06.11 - Getting Started with Git (1:00)
- C06.12 - Git Init (1:56)
- C06.13 - Git Clone (1:15)
- C06.14 - Basic Terminology (0:57)
- C06.15 - Git Status (1:21)
- C06.16 - Git Add (1:39)
- C06.17 -Staged and Unstaged Files (0:20)
- C06.18 -Git Reset (0:39)
- C06.19 -Git Commit (3:17)
- C06.20 -Git Push (1:43)
- C06.21 -Git Commands Overview (3:34)
- C06.22 -Git Commands Another Perspective (1:59)
- C06.23 -Visualizing Git Push (0:37)
- C06.24 -Git Pull (2:00)
- C06.25 -Visualizing Git Pull (0:31)
- C06.26 -Repository History (0:57)
- C06.27 -Git Fetch (1:28)
- C06.28 - Hands On - Git Download and Install (0:54)
- C06.29 - Hands On - Git Bash (0:41)
- C06.30 - Hands On - Prepare Folder for Local Repository (1:18)
- C06.31 - Hands On - Git Bash Navigation (1:14)
- C06.32 - Hands On - Git Bash Open Directly to Repository (0:23)
- C06.33 - Hands On - Git Init (1:35)
- C06.34 - Hands On - Git Clone (0:59)
- C06.35 - Hands On - Fix Double Folder Path (0:39)
- C06.36 - Hands On - Local Repository vs Remote Repository (0:08)
- C06.37 - Hands On - Git Status (0:44)
- C06.38 - Hands On - Adding Files to Local Repository (1:05)
- C06.39 - Hands On - Git Add (0:36)
- C06.40 - Hands On - Git Reset (0:16)
- C06.41 - Hands On - Prepare for Commit (1:50)
- C06.42 - Hands On - Git Commit (1:19)
- C06.43 - Hands On - Git Push (0:26)
- C06.44 - Hands On - Compare Synced Repositories (0:43)
- C06.45 - Hands On - Git Status for Synchronization Status (0:16)
- C06.46 - Hands On - Git Commit Remaining File (1:12)
- C06.47 - Hands On - Git Detect Changes to Existing Files (1:24)
- C06.48 - Hands On - Git History of Repository (1:10)
- C06.49 - Hands On - Simulate Change From Another Machine (1:19)
- C06.50 - Hands On - Git Fetch (1:09)
- C06.51 - Hands On - Git Pull (0:33)
- C06.52 -Conclusion (0:44)
- C06.53 - Homework
- C06.54 - Quiz
- C06.55 - Slides
Available in
days
days
after you enroll
- C07.01 - Introduction (0:12)
- C07.02 - Agenda (0:29)
- C07.03 - Workflow Example (1:49)
- C07.04 - Making It Better (0:43)
- C07.05 - Branches (1:38)
- C07.06 - Non Git Workflow (2:49)
- C07.07 - A Story of Three Developers (2:59)
- C07.08 - Git Workflow (1:56)
- C07.09 - Develop Branch (1:24)
- C07.10 - Feature Branch (3:36)
- C07.11 - Release Branch (1:03)
- C07.12 - Hotfix Branch (1:34)
- C07.13 - Git Workfllow Recap (1:02)
- C07.14 - Create a Branch (1:57)
- C07.15 - Branch Managment - Merge (1:46)
- C07.16 - Branch Managment - Rebase (2:08)
- C07.17 - Branch Managment - Squash (2:06)
- C07.18 - Branch Managment - Merge vs Rebase (0:58)
- C07.19 - Branch Managment - The Horror (0:14)
- C07.20 - Branch Managment - Reset (1:03)
- C07.21 - Branch Managment - Clean (0:44)
- C07.22 - Branch Managment - Delete Local Branch (0:29)
- C07.23 - Branch Managment - Delete Remote Branch (0:31)
- C07.24 - Branch Managment - When In Doubt Reclone (0:48)
- C07.25 - Branch Managment - Pull Requests (1:16)
- C07.26 - Other Tools (2:23)
- C07.27 - Log (1:19)
- C07.28 - Checkout Commit (1:21)
- C07.29 - Git History and Visual Tools (0:19)
- C07.30 - Source Tree - Download and Install (0:46)
- C07.31 - Source Tree - Add Local Repository (0:26)
- C07.32 - Source Tree - UI Overview (1:30)
- C07.33 - Source Tree - Stage and Unstage Files (1:14)
- C07.34 - Source Tree - Commit (0:41)
- C07.35 - Source Tree - History Analysis (0:42)
- C07.36 - Source Tree - Push (0:46)
- C07.37 - Source Tree - History Analysis on Multiple Branches (1:45)
- C07.38 - Source Tree - Compare Files From a Commit (1:27)
- C07.39 - Source Tree - Create a New Branch (1:13)
- C07.40 - Source Tree - Branch Switching on Local Repo (1:29)
- C07.41 - Source Tree - Different Branch Evolution (1:33)
- C07.42 - Source Tree - Branch Deletion (1:16)
- C07.43 - WinMerge for File Comparison (1:22)
- C07.44 - SourceTree Integration With WinMerge (1:23)
- C07.45 - Prepare For Pull Request (3:38)
- C07.46 - Create Pull Request (1:04)
- C07.47 - Assign Pull Request To Collaborators (0:24)
- C07.48 - Performing Code Review (1:31)
- C07.49 - Next Steps After Code Review (0:12)
- C07.50 - Merge (0:35)
- C07.51 - Delete Feature Branch After Merge (0:18)
- C07.52 - Merge Impact On History (0:35)
- C07.53 - Delete Repo From GitHub (0:38)
- C07.54 - Recreate Repo (0:17)
- C07.55 - Delete Repo From Local Computer (0:19)
- C07.56 - Re-Clone (0:24)
- C07.57 - Prepare For Pull Request Again (1:54)
- C07.58 - Create Pull Request Again (0:41)
- C07.59 - Code Review Follow-Up Activities (0:42)
- C07.60 - Pull Request Details (0:19)
- C07.61 - Rebase (0:11)
- C07.62 - More on Merge And Rebase (0:24)
- C07.63 - Delete Feature Branch Again (0:05)
- C07.64 - Rebase Impact On History (0:29)
- C07.65 - Conclusion (0:42)
- C07.66 - Homework
- C07-67 - Quiz
- C07-68 - Slides
Available in
days
days
after you enroll
- C08.01 - Introduction (0:33)
- C08.02 - Agenda (0:25)
- C08.03 - Computer Architecture (2:32)
- C08.04 - Computer Components (1:52)
- C08.05 - One CPU One Core - Synchronous Processing (0:44)
- C08.06 - One CPU One Core And HyperThreading - Asynchronous Processing (2:01)
- C08.07 - One CPU More Cores - True Parallel Processing (0:55)
- C08.08 - Multiple CPUs, More Cores - True Parallel Processing (0:45)
- C08.09 - Procesing Visualization (1:45)
- C08.10 - Programs (1:32)
- C08.11 - Scripts (1:03)
- C08.12 - Usages of Programs And Scripts (3:07)
- C08.13 - Programs And Scripts Examples (1:02)
- C08.14 - Processes (0:56)
- C08.15 - Threads (0:18)
- C08.16 - Processes And Threads Visualization (1:00)
- C08.17 - Processes And Threads Comparison (0:47)
- C08.18 - Resources (1:15)
- C08.19 - Performance (0:53)
- C08.20 - Task Manager (0:33)
- C08.21 - SDK (0:45)
- C08.22 - IDE (1:05)
- C08.23 - Frameworks (1:06)
- C08.24 - .NET Overview (0:32)
- C08.25 - .NET Programming Languages (0:34)
- C08.26 - .NET Components (1:05)
- C08.27 - .NET Framewok (0:46)
- C08.28 - CLR (0:51)
- C08.29 - CLR Components (0:22)
- C08.30 - CLS and MSIL with Managed Code (1:32)
- C08.31 - CLS with Unmanaged Code (0:26)
- C08.32 - CTS (0:20)
- C08.33 - Value Types (0:50)
- C08.34 - Stack Mechanism (1:21)
- C08.35 - Reference Types (1:36)
- C08.36 - Reference Types Perspective (0:16)
- C08.37 - .NET Types Hands-On Example (2:36)
- C08.38 - Reference Types Yet Another Perspective (0:30)
- C08.39 - .NET Garbage Collector (1:08)
- C08.40 - .NET Just In Time Compiler (4:01)
- C08.41 - CLR Benefits (1:20)
- C08.42 - Conclusion (0:10)
- C08.43 - Homework
- C08.44 - Quiz
- C08.45 - Slides
Available in
days
days
after you enroll
- C09.01 - Agenda (0:25)
- C09.02 - Console App Recap (1:40)
- C09.03 - The Bond Problem in a Console App (0:51)
- C09.04 - The Console Bond Solution (2:45)
- C09.05 - Debug And Release Configurations (3:27)
- C09.06 - Windows Forms App (5:06)
- C09.07 - First Windows Forms App (1:12)
- C09.08 - Designer View Perspective (0:43)
- C09.09 - Code View Perspective (0:18)
- C09.10 - Adding a Button Control From Designer View (1:34)
- C09.11 - Visual Studio Window Management (0:52)
- C09.12 - Changing Button Properties From Designer (3:34)
- C09.13 - Double Checking Selected Controls From Designer (0:54)
- C09.14 - Changing The Button Control Name (0:33)
- C09.15 - Changing The Form Control Name (1:09)
- C09.16 - The Second Code View Perspective (3:08)
- C09.17 - The Executable Output Of Windows Forms App (0:44)
- C09.18 - Learning More From The Official Documentation (1:28)
- C09.19 - Change Property At Runtime (1:38)
- C09.20 - Create a Click Event From Designer (2:53)
- C09.21 - Events From The Code Perspective (2:58)
- C09.22 - Troubleshooting Broken Events (0:58)
- C09.23 - Default Events (1:36)
- C09.24 - Use Standard Naming Convention For Events (0:25)
- C09.25 - The Windows Forms Bond Solution (5:13)
- C09.26 - Differences Between Windows Forms And Console (0:31)
- C09.27 - More Controls More Code In Form Designer (0:30)
- C09.28 - Double Click Event On Label (1:29)
- C09.29 - Creating Intuitive GUIs (0:25)
- C09.30 - Class Library (1:06)
- C09.31 - The Class Library Bond Solution (0:49)
- C09.32 - Existing Code Analysis (0:47)
- C09.33 - First Class Library Project (0:57)
- C09.34 - Building Libraries (0:39)
- C09.35 - Adding A Console App To Use Our Library (0:34)
- C09.36 - Changing Startup Projects In A Solution (0:54)
- C09.37 - Adding A Windows Forms App To Use Our Library (0:39)
- C09.38 - Changing Startup Projects Again (0:33)
- C09.39 - Debug Any Project (0:20)
- C09.40 - Analyzing Existing Code To Make It Generic (0:52)
- C09.41 - Building The Library (4:21)
- C09.42 - Referencing The Library As A Project To The Console App (0:44)
- C09.43 - Using The Library From The Console App (3:48)
- C09.44 - Recreate The Windows Forms App (1:34)
- C09.45 - Referencing The Library As A Project To The Windows Forms App (0:35)
- C09.46 - Using The Library From The Windows Forms App (2:02)
- C09.47 - Recap (0:43)
- C09.48 - Referencing Libraries Using The Dll Files (2:11)
- C09.49 - Using The Library From A Dll File (1:03)
- C09.50 - Project Vs File Referenced Libraries (3:07)
- C09.51 - Conclusion (0:12)
- C09.52 - Homework
- C09.53 - Quiz
- C09.54 - Slides & Sources
Available in
days
days
after you enroll
- C10.01 - Agenda (0:45)
- C10.02 - Keywords (2:12)
- C10.03 - Code Organization (3:12)
- C10.04 - Entry Points (0:31)
- C10.05 - Comments (2:55)
- C10.06 - Data Types (1:29)
- C10.07 - Variables (1:15)
- C10.08 - Numeric Types (1:39)
- C10.09 - Float Type (0:58)
- C10.10 - Double Type (0:44)
- C10.11 - Decimal Type (0:47)
- C10.12 - Arithmetic Operators (0:55)
- C10.13 - Increment And Decrement (1:42)
- C10.14 - Other Operators (1:22)
- C10.15 - Boolean Types (1:00)
- C10.16 - Conditional Logical Operators (2:06)
- C10.17 - Multiple Statements (2:45)
- C10.18 - Boolean Variables (1:41)
- C10.19 - Char Type (0:15)
- C10.20 - Escaping Special Characters (1:25)
- C10.21 - ASCII (1:09)
- C10.22 - String Type (1:00)
- C10.23 - Type Conversions (2:40)
- C10.24 - Conditionals (0:38)
- C10.25 - Output Data To Provide Feedback (0:57)
- C10.26 - Hands On Exercise (1:09)
- C10.27 - Homework
- C10.28 - Quiz
- C10.29 - Slides
Available in
days
days
after you enroll
- C11.01 - Agenda (0:09)
- C11.02 - Console Logging (1:08)
- C11.03 - Redirect To Log File (4:08)
- C11.04 - Hands On - Append Operator (4:43)
- C11.05 - Hands On - Replace Operator (0:49)
- C11.06 - Logging To A File (0:40)
- C11.07 - Hands On - Write And Append To A File (2:25)
- C11.08 - Hands On - Write On New Lines (1:24)
- C11.09 - Hands On - Absolute And Relative Paths (2:20)
- C11.10 - Load Text From A File (0:30)
- C11.11 - Hands On - Load File Contents Into Memory (1:55)
- C11.12 - Check Filesize Before Loading Into Memory (0:27)
- C11.13 - While Loop (2:31)
- C11.14 - Do While Loop (0:38)
- C11.15 - Hands On - While Loop (2:55)
- C11.16 - For Loop (3:05)
- C11.17 - Hands On - Loop Block Definition (3:12)
- C11.18 - While Vs For - When To Use (0:50)
- C11.19 - Loop Control - Break (0:50)
- C11.20 - Hands On - Loop Break (2:01)
- C11.21 - Loop Control - Continue (1:36)
- C11.22 - Hands On - Loop Continue (0:41)
- C11.23 - Loop Variable Names (1:24)
- C11.24 - Functions Recap (0:37)
- C11.25 - Why Use Custom Functions (1:01)
- C11.26 - Creating Custom Functions (3:27)
- C11.27 - Return From Void Functions (1:23)
- C11.28 - Function Signature (0:32)
- C11.29 - Signature Examples (2:06)
- C11.30 - Naming Rules For Variables And Functions (0:56)
- C11.31 - Function Types - Static Functions (1:20)
- C11.32 - Function Types - Non-Static Functions (0:41)
- C11.33 - Calling Functions (1:57)
- C11.34 - Refactoring (2:30)
- C11.35 - Hands On Session (0:32)
- C11.36 - Conclusion (0:42)
- C11.37 - Homework
- C11.38 - Quiz
- C11.39 - Slides
Available in
days
days
after you enroll
- C12.01 - Agenda (0:08)
- C12.02 - Arrays Intro (1:02)
- C12.03 - 1D Array Declaration (1:04)
- C12.04 - 1D Array Set Values (1:41)
- C12.05 - 1D Array Read Values (1:02)
- C12.06 - 1D Array Already Known Examples (2:43)
- C12.07 - 1D Array Other Examples (1:51)
- C12.08 - 1D Array What To Pay Attention To (2:34)
- C12.09 - 1D Array Hands On (4:12)
- C12.10 - 2D Array (3:10)
- C12.11 - 2D Array Hands On (3:48)
- C12.12 - 2D Array Initialization Hands On (2:17)
- C12.13 - Multidimensional Array (2:08)
- C12.14 - Rank And Length (0:47)
- C12.15 - Array With Uneven Elements (2:38)
- C12.16 - Jagged Array (1:46)
- C12.17 - Jagged Array Hands On (2:42)
- C12.18 - Array Common Properties (0:15)
- C12.19 - Array Common Operations (1:14)
- C12.20 - 2D Array Common Properties Rank And Length (0:47)
- C12.21 - Array Best Practices (1:08)
- C12.22 - Foreach Loop (1:23)
- C12.23 - Foreach Hands On (1:47)
- C12.24 - Hands On Session (0:18)
- C12.25 - Conclusion (0:25)
- C12.26 - Homework
- C12.27 - Quiz
- C12.28 - Slides
Available in
days
days
after you enroll
- C13.01 - Introduction (0:28)
- C13.02 - Agenda (0:34)
- C13.03 - Code Navigation (0:29)
- C13.04 - Go To and Peek Definition (1:25)
- C13.05 - Hands On - Practice Project Walkthrough (1:02)
- C13.06 - Hands On - Go To Definition (0:31)
- C13.07 - Hands On - Peek To Definition (0:31)
- C13.08 - References (1:23)
- C13.09 - Hands On - Find All References (0:59)
- C13.10 - Hands On - Method Reference Count (0:25)
- C13.11 - Go To All (0:57)
- C13.12 - Hands On - Go To All (1:19)
- C13.13 - Navigate Through The Methods In Same Class With The Dropdown (0:14)
- C13.14 - Hands On - The Dropdown (0:28)
- C13.15 - Back And Forward Buttons (0:49)
- C13.16 - Hands On - Back And Forward Buttons (0:55)
- C13.17 - Zoom In And Out (0:11)
- C13.18 - Hands On - Zoom In And Out (0:13)
- C13.19 - Highlight Usages Of Nearby Variables And Methods (0:11)
- C13.20 - Hands On - Highlight Usages Of Nearby Variables And Methods (0:36)
- C13.21 - Track Active Item In Solution Explorer (0:20)
- C13.22 - Hands On - Track Active Item (1:19)
- C13.23 - File Statuses (0:21)
- C13.24 - Hands On - File Statuses (0:29)
- C13.25 - Scrollbar Code Hints (0:25)
- C13.26 - Tracking Changed Lines In A File (0:22)
- C13.27 - Squiggly Lines (0:35)
- C13.28 - Hands On - Scrollbar Code Hints (2:18)
- C13.29 - Hands On - Cleaning Up Unused Namespaces (0:31)
- C13.30 - Hands On - Tracking Changed Lines In A File (0:41)
- C13.31 - What Is Debugging (0:19)
- C13.32 - How To Start Debugging (1:11)
- C13.33 - Debugging And Exceptions (2:35)
- C13.34 - Breakpoints (1:30)
- C13.35 - Hands On - Adding A Breakpoint (0:19)
- C13.36 - Debugger Cursor Hits Breakpoint (0:35)
- C13.37 - Hands On - Hitting The Breakpoint (0:37)
- C13.38 - Continue Execution After Hitting A Breakpoint (1:16)
- C13.39 - Hands On - Continue Execution Breakpoint Is Hit (0:22)
- C13.40 - Hands On - Working With Multiple Breakpoints (1:35)
- C13.41 - Delete, Disable And Enable Breakpoints (1:17)
- C13.42 - Hands On - Deleting Breakpoints (0:17)
- C13.43 - Hands On - Disable And Enable Existing Breakpoints (0:36)
- C13.44 - Hands On - Delete All Breakpoints From The Solution (0:20)
- C13.45 - Conditional Breakpoints (1:08)
- C13.46 - Hands On - Adding Conditional Breakpoints (2:14)
- C13.47 - Debugger Cursor And Step Over Or F10 (1:08)
- C13.48 - Hands On - Control Code Execution With Step Over or F10 (3:53)
- C13.49 - Debugger Cursor And Step Into Or F11 (1:01)
- C13.50 - Hands On - Control Code Execution With Step Into or F11 (2:32)
- C13.51 - Debugger Cursor Skip Code Execution (0:17)
- C13.52 - Hands On - Skip Code Execution (1:18)
- C13.53 - Debugger Cursor Re-Execute Code (0:24)
- C13.54 - Hands On - Re-Execute Code (0:55)
- C13.55 - Discovering How The Code Works (0:18)
- C13.56 - Hands On - For Loop Visual Workflow (1:26)
- C13.57 - Check Values Of Variables By Hovering Your Mouse Over Them (0:16)
- C13.58 - Hands On - View Variable Values While Debugging (1:30)
- C13.59 - Use Debugger To Understands What Does Not Work And Why (0:42)
- C13.60 - Debug Windows (0:43)
- C13.61 - Outpt Window (1:00)
- C13.62 - Re-Opening Closed Debug Windows (0:23)
- C13.63 - Hands On - Output Window (1:31)
- C13.64 - Locals Window (0:19)
- C13.65 - Hands On - Locals Window (1:15)
- C13.66 - Watch Window (0:50)
- C13.67 - Hands On - Watch Window (1:38)
- C13.68 - Hands On - Changing Values During Debugging (1:10)
- C13.69 - Immediate Window (0:58)
- C13.70 - Hands On - Immediate Window (2:18)
- C13.71 - Hands On - Debugger Conclusion (0:17)
- C13.72 - Closed Debug Windows (0:19)
- C13.73 - Final Considerations (0:35)
- C13.74 - Rubber Duck Debugging Technique (0:52)
- C13.75 - Hands On Session (0:07)
- C13.76 - Conclusion (0:33)
- C13.77 - Homework
- C13.78 - Quiz
- C13.79 - Slides & Sources
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- C18.01 - Agenda (0:31)
- C18.02 - Constants (0:53)
- C18.03 - Switch (2:17)
- C18.04 - Hands On - Switch (2:47)
- C18.05 - Switch As An If (0:34)
- C18.06 - Overflow (1:44)
- C18.07 - Hands On - Overflow (1:42)
- C18.08 - Random (1:29)
- C18.09 - Hands On - Random (3:23)
- C18.10 - Common String Search Operations (0:56)
- C18.11 - Hands On - Common String Search Operations (4:06)
- C18.12 - Common String Build Operations (0:45)
- C18.13 - Hands On - Common String Build Operations (4:14)
- C18.14 - Common String Transform Operations (0:33)
- C18.15 - Hands On - Common String Transform Operations (2:33)
- C18.16 - Boxing And Unboxing (1:53)
- C18.17 - Boxing And Unboxing Visually (0:25)
- C18.18 - Hands On - Boxing And Unboxing (1:43)
- C18.19 - Nullable Types (1:36)
- C18.20 - Nullable Types Common Properties (0:55)
- C18.21 - Hands On - Nullable Types (4:07)
- C18.22 - Nullable Types Shorthand Notation (0:28)
- C18.23 - Hands On - Nullable Types Shorthand Notation (0:24)
- C18.24 - As Operator (0:43)
- C18.25 - Hands On - As Operator (2:18)
- C18.26 - Is Operator (1:01)
- C18.27 - Hands On - Is Operator (1:15)
- C18.28 - Enums (0:57)
- C18.29 - Enum Values (0:43)
- C18.30 - Enum Example (1:32)
- C18.31 - Hands On - Named Constants (2:37)
- C18.32 - Hands On - Enums (4:00)
- C18.33 - Homework
- C18.34 - Quiz
- C18.35 - Slides
Available in
days
days
after you enroll
- C19.01 - Agenda (0:17)
- C19.02 - Data Structures (0:34)
- C19.03 - Lists (2:48)
- C19.04 - List Building Operations (0:33)
- C19.05 - List Building Operations - Hands On (7:53)
- C19.06 - List Finding Operations (0:22)
- C19.07 - List Finding Operations - Hands On (7:28)
- C19.08 - List Other Common Operations (0:20)
- C19.09 - List Other Common Operations - Hands On (2:05)
- C19.10 - Queue (0:25)
- C19.11 - Queue Common Operations (1:04)
- C19.12 - Queue Common Operations - Hands On (4:56)
- C19.13 - Stack (0:56)
- C19.14 - Stack Common Operations (0:44)
- C19.15 - Stack Common Operations - Hands On (3:36)
- C19.16 - KeyValuePairs (1:14)
- C19.17 - KeyValuePairs Common Operations (0:18)
- C19.18 - KeyValuePairs Common Operations - Hands On (3:04)
- C19.19 - Dictionary (0:36)
- C19.20 - Dictionary Common Operations (0:52)
- C19.21 - Dictionary Common Operations - Hands On (5:36)
- C19.22 - Dictionary Replacement For If (0:55)
- C19.23 - Dictionary Replacement For If - Hands On (1:54)
- C19.24 - Dictionary Iteration - Hands On (1:14)
- C19.25 - Hashset (0:34)
- C19.26 - Hashset Common Operations (0:45)
- C19.27 - Hashset Common Operations - Hands On (6:38)
- C19.28 - Tuple (0:30)
- C19.29 - Tuple Common Operations (0:31)
- C19.30 - Tuple Common Operations - Hands On (4:34)
- C19.31 - When To Use Data Structures (1:16)
- C19.32 - Homework
- C19.33 - Quiz
- C19.34 - Slides & Sources
Available in
days
days
after you enroll
- C20.01 - Introduction (0:53)
- C20.02 - Agenda (0:24)
- C20.03 - What is OOP (0:59)
- C20.04 - Common OOP Definitions (2:46)
- C20.05 - Procedural Programming Characteristics (1:24)
- C20.06 - OOP Characteristics (0:54)
- C20.07 - A Slightly Better Definition of OOP (1:04)
- C20.08 - OOP Is About The Messaging Between Objects To Solve A Problem (0:20)
- C20.09 - Why Use OOP (0:35)
- C20.10 - OOP In Real Life (2:44)
- C20.11 - Declaration Object Instance (2:07)
- C20.12 - OOP Principles (0:29)
- C20.13 - Abstraction (1:19)
- C20.14 - How To Apply Abstraction (0:14)
- C20.15 - Real Life Abstraction Example #1 (5:25)
- C20.16 - Real Life Abstraction Example #2 (1:57)
- C20.17 - Why Use Abstraction (1:42)
- C20.18 - Managing Complexity (0:47)
- C20.19 - Multiple Levels Of Abstraction (0:59)
- C20.20 - Abstraction Conclusion (2:07)
- C20.21 - Homework
- C20.22 - Quiz
- C20.23 - Slides
Available in
days
days
after you enroll
- C21.01 - Agenda (0:41)
- C21.02 - Object Anatomy - Methods and Data Members (1:04)
- C21.03 - Hands-On - Declare An Object (2:25)
- C21.04 - Hands-On - Adding State And Behavior (3:52)
- C21.05 - Object Anatomy - Properties (0:53)
- C21.06 - Hands-On - Properties (7:32)
- C21.07 - Hands-On - Properties Vs. Data Members - Part 1 (0:29)
- C21.08 - Object Anatomy - Constructors (1:22)
- C21.09 - Object Anatomy - Static Constructors (0:49)
- C21.10 - Hands-On - Constructors (2:25)
- C21.11 - Object Anatomy - This Keyword (0:26)
- C21.12 - Hands-On - Multiple Constructors And This Keyword (2:29)
- C21.13 - Hands-On - Building Objects Using Multiple Constructors (2:57)
- C21.14 - Hands-On - Read Only Parameters Via Constructors (0:38)
- C21.15 - State And Behavior Of An Object (0:10)
- C21.16 - Hands-On - Changing State Based On Behavior (3:34)
- C21.17 - Hands-On - Conclusion (0:17)
- C21.18 - Object Anatomy - Destructors (0:31)
- C21.19 - OOP Principles Recap (0:23)
- C21.20 - Encapsulation (1:45)
- C21.21 - Access Modifiers (2:15)
- C21.22 - Encapsulation Example #1 Walking From Point A To Point B (1:20)
- C21.23 - Encapsulation Example #2 Car Engine Control (1:19)
- C21.24 - Why Not Use Public Everywhere (1:02)
- C21.25 - Hands On - Complexity Before Encapsulation (5:01)
- C21.26 - Hands On - Applying Encapsulation With Private And Public Access Modifiers (5:36)
- C21.27 - Hands On - Simplicity After Encapsulation (0:54)
- C21.28 - Hands On - Adding A Driver Object To Collaborate With Our Car (5:11)
- C21.29 - Hands On - Security Issues (3:09)
- C21.30 - Hands On - Data Members Vs. Properties Part 2 (1:15)
- C21.31 - Hands On - Internal Access Modifier (3:39)
- C21.32 - Encapsulation Conclusions (0:57)
- C21.33 - CRC Cards (1:42)
- C21.34 - How To Use CRC Cards (1:01)
- C21.35 - CRC Cards Templates (0:46)
- C21.36 - Hands-On - Create A Better Code Design Using CRC Cards (14:10)
- C21.37 - Homework
- C21.38 - Quiz
- C21.39 - Slides & Sources
Available in
days
days
after you enroll
- C22.01 - Agenda (0:12)
- C22.02 - OOP Principles Recap (0:21)
- C22.03 - Inheritance (0:45)
- C22.04 - Extension Example (1:39)
- C22.05 - Inheritance And Complexity (0:29)
- C22.06 - A Visual Example (0:27)
- C22.07 - A Practical Example (2:26)
- C22.08 - Congrats On Applying Inheritance (0:17)
- C22.09 - Other Inheritance Related Terms (0:35)
- C22.10 - Why Use Inheritance (0:51)
- C22.11 - Inheritance Vs Composition (1:38)
- C22.12 - Applying Inheritance in C# (1:09)
- C22.13 - Hands On - Creating A Base Class (5:52)
- C22.14 - Hands On - Inheriting A Class (2:41)
- C22.15 - Hands On - The Protected Access Modifier (2:23)
- C22.16 - Hands On - Extending The Derived Class (5:08)
- C22.17 - Hands On - Creating Another Derived Class (2:47)
- C22.18 - Hands On - Using The Derived Class (9:16)
- C22.19 - Hands On - Interchanging Derived Classes (1:09)
- C22.20 - Hands On - Extending The Base Class (1:02)
- C22.21 - Hands On - Testing Inheritance With The Is A Relationship (0:20)
- C22.22 - Hands On - Composition With Has A Relationship (7:22)
- C22.23 - Inheritance Conclusion (0:42)
- C22.24 - Polymorphism (1:46)
- C22.25 - Static Polymorphism (1:09)
- C22.26 - Dynamic Polymorphism (2:35)
- C22.27 - Overload Vs. Override Vs. Overwrite (0:51)
- C22.28 - Hands On - Preparing For Polymorphism (5:55)
- C22.29 - Hands On - Applying Static Polymorphism (8:59)
- C22.30 - Hands On - Simplify Code With Dynamic Polymorphism (9:19)
- C22.31 - Hands On - Recap (0:59)
- C22.32 - Hands On - Using The Base Class (0:32)
- C22.33 - Polymorphism Conclusion (1:00)
- C22.34 - Homework
- C22.35 - Quiz
- C22.36 - Slides & Sources
Available in
days
days
after you enroll
- C23.01 - Agenda (0:09)
- C23.02 - Introduction To Interfaces (2:30)
- C23.03 - More On Interfaces (5:07)
- C23.04 - Why Use Interfaces (0:36)
- C23.05 - How To Use Interfaces (4:08)
- C23.06 - Other Interface Examples (0:44)
- C23.07 - Interface Recap (2:49)
- C23.08 - Dynamic Polymorphism With Interfaces (1:43)
- C23.09 - Hands On - Dynamic Polymorphism With Interfaces (4:00)
- C23.10 - Hands On - Takeaways (0:57)
- C23.11 - Interfaces And Code Navigation (1:26)
- C23.12 - Abstract Classes (0:34)
- C23.13 - Why Use Abstract Classes (0:37)
- C23.14 - How To Use Abstract Classes (1:50)
- C23.15 - Hands On - Defining Abstract Classes (2:41)
- C23.16 - Hands On - Instantiating Abstract Classes (0:38)
- C23.17 - Hands On - Using Abstract Classes In Derived Classes (5:07)
- C23.18 - Interfaces Vs Abstract Classes (0:41)
- C23.19 - Hands On - Abstract Classes Recap (0:45)
- C23.20 - The Sealed Keyword (1:05)
- C23.21 - Hands On - The Sealed Keyword On Classes (0:41)
- C23.22 - Hands On - The Sealed Keyword On Methods (2:00)
- C23.23 - Hands On - The Sealed Keyword Recap (0:11)
- C23.24 - The New Keyword In A Method Context (1:50)
- C23.25 - Hands On - The New Keyword In A Method Context (2:23)
- C23.26 - Hands On - The Base Keyword (1:23)
- C23.27 - Hands On - The Var Keyword (1:55)
- C23.28 - Homework
- C23.29 - Quiz
- C23.30 - Slides & Sources
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- C29.01 - Introduction (0:11)
- C29.02 - Agenda (0:23)
- C29.03 - Streams (0:53)
- C29.04 - Why Use Streams (1:56)
- C29.05 - How To Use Streams (1:22)
- C29.06. - Other Stream Examples (0:38)
- C29.07. - Dispose (2:28)
- C29.08 - Hands On - StreamReader And Dispose (3:28)
- C29.09 - Syntactic Sugars (0:28)
- C29.10 - Syntactic Sugar Examples (2:56)
- C29.11 - Hands On - Using Syntactic Sugar (1:34)
- C29.12 - Exceptions (1:00)
- C29.13 - Exceptions As Objects (0:58)
- C29.14 - Why Use Exceptions (1:28)
- C29.15 - Using Exceptions (2:33)
- C29.16 - Exceptions Pitfalls (1:04)
- C29.17 - Hands On - Exceptions (3:49)
- C29.18 - Hands On - Custom Exceptions (2:14)
- C29.19 - Hands On - Understading Exceptions (2:14)
- C29.20 - When To Throw Exceptions (0:27)
- C29.21 - When Not To Throw Exceptions (1:05)
- C29.22 - Exception Handling (0:55)
- C29.23 - Exception Handling Example (1:16)
- C29.24 - Exception Handling Example With Finally (1:34)
- C29.25 - Try Catch Block Frequency (0:33)
- C29.26 - Hands On - Exception Handling (4:16)
- C29.27 - Hands On - Mixing It Up (1:51)
- C29.28 - Hands On - Handling Errors At Different Levels (1:58)
- C29.29 - Hands On - Don't Rely On Exceptions For Your Flows (0:31)
- C29.30 - Handling Multiple Exceptions (1:43)
- C29.31 - Unhandled Exceptions Ripple To Crash Your Program (0:27)
- C29.32 - Hands On - Handling Multiple Exceptions (3:09)
- C29.33 - Hands On - Unhandled Exceptions Ripple To Crash Your Program (1:12)
- C29.34 - Hands On - Handling All Exceptions In A Generic Way (1:53)
- C29.35 - Catch And Rethrow (0:46)
- C29.36 - Hands On - Catch And Rethrow Same Exception (2:10)
- C29.37 - Hands On - Keeping Your Code Readable (0:26)
- C29.38 - Hands On - Catch And Throw Another Exception (2:52)
- C29.39 - Hands On - Finally Block (1:57)
- C29.40 - Hands On - Using Syntactic Sugar Enhanced (2:17)
- C29.41 - Error Handling Pitfalls (2:52)
- C29.42 - Homework
- C29.43 - Quiz
- C29.44 - Slides & Sources
Available in
days
days
after you enroll
- C30.01 - Introduction (2:57)
- C30.02 - Agebda (0:07)
- C30.03 - What Are Unit Tests (1:32)
- C30.04 - Unit Test States (2:08)
- C30.05 - How To Start Writing Unit Tests (1:36)
- C30.06 - Naming Convention - AAA Pattern (4:34)
- C30.07 - Why Use Unit Tests (6:17)
- C30.08 - Good Unit Tests (3:18)
- C30.09 - Adding Unit Tests To Your Project (2:04)
- C30.10 - Guidelines (4:23)
- C30.11 - Hands-On - Creating the SUT (5:49)
- C30.12 - Hands-On - Creating the Unit Tests (11:20)
- C30.13 - Hands-On - Refactoring And Special Methods (7:28)
- C30.14 - Manual Testing (0:51)
- C30.15 - What Are Integration Tests (2:26)
- C30.16 - Unit Tests vs Integration Tests (1:04)
- C30.17 - Hands-On - Creating the SUT (17:25)
- C30.18 - Hands-On - Creating the Integration Tests (6:35)
- C30.19 - Hands-On - Time Execution Comparision Between Unit And Integration Tests (0:30)
- C30.20 - Hands-On - Refactoring (1:47)
- C30.21 - Hands-On - Further Improvements (0:17)
- C30.22 - Counter Examples From My Experience (2:32)
- C30.23 - How Many Tests To Write (1:28)
- C30.24 - Conclusion (1:20)
- C30.25 - Homework
- C30.26 - Quiz
- C30.27 - Slides And Sources
Available in
days
days
after you enroll
- C31.01 - Agenda (0:17)
- C31.02 - NuGet (4:00)
- C31.03 - Hands On - NuGet Add Library (1:43)
- C31.04 - Hands On - NuGet Packages (0:32)
- C31.05 - Hands On - NuGet Uninstall (0:39)
- C31.06 - Hands On - NuGet On Business Logic Project Not Just Unit Tests (0:35)
- C31.07 - Mock Scenario (0:52)
- C31.08 - Mocks (0:39)
- C31.09 - Why Use Mocks (3:11)
- C31.10 - How To Use Mocks (4:30)
- C31.11 - Hands On - Creating The Interface Of Interest (1:20)
- C31.12 - Hands On - Adding A Context Project (5:36)
- C31.13 - Hands On - Adding The Moq Library Via NuGet (0:42)
- C31.14 - Hands On - Adding Your First Mock To Your Unit Test (10:10)
- C31.15 - Hands On - Adding More Tests With Mocks (4:00)
- C31.16 - Hands On - Refactoring (4:03)
- C31.17 - Test Driven Development Or TDD (1:09)
- C31.18 - TDD Steps (1:44)
- C31.19 - TDD Guidelines (3:05)
- C31.20 - TDD Coding Events (1:14)
- C31.21 - Hands On Session - TDD Katas (0:29)
- C31.22 - Hands On - TDD Kata - Part 1 (19:43)
- C31.23 - Hands On - TDD Kata - Part 2 (21:42)
- C31.24 - TDD Conclusion (0:11)
- C31.25 - Homework
- C31.26 - Quiz
- C31.27 - Slides And Sources
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- C34.01 - Agenda (0:13)
- C34.02 - Configurations (4:31)
- C34.03 - XML Format (2:33)
- C34.04 - XML Elements (1:51)
- C34.05 - XML Root Element (0:34)
- C34.06 - XML Declaration (0:27)
- C34.07 - More XML Details (1:58)
- C34.08 - App Config (0:59)
- C34.09 - Web Config (0:15)
- C34.10 - JSON Format (0:31)
- C34.11 - JSON Examples (1:11)
- C34.12 - JSON Vs XML (1:06)
- C34.13 - Hands On - Configurations (7:35)
- C34.14 - Serialization And Deserialization (0:47)
- C34.15 - Serialization And Deserialization Examples (1:22)
- C34.16 - Hands On - Serialization And Deserialization (5:09)
- C34.17 - Intro To Design Patterns (1:59)
- C34.18 - Design Patterns Recommendations (1:32)
- C34.19 - Repository Pattern (2:01)
- C34.20 - Repository Pattern Code Sample (3:03)
- C34.21 - Repository Pattern Conclusion (0:16)
- C34.22 - Singleton (Anti)Pattern (3:04)
- C34.23 - Homework
- C34.24 - Quiz
- C34.25 - Slides And Sources
Available in
days
days
after you enroll
- C35.01 - Agenda (0:21)
- C35.02 - About Software Estimates (0:53)
- C35.03 - Estimates Vs Targets Vs Commitments (2:01)
- C35.04 - Estimates Are Probabilities (1:48)
- C35.05 - Definition Of Estimates (1:10)
- C35.06 - Check Your Estimation Skills (2:34)
- C35.07 - Underestimate Vs Overestimate (0:53)
- C35.08 - Cone Of Uncertainty (2:00)
- C35.09 - Estimation Techniques (7:10)
- C35.10 - Which Estimation Technique To Use (1:45)
- C35.11 - Things Usually Left Out Of Estimates (0:35)
- C35.12 - Presenting An Estimate (4:55)
- C35.13 - Improving Your Estimation Skills (1:04)
- C35.14 - Google Like A Pro (2:21)
- C35.15 - Soft Skills And Why Use Them (1:43)
- C35.16 - Soft Skills Vs Hard Skills Vs Tech Skills (0:44)
- C35.17 - How To Use Soft Skills (0:47)
- C35.18 - Some Examples Of Soft Skills (1:10)
- C35.19 - Soft Skills Recommendations (2:03)
- C35.20 - Homework
- C35.21 - Quiz
- C35.22 - Slides
Available in
days
days
after you enroll
- C36.01 - Agenda (0:13)
- C36.02 - Clean Code (2:25)
- C36.03 - Code Smells - Comments (0:43)
- C36.04 - Code Smells - Methods (2:43)
- C36.05 - Code Smells - Loops (0:48)
- C36.06 - Code Smells - Classes (2:21)
- C36.07 - Code Smells - Design (1:20)
- C36.08 - Code Smells - Generic (3:59)
- C36.09 - Principles - Separation of Concerns (0:46)
- C36.10 - Principles - Cohesion (0:53)
- C36.11 - Principles - Coupling (1:47)
- C36.12 - Principles - DRY (0:28)
- C36.13 - Principles - KISS (1:55)
- C36.14 - Principles - YAGNI (0:40)
- C36.15 - Clean Code Book Recommendations (0:56)
- C36.16 - Way Forward (4:48)
- C36.17 - Conclusion (1:01)
- C36.18 - Live Session (0:08)
- C36.19 - Homework (0:29)
- C36.20 - Quiz
- C36.21 - Slides
Accessing the Course
All details regarding how to access the course are available on
https://www.sw-foundations.com/basic-programming-course