The Software Designer Mindset
Focused View
13:15:52
177 View
01 - Welcome.mp4
03:31
01 - VS Code Extensions.mp4
04:03
02 - Vim Editor Plugin.mp4
02:44
03 - AI Tools And Autoformatting.mp4
02:26
04 - VS Code And Pylint Settings.mp4
04:37
05 - Pyenv.mp4
03:16
settings.zip
01 - Static Vs. Dynamic Typing.mp4
04:20
02 - Strong Vs. Weak Typing.mp4
02:50
03 - Type Hints.mp4
02:13
04 - Callables.mp4
03:18
05 - Types Are A Tool For Developers.mp4
02:11
06 - Nominal Vs. Structural Typing.mp4
04:57
07 - Three Trade-offs With Type Hints.mp4
03:04
08 - Quiz.pdf
01 - Introduction And Numeric Data Types.mp4
04:56
02 - Lists.mp4
05:21
03 - Dictionaries.mp4
03:03
04 - Strings.mp4
04:21
05 - Formatted Strings.mp4
02:41
06 - Enums.mp4
02:48
07 - Tuples.mp4
02:44
07 - tuples.zip
08 - Final Thoughts.mp4
01:55
09 - data structures solution sheet.pdf
10 - cheatsheet.pdf
01 - Introduction.mp4
03:27
02 - What Is A Class.mp4
02:31
03 - Data Classes.mp4
04:59
04 - Object Initialization.mp4
04:53
05 - Advanced Object Initialization.mp4
03:14
06 - Read-Only Objects.mp4
01:21
07 - Final Thoughts.mp4
02:53
dataclasses example.zip
01-Introduction.mp4
01:47
02-Pure Functions And Side Effects.mp4
03:27
03-Callables.mp4
03:33
04-Higher-Order Functions.mp4
05:18
05-Closures And Partial Function Application.mp4
05:59
06-Grouping Functions.mp4
04:15
07-Classes Vs. Functions.mp4
02:28
Exercises.txt
functions example.zip
01 - Introduction.mp4
05:35
02 - Abstract Base Classes.mp4
06:44
03 - Protocols.mp4
04:08
04 - Interface Segregation Using Protocols.mp4
04:43
05 - Differences Between Protocol And ABC.mp4
01:56
06 - When To Use Which One.mp4
02:05
07 - Final Thoughts.mp4
02:20
abc protocol code examples.zip
- 01 - Favor Composition Over Inheritance
- 01 - Why You Need To Be Careful With Inheritance.mp403:10
- 02 - First Attempt Using Inheritance.mp404:06
- 03 - Second Attempt Using Composition.mp404:07
- 04 - A More Generic Solution With Abstraction.mp406:50
- 05 - Analysis Of What Weve Done.mp401:53
- 06 - Exercise Apply Composition To The Vehicle Example.mp405:46
- 07 - Final Thoughts.mp401:52
- car example.zip
- employee example.zip
- exercise.zip
- 02 - High Cohesion
- 01 - What Is Cohesion.mp401:32
- 02 - Increasing Order Cohesion.mp402:48
- 03 - Increasing Payment Processor Cohesion.mp403:28
- 04 - Organising Vehicle Data.mp405:07
- 05 - Increasing The Main Function Cohesion.mp402:52
- 06 - Cohesion And Single Responsibility.mp402:44
- cohesion code examples.zip
- 03 - Low Coupling
- 01 - What Is Coupling.mp401:39
- 02 - Different Types Of Coupling.mp404:56
- 03 - The Law Of Demeter.mp404:22
- 04 - Exercise Reduce Coupling In The Vehicle Example.mp407:18
- 05 - Final Thoughts.mp401:25
- 06 - design principles 1 solution sheet.pdf
- 04 - Start With The Data
- 01 - Introduction.mp403:15
- 02 - Analysis Of The Example.mp403:11
- 03 - Improving The Rental Contract Structure.mp402:13
- 04 - Remove Coupling From The Main Function.mp402:26
- 05 - Improving Object Communication.mp404:35
- 06 - Exercise- Apply This Technique Yourself.mp406:25
- exercise 2.zip
- order example 2.zip
- 05 - Depend On Abstractions
- 01 - Introduction And Analysis.mp404:09
- 02 - Abstracting The Authorizer Functions.mp405:01
- 03 - Abstracting The Order Class.mp405:00
- 04 - Abstracting The Payment Processor.mp407:01
- 05 - Final Thoughts.mp406:07
- order example 2.zip
- 06 - Separate Creation From Use
- 01 - Introduction.mp401:32
- 02 - Analysis Of The Example.mp402:21
- 03 - The Factory Pattern.mp402:21
- 04 - Using The Factory Pattern.mp405:13
- 05 - Another Creation Example.mp402:56
- 06 - Taking Control Over Creation.mp404:13
- 07 - Final Thoughts And The Open-Closed Principle.mp403:17
- factory example.zip
- pos example.zip
- 07 - Keep Things Simple
- 01 - Introduction.mp401:35
- 02 - DRY - Dont Repeat Yourself.mp408:27
- 03 - KISS - Keep It Stupidly Simple.mp406:26
- 04 - YAGNI - You Aint Gonna Need It.mp402:40
- 05 - Final Thoughts.mp402:38
- 06 - design principles 2 solution sheet.pdf
- code examples.zip
- 01 - Mixins
- 01 - What Is A Mixin.mp401:41
- 02 - Why You Need To Be Careful With Mixins.mp402:22
- 03 - Conventions And Restrictions.mp402:42
- 04 - Why I Dont Recommend Using Mixins.mp403:17
- 05 - Final Thoughts.mp401:45
- example.zip
- 02 - Dealing With Errors
- 01 - Introduction.mp402:01
- 02 - Basic Error Handling.mp403:07
- 03 - Dealing With Multiple Exceptions.mp401:28
- 04 - The Finally Block.mp401:16
- 05 - Context Managers.mp403:08
- 06 - Tips And Caveats.mp403:47
- error example.zip
- 03 - Setting Up A Complex Software Project
- 01 - Introduction.mp402:02
- 02 - Project Files.mp403:16
- 03 - Project Folders.mp402:31
- 04 - Modules And Packages.mp401:53
- 05 - Absolute Vs Relative Imports.mp403:13
- 06 - Multiple Packages.mp403:01
- 07 - Import Tips.mp402:24
- 08 - Organising Your Code.mp403:31
- 09 - Architecture As Structure.mp401:12
- 10 - Security Tips.mp402:14
- project example.zip
- 04 - Course Wrap Up
- 01 - Wrapping Things Up.mp401:39
- Resources.txt
01 - Domain Modelling And Levels Of Software Design.mp4
12:10
02 - History of Computing, Data Vs Processing.mp4
40:41
03 - Mixins And Composition.mp4
47:47
04 - How To Do Great Code Reviews.mp4
01:16:06
05 - A Code Review Of Python Fire.mp4
01:00:25
06 - Being A Developer At A Startup.mp3
01 - May 2022.mp4
28:58
- 01 - Case Study Developing An API
- 01 - Why Understanding The Domain Is Important.mp402:16
- 02 - Modelling The Domain.mp405:15
- hotel db.zip
- 01 - Introduction And Domain Model
- 02 - Scaffolding Of The Project
- 01 - What Is An API-.mp403:20
- 02 - Creating An API Server.mp401:57
- 03 - Setting Up The Database Models.mp406:08
- 04 - Relationships Between Models.mp402:24
- 05 - Creating The Database System.mp402:59
- 06 - Patching Everything Up.mp401:50
- 03 - The Layered Architecture
- 01 - Why Scaffolding Is Useful.mp401:44
- 02 - What Is The Layered Architecture-.mp402:12
- 03 - Creating A Layered Architecture.mp404:54
- 04 - Analysis.mp403:06
- 04 - Completing The API
- 01 - Developing A Basic Customer API.mp402:34
- 02 - Creating A New Customer.mp404:08
- 03 - Converting Database Query Results.mp402:49
- 04 - Updating An Existing Customer.mp403:06
- 05 - Adding Booking Operations.mp404:54
- 06 - Adding The Booking Router.mp403:07
- 07 - Analysis.mp401:16
- hotel example v1.zip
- 05 - Designing A Testable API
- 01 - Introduction.mp401:44
- 02 - Creating An Abstract Data Interface.mp404:11
- 03 - Database Implementation.mp404:51
- 04 - Updating The Booking Operation.mp404:12
- 05 - Updating The Booking Router.mp402:09
- 06 - Writing Unit Tests.mp407:11
- 07 - Final Thoughts.mp402:45
- 08 - Challenge.txt
- hotel example v2.zip
- 06 - Design Wins
- 01 - Avoid Type Abuse.mp402:59
- 02 - Use Built-In Constructs.mp401:50
- 03 - Use Clear Names.mp401:43
- 04 - Avoid Flags.mp402:32
- 05 - Dont Use Too Many Arguments.mp405:29
- 06 - Use Shallow Nesting.mp402:32
- 07 - Avoid Deeply Nested Conditionals.mp403:04
- 08 - No Wildcard Imports.mp402:30
- 09 - Write Symmetrical Code.mp403:23
- 10 - Only Use Self If Needed.mp402:34
- 11 - Keep Classes Small.mp404:58
- 12 - Tell Dont Ask.mp403:10
- 13 - Use Meaningful Instance Variables.mp405:10
- 14 - Avoid Redundancy.mp403:19
- 15 - Dont Redefine Programming Concepts.mp404:43
- 16 - BONUS #1- Protocol Segregation.mp401:52
- 17 - BONUS #2- Function Composition.mp401:58
- asymmetry example.zip
- avoid redundancy example.zip
- built in example.zip
- clear names example.zip
- flags example.zip
- function composition example.zip
- keep classes small example.zip
- many arguments.zip
- meaningful instance vars example.zip
- nested conditionals example.zip
- no self example.zip
- protocol segregation example.zip
- redefining concepts example.zip
- shallow nesting example.zip
- tell dont ask.zip
- type abuse example.zip
- wildcard imports example.zip
- 07 - Resources
- all code extension.zip
More details
User Reviews
Rating
average 0
Focused display

ArjanCodes
View courses ArjanCodesA software developer and educator with a passion for building beautiful, efficient, and reliable software. I've been passionate about programming and computer science since I was a kid.
I've completed a Master's and PhD in Computer Science and I have more than 20 years of teaching experience.
I've launched several startups and designed and built complex software products from scratch.
- language english
- Training sessions 155
- duration 13:15:52
- Release Date 2023/05/23