Emily Bache
Emily Bache
  • 72
  • 420 017
Incremental Software Design FOR REAL | TDD Code Demo in C#
This video is sponsored by Tuple ➡️ tuple.app/emily
Divide and Conquer is a classic strategy for solving complex problems. In software, we often talk about iterative and incremental development which is basically divide and conquer for a design problem. In this video I’m going to show you what incremental development looks like, using C# to complete the Christmas Song Code Kata. I’ll also explain some important development heuristics you should know about.
▬ Links ▬▬▬▬▬▬▬▬▬▬
To get your free guide to Heuristics in Test Driven Development, sign up for the Samman Coaching newsletter here ➡️ sammancoaching.org/newsletter.html
Twelve Days of Christmas Song on Sammancoaching.org ➡️ sammancoaching.org/kata_descriptions/christmas_song.html
If you would like to support my work, please join my Patreon ➡️
www.patreon.com/EmilyBache
Emily on social media
LinkedIn ➡️ www.linkedin.com/in/emilybache
Bluesky ➡️ bsky.app/profile/emilybache.com
Mastodon ➡️ sw-development-is.social/@emilybache
▬ Video chapters ▬▬▬▬▬▬▬▬▬▬
00:00 - Introduction
02:41 - New Requirements
04:25 - Refactoring mistake
05:43 - New domain concept: Factor
07:14 - Roll Up Loop
09:07 - Ready to add new factors
Attribution (Picture in Thumbnail):
Xavier Romero-Frias, CC BY-SA 3.0 creativecommons.org/licenses/by-sa/3.0 via Wikimedia Commons
มุมมอง: 363

วีดีโอ

Design Better Code with Preparatory Refactoring in TDD | Demo
มุมมอง 1.3K14 วันที่ผ่านมา
This video is sponsored by Tuple ➡️ tuple.app/emily Refactoring is an essential part of new code development with TDD. A lot of your design work actually happens in the Refactoring step. In this video I show a demo using Java. ▬ Links ▬▬▬▬▬▬▬▬▬▬ Martin Fowler's article about Preparatory Refactoring ➡️ martinfowler.com/articles/preparatory-refactoring-example.html If you liked this video you mig...
4 Steps to Ace a Coding Interview Challenge | Advice from Refactoring Kata Expert
มุมมอง 76528 วันที่ผ่านมา
This video is sponsored by Tuple ➡️ tuple.app/emily In order to get a job as a developer, many people have to complete a take-home coding challenge, and a lot of people get given Gilded Rose or another refactoring kata from my collection. In this video I’ll explain a 4 step process for how to approach these kinds of problems. ▬ Links ▬▬▬▬▬▬▬▬▬▬ If you liked this video you might also enjoy my se...
Mock Objects: the Police Enforcer of Unit Testing | Team Learning
มุมมอง 896หลายเดือนก่อน
This video is sponsored by Tuple ➡️ tuple.app/emily Are you familiar with the true, original intention behind mock objects? It turns out that tests using them aren’t primarily about finding bugs, although they do that too. Mock objects are a design tool, to enforce or police a particular interaction between classes. In this guided learning hour we’ll go through the theory and use mocks in a han...
Refactor Like a Pro: Improve Tennis 5 Java Code Design (Demo)
มุมมอง 1.1Kหลายเดือนก่อน
This video is sponsored by Tuple ➡️ tuple.app/emily Tennis is one of my Top Code Katas, a refactoring exercise to help you to improve your coding skills and better be able to deal with legacy code. In this video I'll show a demo of the 5th variant of it, in Java. ▬ Links ▬▬▬▬▬▬▬▬▬▬ This demo is taken from my course "Coding Interview Challenge Practice" ➡️ www.oreilly.com/videos/coding-interview...
You AREN’T Gonna Need It: in TDD Design is SIMPLE | Team Learning
มุมมอง 1.7K2 หลายเดือนก่อน
This video is sponsored by Tuple ➡️ tuple.app/emily You wouldn’t use a sledgehammer to crack a nut, yet over-engineering - building more complexity than you need - is commonplace in software. In Test Driven Development we do things a little differently. In this Team learning session we’ll talk about getting your priorities right in software design. ▬ Links ▬▬▬▬▬▬▬▬▬▬ The FizzBuzz code samples a...
From Rubik’s Cube to Code: A Step-by-Step Guide to TDD Skill Mastery
มุมมอง 2.4K2 หลายเดือนก่อน
This video is sponsored by Tuple ➡️ tuple.app/emily A lot of training courses on Test-Driven Development aren’t very good. How can you tell in advance what will actually work? In this video I explain a skill acquisition model from Marian Hartman using a Rubik's cube, and how it can help you to find good TDD training. ▬ Links ▬▬▬▬▬▬▬▬▬▬ Learn more about Marian Hartman's skill acquisition models ...
Prepare a Code Paragraph for Extraction with Split Variable | Team Learning
มุมมอง 8783 หลายเดือนก่อน
This video is sponsored by Tuple ➡️ tuple.app/emily ⬅️ In this guided learning hour we will learn to do a refactoring that helps you prepare a section of code for extraction: Split Variable. ▬ Links ▬▬▬▬▬▬▬▬▬▬ If you like this content and want access activity boards and related content, please join my Patreon ➡️ www.patreon.com/EmilyBache Emily on social media LinkedIn ➡️ www.linkedin.com/in/em...
Technical Coaching: Software Team Training in TDD, Refactoring and more
มุมมอง 6773 หลายเดือนก่อน
This video is sponsored by Tuple ➡️ tuple.app/emily ⬅️ As a Tech lead or senior developer, coaching others is already part of your job. How about if I could give you many of the benefits of a training session you design and lead yourself, without taking as much prep time? That’s the premise of a Guided Learning Hour. This video explains how you and your team can use the materials I make and pub...
Reduce Method Sprawl with Code Paragraphs | Software Team Learning
มุมมอง 10K4 หลายเดือนก่อน
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ Learn about step three in Naming as a Process - Split into Chunks. We'll use code reading techniques to identify then extract paragraphs. This session is designed to be done together with your development team, although you can watch for yourself too. The last part of the video is the session briefing. Watch this part to he...
You can’t Grow a Software Team with Code Reviews
มุมมอง 19K4 หลายเดือนก่อน
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ Often code review is the only mechanism a team has to align on a direction for the design of the code, and it’s not a great forum for that. What else can we do? ▬ Links ▬▬▬▬▬▬▬▬▬▬ Article about code reviews by Trisha Gee ➡️ trishagee.com/2019/07/03/code-review-best-practices/ If you like this content and would like to suppo...
Trustworthy Code with Naming as a Process | Team Learning Session
มุมมอง 50K5 หลายเดือนก่อน
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ Naming as a Process is a technique to improve names and readability in legacy code. The last part of the video is the session briefing. Watch this part to help you prepare to lead this session with your team. You can also find out more in my "Guided Learning Hour: How-to" video. You can also purchase a Java version of the s...
What Would Martin Fowler Do? Javascript Code Refactoring Demo
มุมมอง 88K5 หลายเดือนก่อน
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ So, What Would Martin Fowler Do? I’m going to show you, with code, using his "Theatrical Players" example, in Javascript. ▬ Links ▬▬▬▬▬▬▬▬▬▬ You can find the code on my Github, in the 'demo_javascript' branch ➡️ github.com/emilybache/Theatrical-Players-Refactoring-Kata/tree/demo_javascript If you like this content and would...
The Fake Designer Handbag of Unit Testing | Coding Technique Training
มุมมอง 140K6 หลายเดือนก่อน
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ In this Guided Learning Hour we’ll learn about Fake test doubles. It's designed to be done together with your development team, although you can watch for yourself too. The last part of the video is the session briefing. Watch this part to help you prepare to lead this session with your team. You can also find out more in m...
Smooth Python OO design and coding success | Parrot Refactoring Kata
มุมมอง 8256 หลายเดือนก่อน
I'm a big fan of Python and the Parrot Refactoring Kata is a good exercise for demonstrating the capabilities of the language and its refactoring tools. How do you think this compares with my previous videos doing the same exercise in Java and C#? Leave me a comment with your thoughts. ▬ Links ▬▬▬▬▬▬▬▬▬▬ Previous video explaining the Parrot Refactoring Kata ➡️ th-cam.com/video/UxNEHKg_2eA/w-d-x...
Can you even refactor in Javascript? Or Python? | Everyday Coding Expertise
มุมมอง 8866 หลายเดือนก่อน
Can you even refactor in Javascript? Or Python? | Everyday Coding Expertise
Unlock the Power of Refactoring in Everyday OO Design | Team Learning
มุมมอง 1.1K7 หลายเดือนก่อน
Unlock the Power of Refactoring in Everyday OO Design | Team Learning
Power Up Your Java OO Design Skills | Parrot Refactoring Kata
มุมมอง 1.8K7 หลายเดือนก่อน
Power Up Your Java OO Design Skills | Parrot Refactoring Kata
Effective Code Reading With Paragraphs | Train your Brain AI-style
มุมมอง 8057 หลายเดือนก่อน
Effective Code Reading With Paragraphs | Train your Brain AI-style
How SOLID & TDD Paved the Way to Success at Ferrari | Racing Car Katas
มุมมอง 2K7 หลายเดือนก่อน
How SOLID & TDD Paved the Way to Success at Ferrari | Racing Car Katas
Incremental Coding for Continuous Delivery | Guided Learning Hour
มุมมอง 9788 หลายเดือนก่อน
Incremental Coding for Continuous Delivery | Guided Learning Hour
Best Tests for Gilded Rose Kata | Kent Beck’s Desiderata
มุมมอง 2.8K8 หลายเดือนก่อน
Best Tests for Gilded Rose Kata | Kent Beck’s Desiderata
Level-Up Your Team's TDD Practice with Cyber-Dojo
มุมมอง 1.2K8 หลายเดือนก่อน
Level-Up Your Team's TDD Practice with Cyber-Dojo
Who Should Enable TDD? - Scrum Master | Line Manager | Tech Lead
มุมมอง 7698 หลายเดือนก่อน
Who Should Enable TDD? - Scrum Master | Line Manager | Tech Lead
Everyday Design Improvements in OO Code | Guided Learning Hour
มุมมอง 1.4K8 หลายเดือนก่อน
Everyday Design Improvements in OO Code | Guided Learning Hour
Happy Coding | My Channel for Developers & Technical Coaches
มุมมอง 1.8K9 หลายเดือนก่อน
Happy Coding | My Channel for Developers & Technical Coaches
The BEST way to find BUGS in an API | Contract vs Approval Testing
มุมมอง 1.5K9 หลายเดือนก่อน
The BEST way to find BUGS in an API | Contract vs Approval Testing
Fast-track Your Coding Skills Right Now, AI-style | Deep Nesting
มุมมอง 9379 หลายเดือนก่อน
Fast-track Your Coding Skills Right Now, AI-style | Deep Nesting
Refactoring with Martin Fowler | Theatrical Players Code Kata
มุมมอง 6K9 หลายเดือนก่อน
Refactoring with Martin Fowler | Theatrical Players Code Kata
The Undercover Agent in Unit Testing: Spy Test Doubles | Guided Learning Hour
มุมมอง 7959 หลายเดือนก่อน
The Undercover Agent in Unit Testing: Spy Test Doubles | Guided Learning Hour

ความคิดเห็น

  • @DaanStolp
    @DaanStolp 32 นาทีที่ผ่านมา

    Very nice demo! Aside from the heuristics, I like how you clearly demonstrate how you can (and should!) aim for really small steps, especially when you're just learning TDD or when you're working in an unfamiliar domain. You mentioned in your review that "some of these methods might not need to be public". For the sake of discussion, what if you had a strong suspicion upfront that those methods would indeed not need to be public. Would you follow the same approach and keep them public anyway? Would you follow the same approach and make them private afterwards (and consequently delete most tests except the characterisation tests)? Of would you try a different testing approach, where you would not rely on testing 'private' (or soon-to-be-made-private) methods?

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 22 นาทีที่ผ่านมา

      Thanks! I'd build them the same way, public, then probably find another abstraction, create a class for it and move them there. So the methods would still be public, but not part of the same class as the top-level public API.

  • @JhanaratoBhikkhu
    @JhanaratoBhikkhu วันที่ผ่านมา

    Definitely felt the vicarious joy when you nailed the session. Emily FTW!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach วันที่ผ่านมา

      Thanks! This is a fun coding exercise, glad you enjoyed it too

  • @stevend1070
    @stevend1070 วันที่ผ่านมา

    One heuristic you did that I do a lot is to never trust a test that passes without failing first!

  • @domculpa
    @domculpa 4 วันที่ผ่านมา

    This is so cool, thanks Emily!

  • @lucasirondesouzacamargo1540
    @lucasirondesouzacamargo1540 8 วันที่ผ่านมา

    please consider moving your coaching advertisement to a different point of the video next time. I respect you putting the advertisement in your free video, and I thankful for the content, but the abrupt cut to the advertisement middle speech was very disruptive. thank you

  • @marcusradell7544
    @marcusradell7544 13 วันที่ผ่านมา

    Great video! Thank you 🙏

  • @HemalVarambhia
    @HemalVarambhia 13 วันที่ผ่านมา

    When that test failed I would have rolled back (too dogmatic perhaps); you chose to self correct.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 13 วันที่ผ่านมา

      Yes that would also have been a sensible option.

    • @HemalVarambhia
      @HemalVarambhia 13 วันที่ผ่านมา

      ​@@EmilyBache-tech-coachand what would need to have happened for you to exercise that option?

  • @3bodyproblems
    @3bodyproblems 14 วันที่ผ่านมา

    Very well explained, excellent communication skils and excellent technical content.

  • @hanlho
    @hanlho 15 วันที่ผ่านมา

    Very clean example, thank you! The pattern then would be: Refactor-Red-Green where this video stops right before turning the test Red which will then turn green very quickly, correct? If I may ask, why not write a failing test first? This could help maintain some focus on what you are trying to make working. You can still do the preparatory refactoring to turn it green. Maybe the TDD in the title is what is throwing me off though.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 15 วันที่ผ่านมา

      Glad you liked the video! I was showing the refactoring step of TDD and yes the next step is to write a failing test for the Red step. When you are refactoring it's better to have green tests because it makes it really obvious if you make a refactoring mistake, since the tests start to fail. If you write the next test too soon and refactor on red then it's harder to spot that. It's also easier on your brain to keep focus on one activity at a time.

    • @hanlho
      @hanlho 14 วันที่ผ่านมา

      @@EmilyBache-tech-coach Thank you for your reply. Understood, 'only refactor while green', focus on one thing.

  • @Dorgrin
    @Dorgrin 15 วันที่ผ่านมา

    Preparatory refactoring is the secret power of TDD. I think it’s the bit newcomers miss, which leads them to think it’s just “write some tests”. Took me a while to stop breaking existing functionality when working on the next stage of development; TDD’s refactor step was a great lesson.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 15 วันที่ผ่านมา

      Really happy to hear about your experience! Yes refactoring safely is important in TDD.

  • @NitsanAvni
    @NitsanAvni 15 วันที่ผ่านมา

    Super!

  • @JhanaratoBhikkhu
    @JhanaratoBhikkhu 15 วันที่ผ่านมา

    As a hobbyist, I really appreciate the free training!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 15 วันที่ผ่านมา

      Glad to hear you enjoy writing code on your free time. Hope doing TDD will make it even more fun for you :-)

  • @danielsteinberg4467
    @danielsteinberg4467 15 วันที่ผ่านมา

    Great demo, bad title. This is Java, not C#.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 15 วันที่ผ่านมา

      Oh that is so embarassing. I will fix it straight away!

  • @abdushakoor0099
    @abdushakoor0099 15 วันที่ผ่านมา

    not gonna lie, the last part of inline variables after refactoring was pretty cool

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 15 วันที่ผ่านมา

      inline is definitely an underused refactoring, happy you liked it!

  • @srinivasanrajagopal9062
    @srinivasanrajagopal9062 18 วันที่ผ่านมา

    So good!

  • @joseangulo8168
    @joseangulo8168 21 วันที่ผ่านมา

    Great video Emily :)

  • @BlaiseBraye
    @BlaiseBraye หลายเดือนก่อน

    Hello dear, Thank you for sharing your insights. While I agree that LLMs are not traditional refactoring tools, I'm not entirely convinced that there's a point to prove here. As a fan of refactoring tools myself, I view Copilot as an incredibly powerful assistant in this realm. For instance, here are several ways LLMs can support refactoring of a huge unmaintable god class : 1. Class Analysis: They can suggest improvements by analyzing the structure of your code. 2. Unit Test Generation: Rapidly create tests to ensure existing functionality remains intact. 3. Work Breakdown: Help plan refactoring by breaking down tasks into manageable steps. 4. Assisted Refactoring: Offer code modifications aligned with best practices. 5. Automated Review: Ensure code adheres to standards and identify potential issues. LLMs can significantly enhance the refactoring process, acting as an advanced assistant rather than a traditional tool. LLM changed the game here, refactoring time on such classes is reduced from weeks to days, with increased quality and higher confidence than never before. I get the sense that you might not have explored LLMs in this capacity yet. It could be an interesting opportunity to see how they might enhance your work.

  • @GrzegorzGaezowski
    @GrzegorzGaezowski หลายเดือนก่อน

    Thank you for this! Finally a description of mocks that doesn't mischaracterize the technique. Great job in describing it in relatively basic terms!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach หลายเดือนก่อน

      Glad you liked it! That is really encouraging.

  • @pmareke
    @pmareke หลายเดือนก่อน

    Thanks Emily, I love it! In Python I use Doublex a lot and it's a life saver if you work with Doubles (Stubs, Spies and Mocks), I'll give it a try to the kata!.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach หลายเดือนก่อน

      Thanks! A lot of test double frameworks make it much easier to create spies than canonical mocks. Hope you enjoy the exercise anyway!

    • @pmareke
      @pmareke หลายเดือนก่อน

      @@EmilyBache-tech-coach yes of course! I always have the same doubt about using a Mocking framework or cooking my own classes as you did. I don't like to have an extra dependency in the mocking framework, but it's so convenient 😂.

  • @aprobinda
    @aprobinda หลายเดือนก่อน

    Both the demo and the explanations are excellent! Thank you.

  • @sunnypatel1045
    @sunnypatel1045 หลายเดือนก่อน

    Love this ❤

  • @RosanaRuFer
    @RosanaRuFer หลายเดือนก่อน

    Please, keep doing Python katas if you can <3 agg I wish you had presentation mode ON

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach หลายเดือนก่อน

      What is it in particular that you are lacking? Is the code too small to see?

  • @mateusamp
    @mateusamp หลายเดือนก่อน

    Nice refactoring video, but wouldn't it be cleaner to store the lookupTable into an static attribute which is built only once? Why building this table each time you call the getScore method?

    • @fioremarc2867
      @fioremarc2867 หลายเดือนก่อน

      29 / 5 000 I was going to say the same thing :)

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach หลายเดือนก่อน

      Yes that is a good idea, obvious now I think about it!

  • @allefdouglas9693
    @allefdouglas9693 หลายเดือนก่อน

    I would recommend to throw the error if it does not contains the normalizedPoints and return without the else if (!lookup.containsKey(normalizedPoints) throw new IllegalArgumentException("Invalid score."); return lookup.get(normalizedPoints);

  • @nasragiel
    @nasragiel หลายเดือนก่อน

    I would have removed the unnecessary else as well. :) Thank you for your great videos!

  • @NitsanAvni
    @NitsanAvni หลายเดือนก่อน

    A few good names go a long way! Thanks :)

  • @NitsanAvni
    @NitsanAvni หลายเดือนก่อน

    Haha!

  • @Dorgrin
    @Dorgrin 2 หลายเดือนก่อน

    Awesome video, thanks!

  • @abdushakoor0099
    @abdushakoor0099 2 หลายเดือนก่อน

    FizzBuzz implementation in incomplete or am I tripping? good video BTW

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      I'm not sure what aspect they are incomplete in? You can find the 6 solutions for comparison in this repo, (I'll also add a link in the video description) github.com/emilybache/FizzBuzzKata-Samples

    • @abdushakoor0099
      @abdushakoor0099 2 หลายเดือนก่อน

      @@EmilyBache-tech-coach yes, thanks, surely i was tripping.

  • @ragamuf
    @ragamuf 2 หลายเดือนก่อน

    All the tenets of continuous delivery should be applied to continuous learning and development, which makes the argument for having a great technical coach on hand.

  • @pragdave
    @pragdave 2 หลายเดือนก่อน

    Nice video. This reminds me a lot of the 5 or 6 steps in the Dreyfus module of skills acquisition from the 60s.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      Yes, it's a similar concept. I think Hartman's model is easier to understand and more actionable though.

    • @rolandfisher
      @rolandfisher 2 หลายเดือนก่อน

      Yeah, they are the same model simply presented slightly differently.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      @@rolandfisher actually I disagree, Hartman's model is not the same as Dreyfus. I have found it more useful and insightful.

  • @RezaMarz
    @RezaMarz 2 หลายเดือนก่อน

    Thanks.

  • @NextIncrement
    @NextIncrement 2 หลายเดือนก่อน

    I loved that you used the Rubik's Cube as the example. It also got me to think about how something like the commutators technique fits into this model. I do remember learning to solve the Rubiks cube, and it really frustrated me that if I wasn't practicing for a while I would forget one of the moves. At some point I learned a trick where you take 2 moves with certain properties and combine them by applying both and then applying both again but in reverse order. The two moves being combined are simple enough that anyone can figure it out by themselves, and once you know this trick you can basically figure out a solution for any twisty puzzle yourself. What I found interesting is that the deeper understanding of how moves are constructed allowed me to move through the stages faster. I think this is similar to how knowing the rules or practices can help you acquire a skill, but when you have the theoretical understanding you can often accelerate the learning process.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      That's a great insight. I know Marian Hartman has also done some work combining her skill acquisition model with Bloom's taxonomy which is an equivalent model for theoretical knowledge.

  • @marcusradell7544
    @marcusradell7544 2 หลายเดือนก่อน

    Hi Emily, I loved the model and your arguments! I do see the value of having a technical coach. But I'm still interested in finding how we can teach mob programming and TDD without technical coaches that are highly available. I think it's possible!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      I think it's possible and of course there aren't always technical coaches available. The trouble is it takes a lot longer though and is more frustrating - you can get to level 4 (conscious action) with only peer support but to get to level 5 (proficient) you need such a wide range of experience and to learn so many different recipes or approaches, that to get there without a mentor will be a lot of time spend reading, studying and learning from your own mistakes.

  • @MrDarkPage
    @MrDarkPage 2 หลายเดือนก่อน

    I didn't like the video the analogy doesn't work in my opinion. I'm talking as a 15years of experienced profesionnal developper who also solves rubik's cube. About the video: it's 11minute long and at the 3 minute mark you had basically said nothing, repeated 3-4 times what you intended to do in the video yet still hadn't. I almost stopped there, but I was really curious about the title so I kept going. I feel like the only goal of the whole argument is to justify that "you need someone to coach you in learning a new skills", I'm willing to bet you sell coaching/mentoring. The title states "From Rubik’s Cube to Code: A Step-by-Step Guide to TDD Skill Mastery" but nothing in the video is about TDD, it's all about a method of learning a new skills, I don't know how good this method is, it feels very broad and generic in my opinion but like I said I don't know. Maybe a title like "The Hartman method to learn a new skill: applied to learning the rubik's cube" would be more honest. A bit about my personal experience (which will not apply to everyone I know), I learned the rubik's cube on my own when I was ~10 and I developed my own method to solve it, no need for any mentor, noone needed to help me, the only thing that was required was practice and logical thinking. I'm fairly certain that writing code using any method, TDD or otherwise, is the same, it's mostly practice, no need for a mentor, you need to get your hand dirty and do it, and figure it out. Paying a mentor is basically giving money to someone to look at you while doing it.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      I'm happy to hear you have worked out the Rubik's cube for yourself. I agree that you can work out TDD for yourself too, I just think it will be a lot harder and take a lot longer than if you had a mentor. In my experience it's worth paying one. Your experience may be different.

  • @bernhardkrickl5197
    @bernhardkrickl5197 2 หลายเดือนก่อน

    It's been a long time since I solved a Rubik's cube. Must have been last century. But I did do some TDD recently :)

  • @KevenWebb
    @KevenWebb 2 หลายเดือนก่อน

    I can see where the Hartman Model will help me plan training for others outside of coding. Great reference.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      Happy to hear that! I think it's a really useful model.

  • @objarni
    @objarni 2 หลายเดือนก่อน

    Really nice explanation!

  • @marianhartman218
    @marianhartman218 2 หลายเดือนก่อน

    I so love how you use the Rubik cube to demo my skill acquisition model! I am humbled that it had a lightbulb moment for you to apply to your work 💜

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      This is a very useful way of understanding skill acquisition - thanks for explaining it to me! Very happy to see your website so more people can benefit.

  • @georgwagner5577
    @georgwagner5577 2 หลายเดือนก่อน

    Wait, I practice TDD but I'm too dumb for Rubiks Cube. Would you like to tell me anything? 😂 I got you on LI!!!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      I think with the right teaching materials and some practice that anyone could learn to solve a rubik's cube actually. Keep practicing the TDD though, it's probably a more useful life skill!

  • @Neppord
    @Neppord 2 หลายเดือนก่อน

    Awsome! Thank you for another very usefull video!

  •  2 หลายเดือนก่อน

    I was working this morning on preparing a workshop on refactoring the kata for theatre actors and I was just listing the techniques you use, Emily. And I'm eating, thinking I'm going to watch her latest video and then I see that you're explaining one of these techniques - variable cutting - what a coincidence!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      Happy that this was useful! I've also got a longer workthrough of the theatrical players kata in Java in my new O'Reilly course. Good luck with your workshop!

    •  2 หลายเดือนก่อน

      @@EmilyBache-tech-coach Thank you Emily. But I don't find the new O'Reilly course you are talking about

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach หลายเดือนก่อน

      learning.oreilly.com/course/coding-interview-challenge/0790145800350/

  • @sylvain-k
    @sylvain-k 2 หลายเดือนก่อน

    Thanks to do it in java too with intellij, I struggled to find some non equivalency you shown previously with rider. It's weird to see intellij does not automatically update the visibility to protected when pushing down the getSpeed method and force to solve it in this conflict view (not very user friendly imho), then relaunch again the refactoring to make it works :/

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      Yes I'm also surprised that IntelliJ doesn't handle this better.

  • @ragamuf
    @ragamuf 2 หลายเดือนก่อน

    Hello Emily. First of all, thank you for bringing attention to this area of software development. Technical coaching is a vital component of the competency of software developers. I experienced first-hand in the past how this type of training elevated my productivity and that of my teammates. But before a problem can be solved, one must know it exists. In your encounters with HR and other decision-makers, is there an awareness that technical coaching is a thing of immense value? Have you encountered resistance from software developers themselves to the mindset shift required to make this engagement successful? Software developers are generally expected to learn independently - rightly or wrongly, and I do say wrongly. Most other professional disciplines acknowledge the need to upskill their talent and prioritize time and resources. So, how do we change this perspective and thus elevate the value proposition of onboarding a technical coach? Thanks

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 หลายเดือนก่อน

      I can only agree with your assessment - technical coaching is not widely acknowledged as important by HR and other decision makers. I'm doing my best to change this :-)

  • @lldadb664
    @lldadb664 3 หลายเดือนก่อน

    I was listening to the original conversation just yesterday and was thinking during that particular exchange that it might be a great opportunity for you two to pair/ensemble on an example to provide more clarity. I’d love to see that, but this definitely helped provide me with more insight. Thanks!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 หลายเดือนก่อน

      That's a good idea. Glad you liked the video.

  • @GiorgioVespucci
    @GiorgioVespucci 3 หลายเดือนก่อน

    Is that "NN usages" provided by a standard IntelliJ plugin? Thanks

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 หลายเดือนก่อน

      I think it's part of the normal IntelliJ editor, no plugin needed.

  • @JunaidKhan-ny8tu
    @JunaidKhan-ny8tu 3 หลายเดือนก่อน

    This is very insightful ❤

  • @abhijit-sarkar
    @abhijit-sarkar 3 หลายเดือนก่อน

    Thanks for stepping through the process of solving a Kata. I came to Cyber-Dojo from Exercism, and was confused by the hiker files that had nothing to do with the problem description. Why they don't have a video on how to use the platform is beyond me. That said, since the student is writing their own tests, there is no guarantee that they solved the problem correctly, and covered all the use cases in the problem description. One can leave the initial hiker files in there, change the answer to 6 * 7, and call it good. If this is indeed the case, the session is only as good as the student's skills, which seems to be orthogonal to the goal of this platform.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 หลายเดือนก่อน

      Glad you liked the video! I think this platform is often used for group practice, where students get help and advice from one another. To a large extent that should prevent the problem you mention. I have a follow-up video on using cyber-dojo in a group :-)

    • @abhijit-sarkar
      @abhijit-sarkar 3 หลายเดือนก่อน

      @@EmilyBache-tech-coach I looked at some of the problems and those just don’t cut it. For instance, the anagrams problem asks the student to produce all anagrams of a word. In other words, all permutations of a list. But it doesn’t state the expected behavior when duplicates are present in the list. This has serious implications, because if I gave you a string consisting of a single character repeated 1000 times, you’d have factorial 1000 Identical permutations!! My conclusion is that for any serious coder looking to have some fun solving challenges online, the platform falls short. There are just too many loopholes.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 หลายเดือนก่อน

      ​@@abhijit-sarkar I think you've misunderstood the purpose of the tool. Cyber-dojo is not primarily about testing your ability to solve specific coding challenges, it's a tool for practicing doing TDD. Part of TDD is examining the requirements and spotting that kind of issue with them. It's what makes it software development rather than just programming. Software developers need to talk to customers and decide on requirements and what to build.

  • @ddanielsandberg
    @ddanielsandberg 4 หลายเดือนก่อน

    - "How the heck did this code become this messy and long?" - "One if-statement at a time."

  • @chinesischesser
    @chinesischesser 4 หลายเดือนก่อน

    Great video, I learned something again. Just a technical remark, I found it quite distracting that you micis in the frame with your face, would look much better it it was hidden