Developing your Dojo through breadth
What do I mean by “breadth” in this context?
You can develop your Dojo through breadth by giving Ninjas the chance to experience a variety of different technical topics at a Dojo. From pausing to address design before diving into code, to sampling other programming languages or experimenting with hardware projects, breadth is about exposing Ninjas to a range of topics in the tech space, so they can find what they enjoy.
Why choose breadth?
There are several reasons to take a breadth-based approach at your Dojo, or with particular Ninjas:
- Ninjas haven’t been very interested in the topics you’ve tried so far at your Dojo. Exploring other languages, tools and kinds of projects might find something more engaging for them.
- Your Mentors presently lack the technical skills to address your current topics (or maybe any topic) in depth and would be more comfortable continuing at a beginner level in a new topic.
- You want to help your Ninjas discover the topics they’re really passionate about, so you can later help them develop a deeper understanding and mastery of their favourites.
- It can be an interesting way to review underlying computational concepts, like variables and loops, by seeing them recur in many different languages and scenarios. Boolean logic even shows up in electronic circuits!
- Ninjas may not yet have the patience for the deferred reward of more advanced and complex projects.
What to watch out for?
If you do go down this route there are a few things you might want to watch for and take action if you spot them.
- Ninjas finding their favourite and not wanting to move on: If a Ninja is loving a particular topic, ideally you should support them exploring that at a deeper level. However, you may find that your Mentors lack the skills to do so, or that your Dojo can’t split its focus on to too many topics. Options here vary depending on the Ninja. If the Ninja is able, Mentors could offer what help they can while the Ninja pursues self-directed learning. Otherwise, move on to a similar but different topic—maybe the same goals, achieved in another programming language. Pygame instead of Unity, for example.
- Getting stuck at a shallow, exploratory level. While the beginner level material is great fun and provides a quick achievement, if you never move away from it then Ninjas will never develop as programmers. Ultimately, at some point, you will have to depart from breadth and choose depth on at least one subject.
Which content to use
We have a whole bunch of it! The Foundation’s Sushi Cards cover a variety of topics and, while they don’t all go to the Advanced level of depth, there are a bunch of them that you can look at for breadth! Also, while the selection below is all Sushi Cards, the resources section is full of community submitted projects, content and ideas to explore an even broader range of topics.
Learn to create mobile apps for Android with App Inventor.
A mini-computer for hardware hacking.
Learn the language I started with! Java is a very popular language and gives a good intro to formal programming concepts.
- Beginner Java Sushi Cards (new today!)
One of the most popular languages on the web, powering major sites like Facebook.
Learn one of the most readable programming languages around (and my personal favourite!).
Get into hardware with the Raspberry Pi.
Learn a serious games development tool! Unity, which uses the C# language, has been used to create many professional games.
- Beginner Unity Sushi (new today!)
Make some awesome wearable electronics!