-
-
Notifications
You must be signed in to change notification settings - Fork 616
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
[V3] Roadmap to Launch #941
Comments
* Rearrange * Set theme jekyll-theme-architect * Add nav * Move layout to the correct place * Change theme * Add docsify generated site * Rename link * Add extra sidebar * Fix sidebars * Fix C readme link * Rearrange repo * Add some basic docs * Fixing broken links * Update docs/concept-exercises.md Co-Authored-By: Erik Schierboom <[email protected]> * Update docs/concept-exercises.md Co-Authored-By: Erik Schierboom <[email protected]> * Update docs/concept-exercises.md Co-Authored-By: Erik Schierboom <[email protected]> * Fix sidebars * Updated links * Add maintainers info * Add tooling sidebar * Fix more broken links * Add extra start to get started * Additional link-fixes * Additional link-fixes * Rename content to reference * Update repository structure * Move exercise-shared files to separate section * csharp: update to new structure (#1) * csharp: create docs, reference and exercises directory * csharp: make README and index * csharp: renamed concept-exercises to reference * csharp: move cli.md and debug.md to exercise/.docs directory * csharp: add how to implement document * csharp: update links * csharp: add concept-exercises document * csharp: add concept exercises * csharp: fix invalid escaping * csharp: fix link * csharp: add todo for converting to Fact-based tests * csharp: add shared file * csharp: add new concept exercise template * csharp: add reference to how to implement * csharp: fix grammar * csharp: replace duplicate information * Fix broken links * Add link to C# reference * csharp: add example for new concept exercise * csharp: example of reference * csharp: add contributing * csharp: add link * csharp: update links * csharp: add sidebar * csharp: update sidebar * csharp: more work * Tweak README * csharp: update README * csharp: add contributing information for reference documents * Add license * Add GitHub information to repository structure * Add subdivision for exercises directory in repository structure * Update language contributing text * Update languages/README.md Co-Authored-By: Jeremy Walker <[email protected]> * Update languages/README.md Co-Authored-By: Jeremy Walker <[email protected]> * csharp: add document for contributing to exercise-shared documents * templates: make implement new concept exercise template generic * Fix about * csharp: add suggest new exercise template * Add new concept exercise info * templates: add placeholder brackets * Add ask a question template * Update ask question template * Update markdown * Update contributing * csharp: update name * Update documents * Add links to all reference documents * Add links to implemented files * Add link to reference docs contributing * Improve links * Update links * csharp: remove dependencies * csharp: add more contributing * csharp: add readme for docs * Add links to analyzer/representer/test-runner * csharp: update strings * csharp: bitwise operations to fact-base * csharp: add defaults * csharp: convert tests to fact-based * csharp: add sidebars * csharp: add link * Change V3 to v3 * Consistent casing * csharp: change order * Update README * Update README.md * Tweak things further * More tweaks * Fix links * Fix typos * Change * csharp: rework readme * csharp: updates * csharp: update readme * csharp: update word * csharp: update * csharp: move concepts * Add reference doc * Fix template links * csharp: more work * Simplify * csharp: remove unused link * csharp: remove empty row * csharp: removing contributing * csharp: explain * Update README.md * Update README.md * Update README.md * Add maintainers docs * Add links * Update C# readme * Fix link * Fix link * Tweak repo structure document * Small improvements * csharp: fixes * csharp: more * Fix typo * Add converting details * structure: make it more clear * Add new README and docs * Split out readiness steps further * Split out online editor settings further * Tweak the repo structure docs a little * Tweak the README for clarity * Add new language docs * csharp: link directly to analyzer and representer * csharp: move concept interpretation to reference doc * csharp: small update * csharp: add online editor settings * csharp: add config.json example * csharp: more data * Use consistent example * Add online editor config changes * Update README.md Co-Authored-By: Erik Schierboom <[email protected]> * Update README.md Co-Authored-By: Erik Schierboom <[email protected]> * Update docs/_sidebar.md Co-Authored-By: Erik Schierboom <[email protected]> * Update docs/_sidebar.md Co-Authored-By: Erik Schierboom <[email protected]> * Update docs/concept-exercises.md Co-Authored-By: Erik Schierboom <[email protected]> * Update docs/concept-exercises.md * Update docs/maintainers/README.md Co-Authored-By: Erik Schierboom <[email protected]> * Apply suggestions from code review Co-Authored-By: Erik Schierboom <[email protected]> * Apply suggestions from code review Co-Authored-By: Erik Schierboom <[email protected]> * Update languages/csharp/docs/examples/new-concept-exercise-arrays.md Co-Authored-By: Jeremy Walker <[email protected]> * Update languages/csharp/docs/examples/new-concept-exercise-arrays.md Co-Authored-By: Jeremy Walker <[email protected]> * Move migrating config json file to separate file * Add more details * Add introduction for what maintainers actually need to do * Update README.md * Move things around for clarity * Fix tons of issues * Fix links * Fix links * More fixes * Fix things more * Revert link * Rephrase * Add maintainers * update * casing Co-authored-by: Charles Care <[email protected]> Co-authored-by: Erik Schierboom <[email protected]>
Do we also teach about async-await? Maybe in a more advanced promise concept exercise? |
Regarding the |
Asynchronous programming in JavaScript is probably one of the hardest concepts for beginners to grok. Would a general concept for asynchronous programming make sense divided into:
Also |
I agree with @paparomeo about the difficulty of the concepts, and think it is a good idea to use that order. |
@SleeplessByte I also have a question about those folders: What are they for? I mean what are the files in them being used for in v3? I think it would help to know, since I would not be sure what to write in them. Plus I would just link to MDN since there are pretty good explanation of (almost?) all of them. |
re: @paparomeo @Calamari My commentary here is to be taken at face value. I absolutely am very delighted by the input by both of you. Please keep doing it ❤️ and don't read in-between the lines, because there is nothing there. Considering
|
Thank you for the clarifications @SleeplessByte! |
Tracked by #951 |
This issue is to track the JavaScript v3 roadmap. If you intend to help with this track, please read this entire document, and find the section about "How can you help".
I have been working on the JavaScript v3 track by compiling a list of JavaScript specific concepts, transition documents from various languages and starting writing exercises. The concepts can be found here. Important things are to consistently realise, mention and reiterate that JavaScript types do not include "types" such as
Array
andDate
. Prototype-based programming is different than class-based programming.Folder structure
Specifics for javascript concepts can be found in the
/info
folder. There are other special folders such as/keywords
, which take the keyword, and explain what they do, as they are language-specific (mostly), and the/objects
folder which would be/types
in many other languages: it lists the global objects available.Concept exercises
The concept exercises in the JavaScript track are a work-in-progress and can be found in
/exercises/concept
. Important types of concepts to target are things that only exist in object-oriented programming (for people coming from non-oop languages), functions as a first class citizen (for people coming from non-functional languages), and javascript specifics:It is important to understand we never explain a specific type or syntax as a concept, but teach the more "abstract" concept around it, using the type(s) or syntax(is).
A list of exercises that we must have is compiled below, and is not at all a complete list:
/numbers
:"numbers"
,"type-conversion"
/strings
:"string"
/promises
:"promises"
"arrays"
,"array-analysis"
,"array-transformations"
,"array-destructuring"
"booleans"
"nullability"
"errors"
"callbacks"
,"closures"
"recursion"
⚠ Note ⚠: The idea here is to use a
concept
name for the folder, but perhaps use some sort of "progression", so they will naturally become a sort of path to traverse. In this example, thenumbers
exercise only teaches basic number usage, and doesn't look into more advanced subjects. I would expect to seenumbers-advanced
for mathy usage that is non-basic,numbers-irrational
showing how to do irrational / complex / whatever numbers,numbers-precision
which would explore binary representation and floating points,numbers-arbitrary-precision
which would explorebigints
and/or how to do that with decimals.It's only important that it's reasonably easy to find the exercise. It's okay if the name isn't perfect. We will iterate on this.
Concept interpretation
Here is how I've interpreted the following concept-keywords. This should be synced across tracks.
numbers
number
type and (for this language) see that it's whole numbers, and floating points. Know of basic operators such as multiplication. Know where it's documented, or at least how to search for it.strings
string
type. Know of some basic functions (like looking up a character at a position, or slicing the string). Know where it's documented, or at least how to search for it.promises
Promise
construct (future
type in some other languages), chain-ability, and.then
. Know where it's documented/how to search.arrays
Array
construct (array
type in some other languages). Know of some basic functions.errors
callbacks
recursion
type-conversion
This also indicates that for example
basic-strings
does not include knowing that JavaScript strings aren't strings in the compsci sense as in, they are made up of UTF-16 codepoints, and therefore there are a lot of catches with this.basic-numbers
does not talk about the%
operator and how it's remainder and not modulo, or the fact that binary operations on negative numbers are ... weird.How can you help?
This track
There are files in the
/info
,/keywords
and/objects
folders which are either empty or stubs. They need to be written. You can use the already filled-in ones to see what we're looking for.Globally
There are concepts missing.
Exercises
We need two types of exercises. The concept ones, as explained above -- you can chose to pick one from the list above or suggest, in this issue, one that's not listed. The other ones are the practise ones, which are like the v2 exercises.
Analyzers
TBD
The text was updated successfully, but these errors were encountered: