Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize Learning Path for new learners #377

Open
HuskyNator opened this issue Nov 1, 2023 · 2 comments
Open

Reorganize Learning Path for new learners #377

HuskyNator opened this issue Nov 1, 2023 · 2 comments

Comments

@HuskyNator
Copy link
Contributor

In order to introduce new people to the language & hold their interest, I feel the page order of the language tour should be changed, quite a bit.

When comparing the order of pages, the tour tries to jump into more complex topics before describing the basics. Additionally, some sections seem misplaced (see bottom notes regarding "Ranges" and "Documentation")
This should make the tour more understandable to people less experienced in languages like C & provide a more organized approach.

Current "Basics" order:

  1. Imports/Modules
  2. Basic types
  3. Memory
  4. Mutability
  5. Control flow
  6. Functions
  7. Structs
  8. Arrays
  9. Slices
  10. Alias & Strings
  11. Loops
  12. Foreach
  13. Ranges
  14. Associative Arrays
  15. Classes
  16. Interfaces
  17. Templates
  18. Delegates
  19. Exceptions
  20. Further Reading

My Suggestion:

  1. Hello World (explicitly as one section, at the start, see note below)
  2. Basic types
  3. Functions
  4. Comments (/"Documentation", see note below)
  5. Control Flow (merge "Loops" into this Merge Loops into Control Flow #373 & Merges Loops & Control Flow #374 )
  6. Structs
  7. Enums (explicit addition)
  8. Arrays
  9. Foreach
  10. Memory
  11. Mutability
  12. Alias & Strings
  13. Associative Arrays
  14. Slices
  15. Classes
  16. Interfaces
  17. Templates
  18. Delegates
  19. Exceptions
  20. Imports and Modules
  21. Further Reading

Important notes about this change: (may need to be split into separate issues)

  • Adds explicit "Hello World" section (Move out of Import example & move rest of this section to the end of the basics track. Can still refer to this section for the examples import std.stdio: writeln; statement)
  • Adds explicit "Enums" section.
  • Moves "Ranges" from "Basics" to "D's Gems" (immediately before "Range Algorithms")
  • Moves "Documentation" from "D's Gems" to "Basics" and complete section with more on comments in general.
@HuskyNator
Copy link
Contributor Author

HuskyNator commented Nov 1, 2023

Taking a bit of inspiration from other books & guides like; might be useful too:

@pbackus
Copy link

pbackus commented Nov 1, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants