rust-community/rustbridge

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:

essential handling skills

  • text editor
  • instruction (console)
  • program (text file with instructions; maybe a simle bash script)
  • compile time / runtime
  • instruction, program

ruby philosophy

  • 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 types

  • 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)

operations

  • 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.