All Projects → mhuebert → Maria

mhuebert / Maria

A ClojureScript coding environment for beginners.

Programming Languages

clojure
4091 projects
clojurescript
191 projects

Projects that are alternatives of or similar to Maria

Learn Vim
Learning Vim and Vimscript doesn't have to be hard. This is the guide that you're looking for.
Stars: ✭ 7,221 (+2088.18%)
Mutual labels:  beginner, learning
Tic Tac Vue
A simple Tic-Tac-Toe game written in Vue.
Stars: ✭ 29 (-91.21%)
Mutual labels:  learning, beginner
Learn Vim
Vim 实操教程(Learning Vim)Vim practical tutorial.
Stars: ✭ 1,166 (+253.33%)
Mutual labels:  learning, beginner
Lev
The complete REPL & CLI for managing LevelDB instances.
Stars: ✭ 295 (-10.61%)
Mutual labels:  repl
Docker Basiclearning
🐬 Understand Docker step by step. A tutorial repo for beginners 🔥
Stars: ✭ 296 (-10.3%)
Mutual labels:  beginner
Oppia
A free, online learning platform to make quality education accessible for all.
Stars: ✭ 4,361 (+1221.52%)
Mutual labels:  learning
Web Dev For Beginners
24 Lessons, 12 Weeks, Get Started as a Web Developer
Stars: ✭ 39,380 (+11833.33%)
Mutual labels:  learning
Oh My Git
An interactive Git learning game!
Stars: ✭ 250 (-24.24%)
Mutual labels:  learning
50 Projects For React And The Static Web
⚛ 50 project ideas to learn by doing complete with project briefs, layout ideas, and resources!
Stars: ✭ 319 (-3.33%)
Mutual labels:  learning
Medical Datasets
tracking medical datasets, with a focus on medical imaging
Stars: ✭ 296 (-10.3%)
Mutual labels:  learning
Learnings
Java技术栈Demo与精彩文章汇总
Stars: ✭ 303 (-8.18%)
Mutual labels:  learning
Gitstery
A Git Murder Mystery
Stars: ✭ 297 (-10%)
Mutual labels:  learning
Quack
🐤 A multi-paradigm programming language with gradual and duck typing that targets PHP and JS
Stars: ✭ 309 (-6.36%)
Mutual labels:  repl
R
All Algorithms implemented in R
Stars: ✭ 294 (-10.91%)
Mutual labels:  learning
Softwarerenderer
Software rendering engine with PBR. Built from scratch on C++.
Stars: ✭ 323 (-2.12%)
Mutual labels:  learning
Sharplearning
Machine learning for C# .Net
Stars: ✭ 294 (-10.91%)
Mutual labels:  learning
Awesome Android Learner
Awesome for mobile dev learning
Stars: ✭ 316 (-4.24%)
Mutual labels:  learning
Byebug
Debugging in Ruby 2
Stars: ✭ 3,202 (+870.3%)
Mutual labels:  repl
Basic Mathematics For Machine Learning
The motive behind Creating this repo is to feel the fear of mathematics and do what ever you want to do in Machine Learning , Deep Learning and other fields of AI
Stars: ✭ 300 (-9.09%)
Mutual labels:  beginner
Machine Learning For Beginner By Python3
为机器学习的入门者提供多种基于实例的sklearn、TensorFlow以及自编函数(AnFany)的ML算法程序。
Stars: ✭ 305 (-7.58%)
Mutual labels:  beginner

Maria

The ClojureScript coding environment for beginners.

(Part editor, part curriculum. A collaborative work by @daveliepmann, @jackrusher, and @mhuebert.)

Why?

Our work is not to teach, but to help the absorbent mind in its work of development. –Maria Montessori

A recurring problem newcomers have with Clojure is that one must learn everything at once: the JVM, and stack traces, and a new editor, and functional programming, and and and.... What if we shielded folks new to Clojure from the complexity of tooling, stack traces, and programming language esoterica? What if we got out of their way and let them feel the power of programming for themselves? This project aims to delay or remove as many of these obstacles as possible so that people can explore.

The Maria editor is a code playground. There is no installation, zero configuration, and explaining how to make it work takes approximately one sentence. Clojure's sharp edges are rounded off, for instance, by wrapping stack traces so errors are presented humanely. A handful of helper functions do the same for types and SVG shapes. We use in-place evaluation because we find it the most effective and humane way to interact with a computer.

The curriculum we use alongside the editor uses progressive disclosure of the language, to prevent overwhelming folks. Instead of explaining all Clojure's many features as a functional, hosted lisp--which is a big topic--we introduce folks to programming and let language features follow. In this spirit, we named the project after pedagogical pioneer Maria Montessori, whose method "stresses the development of a [learner's] own initiative and natural abilities, especially through practical play" and "at their own pace".

Play

So...please go to maria.cloud and play around with it live! :)

Contributing

We welcome your effort to make the beginner's path to Clojure smoother. Here's how:

Contributing to fixing bugs

The most helpful thing you can do is simply play around! 😸 and report bugs as GitHub issues.

Contributing to better error messages

While you play around, please send us any un-wrapped Clojure error you find. We track these in the Error Handling wiki. This is so helpful for making errors easier for new people!

Please edit the wiki directly to add your experience. Or, file a GitHub issue explaining what you were doing and what error came up. Our goal with this is to protect users from jargon-filled error messages, and that requires lots of eyes pointing out all the ways a particular error could cause trouble.

Contributing to the curriculum

Like Clojure itself, the Maria curriculum is open-source, but is not primarily a community effort. We've chosen a particular approach and we write with a particular voice for a particular audience. Therefore other approaches, although valid, may not belong here. With that caveat, those of us who write the curriculum are open to contributions, which have been accepted according to these rough guidelines:

  • for typos, bugs, and obvious mistakes, we actively welcome your issues and pull requests

  • if you built something cool, please show us! :) it may end up in our Gallery of examples, if you're OK with that

  • for more substantial contributions, from suggestions for phrasing up to entirely new modules, we ask that you do the following to be on the same page as us:

    With that shared understanding attained, please get in touch with us by email so we can discuss ideas in depth.

Development

First, copy to your local machine and navigate to the editor directory:

git clone https://github.com/mhuebert/maria.git;
cd maria/editor

Now, within the editor directory, install javascript dependencies and compile stylesheets:

npm install;

build in development mode, start a local server, and live-reload changes:

npm run watch;

When these builds have completed, open your web browser to https://localhost:8701 (note that dev servers are run via https)

running a REPL

The default nrepl port, configured in shadow-cljs.edn, is 7888.

Once connected, the following will print out a list of things you can do:

(require '[shadow.cljs.devtools.api :as shadow])
(shadow/help)

to directly enter the live environment (provided you've opened up your browser):

(shadow.cljs.devtools.api/repl :live)

make a production build:

npm run release;

License

The curriculum is licensed as Creative Commons Attribution 4.0 (CC BY 4.0).

The Shapes and Friendly libraries are distributed under the Eclipse Public License 2.0.

See LICENSE files in relevant subdirectories.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].