---
title: "Roy Osherove Courses"
url: "https://courses.osherove.com/index.md"
canonical: "https://courses.osherove.com/"
tags: []
author: "Roy Osherove"
description: "Roy Osherove's classic video courses on unit testing, TDD, legacy code and Vim, free for everyone. Watch every lesson on YouTube."
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Roy Osherove Courses

> A free archive of Roy Osherove's classic courses, which he used to teach live: 6 courses with 99 video lessons on unit testing, TDD, legacy code and Vim. Every lesson is a YouTube video.

HTML: https://courses.osherove.com/ · Guide for AI systems: [llms.txt](https://courses.osherove.com/llms.txt) · Full text: [llms-full.txt](https://courses.osherove.com/llms-full.txt)

## On the home page

Free video courses by Roy Osherove

Roy Osherove's classic courses on unit testing, TDD, legacy code and more, free for everyone.

- **6** courses
- **99** lessons
- **36 h 30 min** of video

#### Courses

Every lesson plays here or on YouTube.

- ![](https://courses.osherove.com/img/yt/WWZR6vq6BvU.jpg)

    ### [The Art of Unit Testing & TDD Master Class in .NET](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/)

    14 lessons 9 h 6 min 5 sections

- ![](https://courses.osherove.com/img/yt/jLDdx00oDU4.jpg)

    ### [The Art of Unit Testing and TDD in Java](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/)

    21 lessons 3 h 38 min 3 sections

- ![](https://courses.osherove.com/img/yt/8riX4rG7Idc.jpg)

    ### [TDD Pairing Sessions - Building a Go Game](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/)

    11 lessons 10 h 50 min

- ![](https://courses.osherove.com/img/yt/gtRXDuLj8uc.jpg)

    ### [TDD in .NET in Hebrew](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/)

    22 lessons 7 h 44 min 5 sections

    Spoken in Hebrew

- ![](https://courses.osherove.com/img/yt/XCS-9_kC6Kw.jpg)

    ### [Legacy Code Hero](https://courses.osherove.com/courses/legacy-code-hero/)

    5 lessons 2 h 56 min 2 sections

- ![](https://courses.osherove.com/img/yt/8vwMvLf0bPI.jpg)

    ### [Vim Hates You](https://courses.osherove.com/courses/vim-hates-you/)

    26 lessons 2 h 16 min 5 sections

## Pages

- [About](https://courses.osherove.com/about.md): About Roy Osherove Courses: Roy Osherove's classic courses, which he used to teach live, now free for everyone on YouTube.
- [Privacy](https://courses.osherove.com/privacy.md): Privacy on Roy Osherove Courses: what Google Analytics and Cloudflare Web Analytics collect, how to opt out, and no ads.

## The Art of Unit Testing & TDD Master Class in .NET

- [The Art of Unit Testing & TDD Master Class in .NET](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net.md): The Art of Unit Testing & TDD Master Class in .NET: 14 lessons, 9 h 6 min. A free video course by Roy Osherove.
- [Unit Testing And TDD 101](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/unit-testing-and-tdd-101.md): Lesson 1 of 14 in The Art of Unit Testing & TDD Master Class in .NET (The Basics), 1:55:52. Free video by Roy Osherove.
- [Test Driving a String Calculator](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/test-driving-a-string-calculator.md): Lesson 2 of 14 in The Art of Unit Testing & TDD Master Class in .NET (The Basics), 27:29. Free video by Roy Osherove.
- [Test Driving a Console Application Using String Calculator](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/test-driving-a-console-application-using-string-calculator.md): Lesson 3 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Fakes, Mocks and Stubs), 16:54. Free video by Roy Osherove.
- [Introduction to Hand Written Fakes, Mocks and Stubs](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/introduction-to-hand-written-fakes-mocks-and-stubs.md): Lesson 4 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Fakes, Mocks and Stubs), 7:18. Free video by Roy Osherove.
- [Isolation Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/isolation-frameworks.md): Lesson 5 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Fakes, Mocks and Stubs), 1:01:27. Free video by Roy Osherove.
- [Test Review Practices](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/test-review-practices.md): Lesson 6 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Test Review Insights), 1:00:31. Free video by Roy Osherove.
- [NerdDinner Test Review](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/nerddinner-test-review.md): Lesson 7 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Test Review Insights), 27:17. Free video by Roy Osherove.
- [Unity Test Review](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/unity-test-review.md): Lesson 8 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Test Review Insights), 25:37. Free video by Roy Osherove.
- [Using Extract & Override](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/using-extract-and-override.md): Lesson 9 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Legacy Code), 21:33. Free video by Roy Osherove.
- [Static Forwarding on a real legacy app](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/static-forwarding-on-a-real-legacy-app.md): Lesson 10 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Legacy Code), 13:44. Free video by Roy Osherove.
- [Testing Legacy Code with Typemock Isolator Deep Dive](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/testing-legacy-code-with-typemock-isolator-deep-dive.md): Lesson 11 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Legacy Code), 20:08. Free video by Roy Osherove.
- [Code Excavations and Domain Specific Test Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/code-excavations-and-domain-specific-test-frameworks.md): Lesson 12 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Bonus tracks on advanced patterns), 54:14. Free video by Roy Osherove.
- [Testing Complex Validation Knowledge using Extract & Override](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/testing-complex-validation-knowledge-using-extract-and-override.md): Lesson 13 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Bonus tracks on advanced patterns), 43:35. Free video by Roy Osherove.
- [Mocking On The Edge](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-master-class-in-net/mocking-on-the-edge.md): Lesson 14 of 14 in The Art of Unit Testing & TDD Master Class in .NET (Bonus tracks on advanced patterns), 49:54. Free video by Roy Osherove.

## The Art of Unit Testing and TDD in Java

- [The Art of Unit Testing and TDD in Java](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java.md): The Art of Unit Testing and TDD in Java: 21 lessons, 3 h 38 min. A free video course by Roy Osherove.
- [Introduction to Unit Testing Ideas](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/introduction-to-unit-testing-ideas.md): Lesson 1 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 28:25. Free video by Roy Osherove.
- [Introduction to JUnit](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/introduction-to-junit.md): Lesson 2 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 13:48. Free video by Roy Osherove.
- [Unit Testing Demo](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/unit-testing-demo.md): Lesson 3 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 7:30. Free video by Roy Osherove.
- [Introducing TDD](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/introducing-tdd.md): Lesson 4 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 12:53. Free video by Roy Osherove.
- [Simplicity is Complicated](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/simplicity-is-complicated.md): Lesson 5 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 11:37. Free video by Roy Osherove.
- [Common TDD Questions and Answers](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/common-tdd-questions-and-answers.md): Lesson 6 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 5:49. Free video by Roy Osherove.
- [Some Numbers](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/some-numbers.md): Lesson 7 of 21 in The Art of Unit Testing and TDD in Java (Day 1), 5:37. Free video by Roy Osherove.
- [Introduction to Mocks and Stubs](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/introduction-to-mocks-and-stubs.md): Lesson 8 of 21 in The Art of Unit Testing and TDD in Java (Day 2), 10:30. Free video by Roy Osherove.
- [Demo - Mock Objects](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/demo-mock-objects.md): Lesson 9 of 21 in The Art of Unit Testing and TDD in Java (Day 2), 9:17. Free video by Roy Osherove.
- [Terminology](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/terminology.md): Lesson 10 of 21 in The Art of Unit Testing and TDD in Java (Day 2), 0:56. Free video by Roy Osherove.
- [Mocks And Stubs](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/mocks-and-stubs.md): Lesson 11 of 21 in The Art of Unit Testing and TDD in Java (Day 2), 8:43. Free video by Roy Osherove.
- [Isolation (Mocking) Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/isolation-mocking-frameworks.md): Lesson 12 of 21 in The Art of Unit Testing and TDD in Java (Day 2), 19:53. Free video by Roy Osherove.
- [Capturing Mock Arguments](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/capturing-mock-arguments.md): Lesson 13 of 21 in The Art of Unit Testing and TDD in Java (Day 2), 4:36. Free video by Roy Osherove.
- [Extract And Override Refactoring](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/extract-and-override-refactoring.md): Lesson 14 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 13:35. Free video by Roy Osherove.
- [Faking Time](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/faking-time.md): Lesson 15 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 5:46. Free video by Roy Osherove.
- [Faking Futures](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/faking-futures.md): Lesson 16 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 2:41. Free video by Roy Osherove.
- [Unconstrained Isolation Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/unconstrained-isolation-frameworks.md): Lesson 17 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 9:50. Free video by Roy Osherove.
- [Throw Errors with Powermock](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/throw-errors-with-powermock.md): Lesson 18 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 1:21. Free video by Roy Osherove.
- [Discussion About Pros and Cons of Unconstrained Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/discussion-about-pros-and-cons-of-unconstrained-frameworks.md): Lesson 19 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 2:14. Free video by Roy Osherove.
- [Continuous Delivery](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/continuous-delivery.md): Lesson 20 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 42:33. Free video by Roy Osherove.
- [Summary](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/summary.md): Lesson 21 of 21 in The Art of Unit Testing and TDD in Java (Day 3), 0:35. Free video by Roy Osherove.

## TDD Pairing Sessions - Building a Go Game

- [TDD Pairing Sessions - Building a Go Game](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game.md): TDD Pairing Sessions - Building a Go Game: 11 lessons, 10 h 50 min. A free video course by Roy Osherove.
- [Understanding the Problem](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/understanding-the-problem.md): Lesson 1 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 1:53:39. Free video by Roy Osherove.
- [Mapping Moves](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/mapping-moves.md): Lesson 2 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 30:05. Free video by Roy Osherove.
- [Stoned and Board](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/stoned-and-board.md): Lesson 3 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 30:14. Free video by Roy Osherove.
- [Colors and Winners](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/colors-and-winners.md): Lesson 4 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 48:10. Free video by Roy Osherove.
- [Finding a Winner](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/finding-a-winner.md): Lesson 5 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 1:01:59. Free video by Roy Osherove.
- [Total Noob Fail](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/total-noob-fail.md): Lesson 6 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 1:26:57. Free video by Roy Osherove.
- [A DSL for our Tests](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/a-dsl-for-our-tests.md): Lesson 7 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 55:07. Free video by Roy Osherove.
- [A Refactoring Dillemma](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/a-refactoring-dillemma.md): Lesson 8 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 43:47. Free video by Roy Osherove.
- [Debugging Excursions](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/debugging-excursions.md): Lesson 9 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 51:29. Free video by Roy Osherove.
- [The Big Refactor](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/the-big-refactor.md): Lesson 10 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 1:28:13. Free video by Roy Osherove.
- [New Features](https://courses.osherove.com/courses/tdd-pairing-sessions-building-a-go-game/new-features.md): Lesson 11 of 11 in TDD Pairing Sessions - Building a Go Game (The Sessions), 40:06. Free video by Roy Osherove.

## TDD in .NET in Hebrew

- [TDD in .NET in Hebrew](https://courses.osherove.com/courses/tdd-in-net-in-hebrew.md): TDD in .NET in Hebrew: 22 lessons, 7 h 44 min. A free video course by Roy Osherove.
- [Introduction](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/introduction.md): Lesson 1 of 22 in TDD in .NET in Hebrew (Day1 - Unit Testing and TDD 101), 33:07. Free video by Roy Osherove.
- [Syntax](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/syntax.md): Lesson 2 of 22 in TDD in .NET in Hebrew (Day1 - Unit Testing and TDD 101), 29:43. Free video by Roy Osherove.
- [Test Demo](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/test-demo.md): Lesson 3 of 22 in TDD in .NET in Hebrew (Day1 - Unit Testing and TDD 101), 34:54. Free video by Roy Osherove.
- [Test Cases, String Asserts and more](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/test-cases-string-asserts-and-more.md): Lesson 4 of 22 in TDD in .NET in Hebrew (Day1 - Unit Testing and TDD 101), 34:49. Free video by Roy Osherove.
- [TDD Demo](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/tdd-demo.md): Lesson 5 of 22 in TDD in .NET in Hebrew (Day1 - Unit Testing and TDD 101), 19:26. Free video by Roy Osherove.
- [Summary Day 1](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/summary-day-1.md): Lesson 6 of 22 in TDD in .NET in Hebrew (Day1 - Unit Testing and TDD 101), 8:45. Free video by Roy Osherove.
- [TDD Q & A](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/tdd-q-and-a.md): Lesson 7 of 22 in TDD in .NET in Hebrew (Day 2 - Mock Objects and TDD), 35:14. Free video by Roy Osherove.
- [Mocks and Stubs](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/mocks-and-stubs.md): Lesson 8 of 22 in TDD in .NET in Hebrew (Day 2 - Mock Objects and TDD), 24:52. Free video by Roy Osherove.
- [Isolation Frameworks](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/isolation-frameworks.md): Lesson 9 of 22 in TDD in .NET in Hebrew (Day 2 - Mock Objects and TDD), 34:31. Free video by Roy Osherove.
- [Advanced Mocks and Stubs](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/advanced-mocks-and-stubs.md): Lesson 10 of 22 in TDD in .NET in Hebrew (Day 2 - Mock Objects and TDD), 12:50. Free video by Roy Osherove.
- [Recursive Fakes](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/recursive-fakes.md): Lesson 11 of 22 in TDD in .NET in Hebrew (Day 2 - Mock Objects and TDD), 3:10. Free video by Roy Osherove.
- [Legacy Refactoring intro](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/legacy-refactoring-intro.md): Lesson 12 of 22 in TDD in .NET in Hebrew (Day 2 - Legacy Code Tools), 16:23. Free video by Roy Osherove.
- [Controlling Time](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/controlling-time.md): Lesson 13 of 22 in TDD in .NET in Hebrew (Day 2 - Legacy Code Tools), 6:44. Free video by Roy Osherove.
- [Working with Typemock Isolator](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/working-with-typemock-isolator.md): Lesson 14 of 22 in TDD in .NET in Hebrew (Day 2 - Legacy Code Tools), 26:41. Free video by Roy Osherove.
- [Day 2 Summary](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/day-2-summary.md): Lesson 15 of 22 in TDD in .NET in Hebrew (Day 2 - Legacy Code Tools), 2:23. Free video by Roy Osherove.
- [Unit Testing Best Practices](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/unit-testing-best-practices.md): Lesson 16 of 22 in TDD in .NET in Hebrew (Day 3 - Unit Testing Practices), 35:00. Free video by Roy Osherove.
- [Best Practices Continued](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/best-practices-continued.md): Lesson 17 of 22 in TDD in .NET in Hebrew (Day 3 - Unit Testing Practices), 25:20. Free video by Roy Osherove.
- [Maintainability Practices](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/maintainability-practices.md): Lesson 18 of 22 in TDD in .NET in Hebrew (Day 3 - Unit Testing Practices), 34:43. Free video by Roy Osherove.
- [Readability Practices](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/readability-practices.md): Lesson 19 of 22 in TDD in .NET in Hebrew (Day 3 - Unit Testing Practices), 1:23. Free video by Roy Osherove.
- [Legacy BlogEngine Project Overview](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/legacy-blogengine-project-overview.md): Lesson 20 of 22 in TDD in .NET in Hebrew (Day 3 - Legacy Code), 8:02. Free video by Roy Osherove.
- [Refactoring- Introduce Instance Delegator](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/refactoring-introduce-instance-delegator.md): Lesson 21 of 22 in TDD in .NET in Hebrew (Day 3 - Legacy Code), 17:36. Free video by Roy Osherove.
- [Summary and Discussion Day 3](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/summary-and-discussion-day-3.md): Lesson 22 of 22 in TDD in .NET in Hebrew (Day 3 - Legacy Code), 18:48. Free video by Roy Osherove.

## Legacy Code Hero

- [Legacy Code Hero](https://courses.osherove.com/courses/legacy-code-hero.md): Legacy Code Hero: 5 lessons, 2 h 56 min. A free video course by Roy Osherove.
- [Where Do You Start with Legacy Code?](https://courses.osherove.com/courses/legacy-code-hero/where-do-you-start-with-legacy-code.md): Lesson 1 of 5 in Legacy Code Hero (Starting Out), 50:03. Free video by Roy Osherove.
- [Refactoring Hardcore Skills](https://courses.osherove.com/courses/legacy-code-hero/refactoring-hardcore-skills.md): Lesson 2 of 5 in Legacy Code Hero (Refactoring), 46:58. Free video by Roy Osherove.
- [Instance Delegator Focus](https://courses.osherove.com/courses/legacy-code-hero/instance-delegator-focus.md): Lesson 3 of 5 in Legacy Code Hero (Refactoring), 13:44. Free video by Roy Osherove.
- [Extract And Override Focus](https://courses.osherove.com/courses/legacy-code-hero/extract-and-override-focus.md): Lesson 4 of 5 in Legacy Code Hero (Refactoring), 21:17. Free video by Roy Osherove.
- [Extract And Override With Validation Logic](https://courses.osherove.com/courses/legacy-code-hero/extract-and-override-with-validation-logic.md): Lesson 5 of 5 in Legacy Code Hero (Refactoring), 43:35. Free video by Roy Osherove.

## Vim Hates You

- [Vim Hates You](https://courses.osherove.com/courses/vim-hates-you.md): Vim Hates You: 26 lessons, 2 h 16 min. A free video course by Roy Osherove.
- [Why Vim?](https://courses.osherove.com/courses/vim-hates-you/why-vim.md): Lesson 1 of 26 in Vim Hates You (Get some context), 8:46. Free video by Roy Osherove.
- [Vim file open save, load, moving, changing and selecting text](https://courses.osherove.com/courses/vim-hates-you/vim-file-open-save-load-moving-changing-and-selecting-text.md): Lesson 2 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 7:04. Free video by Roy Osherove.
- [Copying, Pasting and Yanking in Vim](https://courses.osherove.com/courses/vim-hates-you/copying-pasting-and-yanking-in-vim.md): Lesson 3 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 3:30. Free video by Roy Osherove.
- [Syntax Highlighting and Numbering in .vimrc file](https://courses.osherove.com/courses/vim-hates-you/syntax-highlighting-and-numbering-in-vimrc-file.md): Lesson 4 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 2:41. Free video by Roy Osherove.
- [Basic Searching inside a file in VIM](https://courses.osherove.com/courses/vim-hates-you/basic-searching-inside-a-file-in-vim.md): Lesson 5 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 2:42. Free video by Roy Osherove.
- [Indentation](https://courses.osherove.com/courses/vim-hates-you/indentation.md): Lesson 6 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 3:31. Free video by Roy Osherove.
- [Understanding Vim Modes and Block Selection Magic](https://courses.osherove.com/courses/vim-hates-you/understanding-vim-modes-and-block-selection-magic.md): Lesson 7 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 6:13. Free video by Roy Osherove.
- [Color Schemes](https://courses.osherove.com/courses/vim-hates-you/color-schemes.md): Lesson 8 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 6:20. Free video by Roy Osherove.
- [Basic Search and Replace in a file](https://courses.osherove.com/courses/vim-hates-you/basic-search-and-replace-in-a-file.md): Lesson 9 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 4:41. Free video by Roy Osherove.
- [Search and Replace with Regex](https://courses.osherove.com/courses/vim-hates-you/search-and-replace-with-regex.md): Lesson 10 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 3:20. Free video by Roy Osherove.
- [Useful Vim Commands Reference](https://courses.osherove.com/courses/vim-hates-you/useful-vim-commands-reference.md): Lesson 11 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 18:06. Free video by Roy Osherove.
- [Vim Shortcuts in Bash and ZSH](https://courses.osherove.com/courses/vim-hates-you/vim-shortcuts-in-bash-and-zsh.md): Lesson 12 of 26 in Vim Hates You (Get Somewhat productive in an hour or so), 1:36. Free video by Roy Osherove.
- [Multiple Windows](https://courses.osherove.com/courses/vim-hates-you/multiple-windows.md): Lesson 13 of 26 in Vim Hates You (Divide & Conquer your windows), 3:07. Free video by Roy Osherove.
- [Vim Tabs](https://courses.osherove.com/courses/vim-hates-you/vim-tabs.md): Lesson 14 of 26 in Vim Hates You (Divide & Conquer your windows), 2:10. Free video by Roy Osherove.
- [Tabs as window Layouts](https://courses.osherove.com/courses/vim-hates-you/tabs-as-window-layouts.md): Lesson 15 of 26 in Vim Hates You (Divide & Conquer your windows), 2:25. Free video by Roy Osherove.
- [Installing Plugins (Vim plug + Airline)](https://courses.osherove.com/courses/vim-hates-you/installing-plugins-vim-plug-airline.md): Lesson 16 of 26 in Vim Hates You (Bring in reinforcements - Plugins), 8:57. Free video by Roy Osherove.
- [NerdTree in Vim](https://courses.osherove.com/courses/vim-hates-you/nerdtree-in-vim.md): Lesson 17 of 26 in Vim Hates You (Bring in reinforcements - Plugins), 3:39. Free video by Roy Osherove.
- [Ctrl-P](https://courses.osherove.com/courses/vim-hates-you/ctrl-p.md): Lesson 18 of 26 in Vim Hates You (Bring in reinforcements - Plugins), 2:47. Free video by Roy Osherove.
- [Find text in multiple files with AG](https://courses.osherove.com/courses/vim-hates-you/find-text-in-multiple-files-with-ag.md): Lesson 19 of 26 in Vim Hates You (Bring in reinforcements - Plugins), 6:05. Free video by Roy Osherove.
- [Mapping keys to actions](https://courses.osherove.com/courses/vim-hates-you/mapping-keys-to-actions.md): Lesson 20 of 26 in Vim Hates You (Go Faster), 8:22. Free video by Roy Osherove.
- [Mapping Leaders in Vim](https://courses.osherove.com/courses/vim-hates-you/mapping-leaders-in-vim.md): Lesson 21 of 26 in Vim Hates You (Go Faster), 3:57. Free video by Roy Osherove.
- [Edit and source your .Vimrc faster](https://courses.osherove.com/courses/vim-hates-you/edit-and-source-your-vimrc-faster.md): Lesson 22 of 26 in Vim Hates You (Go Faster), 4:54. Free video by Roy Osherove.
- [Understanding Vim Registers](https://courses.osherove.com/courses/vim-hates-you/understanding-vim-registers.md): Lesson 23 of 26 in Vim Hates You (Go Faster), 8:37. Free video by Roy Osherove.
- [Vim and the System Clipboard](https://courses.osherove.com/courses/vim-hates-you/vim-and-the-system-clipboard.md): Lesson 24 of 26 in Vim Hates You (Go Faster), 4:57. Free video by Roy Osherove.
- [Abbreviations in Vim](https://courses.osherove.com/courses/vim-hates-you/abbreviations-in-vim.md): Lesson 25 of 26 in Vim Hates You (Go Faster), 2:25. Free video by Roy Osherove.
- [VIm Macros](https://courses.osherove.com/courses/vim-hates-you/vim-macros.md): Lesson 26 of 26 in Vim Hates You (Go Faster), 5:37. Free video by Roy Osherove.


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
