Introduction into fundamentals
broesamle opened this issue · 7 comments
It would be really cool if we could decide on a set of intuitively workong metaphors (not having to explain things in a technical fasion), yet, putting people into the position to make the right decisions/understand problems they will encounter when working with rust (or other systems languages):
The following structured list links to the ruby material mentioned in the meetings, but will help us not to forget essential things:
- text editor
- instruction (console)
- program (text file with instructions; maybe a simle bash script)
- compile time / runtime
- instruction, program
- I see some cap between what ruby puts at the core to what rust puts at the core :-)
- our central motivation is the system and multiple threads
- thread
- private/shared ressources
- data, variable
- how data (and memory) is organized
- arrays/vectors
- fixed size (size known at compile time)
- dynamically changing size
- ((hiding away the details of stack, heap)
- instructions manipulate data (see instruction, above)
I like this approach, because it gives you an immediate experience of control + experience
https://www.codecademy.com/courses/programming-intro/0/4
Similarly, Rust by Example, with more complex terminology/links into the real world, though.
At the same time, it tends to be language/technology oriented and not so much tuned towards a (however small) project idea. After all, getting started with editor, console, compiler on some (your) machine is a crucial ingredient of a reasonable rust project.
Nice way of explaining why programming is necessary (and complex) at the time.
http://www.programmingbasics.org/en/beginner/gettingstarted.html
Unfortunately, I could not track down any organisation behind ... it just states a name, but no address/affiliation.
http://www.programmingbasics.org/en/beginner/commands.html
I imagine the same basic level of explaining everything for setting up your built system and compile a first program. At the same time I like the way of putting the central paradigm of object oriented programming.
Imho, for rust this would be the machine/the system/the instruction/the data representation.
Ok, I'm trying to be really basic and "anschaulich" / ostensive / imaginable
updated the link:
https://github.com/broesamle/RustWorkshop/tree/master/minimals
An older version of @nikomatsakis's intro slides can be found here. It is oriented more towards experienced programmers though.
Some folks from the SF meetup made a first pass on this in the https://github.com/rust-community/rustbridge/tree/master/workshops/beginners workshop.
Good reference material can be found on rustbyexample.com, being developed in https://github.com/rust-lang/rust-by-example.