Trane
Trane is a deliberate practice engine for optimizing the acquisition of complex skills. The idea came to me after buying a tenor saxophone. I was already learning guitar, so I had to be efficient if I wanted to add another instrument. As I drifted into daydreaming, I fantasized about how quickly I could learn if I had the great saxophonist John Coltrane as my personal tutor. In this scenario:
- John Coltrane is a master. Thanks to decades of practicing, he has mapped the entire domain from beginning to end. He has divided it into smaller skills, derived the relationships between them, and assigned exercises for each.
- He has perfect memory of all my practice sessions, knows exactly where I am in my journey, what I need to practice next, and what I need to review.
- All I have to do is show up and ask him for one exercise. As I continue my apprenticeship, he gradually moves me to more complex exercises. Over years of diligent practice, I become a master myself.
It seemed obvious that such a system should exist. The bad news was that no system that combined all of these strategies into a coherent whole was available, so I decided to build one myself. The good news was that plenty of research into optimal learning strategies has been done.
Trane is based on the principle of deliberate practice, the type of practice and strategies used by experts in disciplines like music, chess, and sports to reach the top of their fields. Trane uses a combination of these proven strategies to optimize learning. All of them are implemented in a way that the end-user does not have to be aware of them. They simply receive relevant exercises while the system uses these strategies, along with their previous results, to update its recommendations in the background. For general information about Trane, please visit the official website.
InterviewTraner uses the power of Trane to optimize the acquisition of skills required for software engineering interviews. It provides a structured curriculum that starts with easy array problems and gradually introduces all topics and difficulty levels, handling planning, scheduling, and repetition automatically to optimize your preparation. The first version of InterviewTraner focuses on algorithm and data structure interviews, but the long-term vision is to cover all the knowledge and skills required for software engineering interviews that fit within the Trane framework.