I’m currently working as a trainer for ThoughtWorks University (TWU) and the participants have some Industrial Logic e-learning material to work through before they take part in the 6 week training program.
I’ve been working through the refactoring/code smells courses myself and while I’ve been finding it really useful, I think this was partly because I’ve been able to link the material to situations that I’ve seen in code bases that I’ve worked on over the past few years.
It would have been interesting to see if I’d have got as much value from going through the material 4 years ago before I started working at ThoughtWorks and didn’t have a range of code bases to relate the patterns to.
My thinking is that I would have found it more difficult to see the value of the material and that the approaches described would just have seemed ‘obvious’ despite the fact that I’ve made pretty much all of the mistakes that the training looks to address!
About a year ago I wrote a blog post where I described the value of re-reading books and one point which I’d forgotten is that even though it may be hard to relate to some ideas the first time you come across them it’s still valuable to read about them anyway.
It helps to prepare your mind for when you eventually come across some code where the idea can be applied and Krishnan pointed out that this was actually part of the feedback received from the current TWU participants.
I think this is probably a good example of a variation of confirmation bias at work in that since we’ve been prepared to see certain patterns/potential to use different refactorings in code when we do come across those situations in code we’re much more likely to see those situations.
Krishnan pointed out that it would still be very useful for the TWU trainers to refer back to the Industrial Logic material when we come across those patterns in the project simulation that we run as part of TWU.
I think this is the most important part of the process as it will help to reinforce the learning.
I’m still curious whether there ever is a time when it makes sense to delay learning about something until we have more context.
I find that when I’m learning about something which goes way over my head I’ll often stop doing that and pick something else to look at which I can relate to a bit better.
I try to go back to the original material again later on but what I find often happens is that I’ll come across it in the future more by coincidence than design and this time it will make more sense.