# 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. Courses: The Art of Unit Testing & TDD Master Class in .NET; The Art of Unit Testing and TDD in Java; TDD Pairing Sessions - Building a Go Game; TDD in .NET in Hebrew; Legacy Code Hero; Vim Hates You. Spoken in Hebrew: TDD in .NET in Hebrew; all others in English. Each course page lists its sections and lessons in order, with the YouTube playlist. Each lesson page names its course and section and has the lesson's YouTube link, running time and the previous and next lessons. Titles are the original course and lesson titles, unchanged. The whole catalog as JSON: https://courses.osherove.com/courses.json. Every course, section and lesson has a short summary written from the video (in English, also for the Hebrew course); lessons can have Roy's own lesson text, and every lesson has its full timestamped transcript (in the .md and at /courses///transcript.txt). To search every lesson (titles, summaries, Roy's lesson texts and transcripts): https://courses.osherove.com/api/search?q= (Markdown; add &format=json for JSON), the whole index at https://courses.osherove.com/search-index.json, and how to use both at https://courses.osherove.com/search.md. 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/ 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. More: https://courses.osherove.com/about-roy.md (sites, social links, contact). Every page listed below is plain Markdown (YAML front matter: title, canonical URL, dates, tags, author, license). The full text of every page is in https://courses.osherove.com/llms-full.txt. ## Pages - [Home: Roy Osherove Courses](https://courses.osherove.com/index.md): Site overview: every page and post with a short description and its Markdown link. - [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. ## Optional - [Full text](https://courses.osherove.com/llms-full.txt): all 108 pages in one Markdown file - [About Roy Osherove](https://courses.osherove.com/about-roy.md): bio, sites, social links and contact - [How to search the lessons](https://courses.osherove.com/search.md): the search API (/api/search?q=, Markdown or JSON) and the search index, with curl examples - [Search API](https://courses.osherove.com/api/search): GET /api/search?q=&limit=1-50&format=md|json: lessons ranked by title, summary, Roy's lesson text and transcript, with timestamped transcript snippets - [Search index (JSON)](https://courses.osherove.com/search-index.json): every lesson as one flat record: title, course, section, URLs, summary, Roy's lesson text, transcript URL - [All transcripts (JSON)](https://courses.osherove.com/search-transcripts.json): every lesson transcript in one file, keyed by lesson URL: [[start seconds, text], ...] - [Sitemap](https://courses.osherove.com/sitemap.xml): every HTML page (XML sitemap)