summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskullydazed <skullydazed@users.noreply.github.com>2020-04-19 00:08:38 -0700
committerGitHub <noreply@github.com>2020-04-19 09:08:38 +0200
commit8c97b4a3a4e744e6f3646bef1fd73c167a26a8b3 (patch)
treea1bbdb75046554a91541a836a2a2c9237bd95d4b
parent0698b15aa5f79a74d1f35af27bfaa4d44e36dbd9 (diff)
Add a syllabus to guide people who are learning QMK (#8816)
-rw-r--r--docs/_summary.md1
-rw-r--r--docs/syllabus.md70
2 files changed, 71 insertions, 0 deletions
diff --git a/docs/_summary.md b/docs/_summary.md
index d47b252c01..842422665e 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -6,6 +6,7 @@
* [Testing and Debugging](newbs_testing_debugging.md)
* [Getting Help/Support](support.md)
* [Other Resources](newbs_learn_more_resources.md)
+ * [Syllabus](syllabus.md)
* FAQs
* [General FAQ](faq_general.md)
diff --git a/docs/syllabus.md b/docs/syllabus.md
new file mode 100644
index 0000000000..239466b791
--- /dev/null
+++ b/docs/syllabus.md
@@ -0,0 +1,70 @@
+# QMK Syllabus
+
+This page helps you build up your QMK knowledge by introducing the basics first and guiding you to understanding all the concepts you need to know to be proficient with QMK.
+
+# Beginning Topics
+
+If you read nothing else you should read the documents in this section. After reading the [Tutorial](newbs.md) you should be able to create a basic keymap, complie it, and flash it to your keyboard. The remaining documents will flesh out your knowledge of these basics.
+
+* **Learn How To Use QMK Tools**
+ * [Tutorial](newbs.md)
+ * [CLI](cli.md)
+ * [GIT](newbs_git_best_practices.md)
+* **Learn About Keymaps**
+ * [Layers](feature_layers.md)
+ * [Keycodes](keycodes.md)
+ * The full list of keycodes you can use. Note that some may require knowledge found in the Intermediate or Advanced Topics.
+* **Configuring IDEs** - Optional
+ * [Eclipse](other_eclipse.md)
+ * [VSCode](other_vscode.md)
+
+# Intermediate Topics
+
+These topics start dig into some of the features that QMK supports. You don't have to read all of these documents, but some of the documents in the Advanced Topics section won't make sense if you skip over some of these.
+
+* **Learn How To Configure Features**
+ <!-- * Configuration Overview FIXME(skullydazed/anyone): write this document -->
+ * [Audio](feature_audio.md)
+ * Lighting
+ * [Backlight](feature_backlight.md)
+ * [LED Matrix](feature_led_matrix.md)
+ * [RGB Lighting](feature_rgblight.md)
+ * [RGB Matrix](feature_rgb_matrix.md)
+ * [Tap-Hold Configuration](tap_hold.md)
+* **Learn More About Keymaps**
+ * [Keymaps](keymap.md)
+ * [Custom Functions and Keycodes](custom_quantum_functions.md)
+ * Macros
+ * [Dynamic Macros](feature_dynamic_macros.md)
+ * [Compiled Macros](feature_macros.md)
+ * [Tap Dance](feature_tap_dance.md)
+ * [Combos](feature_combo.md)
+ * [Userspace](feature_userspace.md)
+
+# Advanced Topics
+
+Everything below here requires a lot of foundational knowledge. Besides being able to create keymaps using advanced features you should be familiar with using both `config.h` and `rules.mk` to configure options for your keyboard.
+
+* **Maintaining Keyboards Within QMK**
+ * [Handwiring a Keyboard](hand_wire.md)
+ * [Keyboard Guidelines](hardware_keyboard_guidelines.md)
+ * [info.json Reference](reference_info_json.md)
+ * [Debounce API](feature_debounce_type.md)
+* **Advanced Features**
+ * [Unicode](feature_unicode.md)
+ * [API](api_overview.md)
+ * [Bootmagic](feature_bootmagic.md)
+* **Hardware**
+ * [How Keyboards Work](how_keyboards_work.md)
+ * [How A Keyboard Matrix Works](how_a_matrix_works.md)
+ * [Split Keyboards](feature_split_keyboard.md)
+ * [Stenography](feature_stenography.md)
+ * [Pointing Devices](feature_pointing_device.md)
+* **Core Development**
+ * [Coding Conventions](coding_conventions_c.md)
+ * [Compatible Microcontrolers](compatible_microcontrollers.md)
+ * [Custom Matrix](custom_matrix.md)
+ * [Understandnig QMK](understanding_qmk.md)
+* **CLI Development**
+ * [Coding Conventions](coding_conventions_python.md)
+ * [CLI Development Overview](cli_development.md)