Training for the JavaScript Jedi Trials
Since February of this year, I’ve been a JavaScript Padawan. If you’re not familiar with the term Padawan, it’s a reference to a Jedi-in-training, apprenticed to a Jedi Master in Star Wars.
I’m not actually apprenticed to a Jedi, although that’s a nice bucket list item. However, I have studied JavaScript 101, the first course at Launch School, for most of this year. And since the approach of Launch School is one of mastery-based learning, the whole JavaScript Padawan thing fits the situation.
Before a Padawan can become a Jedi Knight, they must pass the Jedi Trials. So too must I now pass a trial. I can’t proceed to the next Launch School class until I pass my assessment. (Will there be Jedi Knights and Masters there?)
This is the case after each course at Launch School. The idea is to ensure that you’ve mastered content from one class before starting the next class. I don’t know if every post-course assessment is the same but I do know what the JS101 assessment entails.
The first part is a timed, written assessment. Assuming that I pass that trial, I undergo a live interview with some coding problems. It’s akin to a developer job interview, but based solely on the JS101 course materials and concepts.
Now that I’ve completed the course, I can say with certainty: A JavaScript master, I am not.
Luckily, both the coursework and the assessment scheduling is all up to me. There’s no timetable to learn at Launch School. So I won’t schedule “the Trials” until I feel I’m ready. My preparation plan is a three-fold approach.
The plan
First, I’ll be re-reviewing all of the course material and my notes from the beginning.
My notes alone total more than 20,000 words in Notion, so this is a big task. However, since it’s a second pass at the materials, everything should at least look or sound familiar. I can zip through some concepts while others may take a little time. I may even re-read the pre-course book, Introduction to Programming with JavaScript. This online text is reasonably comprehensive and freely available if you’re interested.
Second, instead of taking a second set of notes, I want to start writing up some of the concepts in my own words as if I were teaching JavaScript.
If you can’t explain something to someone else, you certainly aren’t a master of that something. I may keep those writings private. Or I may turn them into blog posts here. No, the world doesn’t need yet another site to teach JavaScript. But this would be good practice for me. And it might help someone else, either at Launch School or in the wider galaxy.
Lastly, I’ll complete coding exercises.
Launch School offers its own exercises and I completed those during my Padawan training. However, I have more JavaScript tools in my toolbox to rework, re-do and/or refactor my solutions.
I’ll probably supplement these exercises with some from external sources. I need to make sure they’re relevant to what I learned in JS101 though. Although I understand recursion, having learned the practice in a Java class a few years back, that’s not a JS101 concept. So I don’t want to add any extra bits that weren’t covered in JS101.
Maybe I’ll record myself doing some coding exercises to simulate a live-coding environment. The interview part of the assessment will surely entail live coding and I know that’s a bit different than coding alone. I might even publish some of these, in case they help others.
All told, I think this approach is a solid one. At least for me. Everyone learns in different ways, of course. And at different speeds.
In hindsight, I really should have spent more hours per week into this course. Had I committed to 15 or 20 hours a week, I probably would have halved the time it took me to get through everything.
Lesson learned.
I don’t want to repeat my lack of a time commitment while preparing for this trial. Nor do I want to rush. The goal is one of preparation combined with consistent effort. So it will take as long as it takes. Let’s begin!