<p>I'd recommend that you look into <a href="https://sinatrarb.org" rel="nofollow noreferrer">sinatra</a> or one of the tutorials that are linked from <a href="https://www.ruby-lang.org/en/documentation/quickstart/" rel="nofollow noreferrer">the ruby docs</a>. They also have a specific tutorial in the docs for <a href="https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/" rel="nofollow noreferrer">moving to ruby from another language</a>.</p>

<p>The reason I'd recommend sinatra is because it is an intro to what ruby is mainly used for in the real world: Web Development. A huge part of ruby is <a href="http://rubyonrails.org/" rel="nofollow noreferrer">ruby on rails</a>.</p>

<p>A very interesting thing about ruby that you'll learn from the beginning is it's approach to OO. The simple phrasing is "everything is an object".</p>

<p>Enjoy ruby, it's a pretty great language.</p>

CC BY-SA 3.0
2017-06-25T21:20:19.237Z
2017-06-25T21:20:19.237Z
thesecretmaster
<p>This is a different sort of answer than what you may be hoping for, but I'd really recommend that you deepen your knowledge of Python first. Learn to be pythonic, learn its OOP aspects. Learn its dynamic aspects. Become a Python Wizard. </p>

<p>The reason for this advice, since you are fairly new at this, is that there is a danger that you will try to learn too many languages too soon and start to think of them syntactically only. There are a lot of "java programmers" for example, who only write C code. </p>

<p>Let me give an analogy from another field. I used to be a very good photographer. I had one manual film camera with a light meter and three lenses. One was a zoom lens since I wanted to backpack with not too much equipment. At that point I could take really nice photos. Artistic. Later I got lots of cameras, lots of lenses, lots of other "stuff" and my ability to really take good photos went down, not up. Too many tools in your tool box is not a help, especially for a beginner. </p>

<p>So, build skill first, then branch out. One big idea is called "creativity under constraint". How much can you do if you artificially restrict your tool set? It sounds dumb at first, but with fewer tools your brain becomes your best and most powerful tool. Suppose your language didn't have loops. What can you still do? Recursion of course, but in an OOP language there are other options. Suppose, instead, it didn't have any sort of selection statements (if/switch...). Can you still write any program? Some become very difficult to write, but attempting to do this increases your brain power. Big Idea here. </p>

CC BY-SA 3.0
2017-06-26T00:27:33.573Z
2017-06-26T00:27:33.573Z
Buffy
<p>I have some students in highschool who already understand programming concepts (generally), and are fairly familiar with Python's syntax and logic, and have a beginning awareness of OOP in Python. I'd like them to get a quick crash course in Ruby for fun and general awareness of the language. The intent is to be able to write basic code in Ruby, both for web applications and back end applications using Rails. </p>

<p>What would be a web course, or website I could have them read, that would bring them up to speed in the basics of Ruby so they could start writing code in it? I'd like it to be free. </p>

<hr>

<p>(I'm self-teaching, but this is rephrased as if I was teaching a class.)</p>

CC BY-SA 3.0
2017-06-25T20:57:03.837Z
I'm not sure how this question will fare, given that resource requests are usually frowned up on Stack Exchange.
thesecretmaster
CC BY-SA 3.0
2017-06-25T20:59:03.500Z
@thesecretmaster not really - on Physics.SE for example they are welcomed - it varies on the site. I thought [this meta thread's consensus](https://cseducators.meta.stackexchange.com/questions/112/are-resource-requests-on-topic) was in favor of allowing resource recommendations.
auden
CC BY-SA 3.0
2017-06-25T21:02:31.390Z
As a note, [self-teaching](https://cseducators.meta.stackexchange.com/q/23/166) is on-topic here, so it's probably fine to frame the question in that regard.
Scimonster
CC BY-SA 3.0
2017-06-25T21:15:32.453Z
By "starting writing code in it," what sort of code do you mean? Back-end Ruby using a framework like Rails? By "familiar with Python," do you mean familiar with OOP or just general syntax/logic? I have a couple resources in mind, one of which is a) at a university level, and b) part of a more theoretical study of programming languages. What is the intent of learning Ruby? Fun? Web development? Clarify this information, and you will get better resources.
Peter
CC BY-SA 3.0
2017-06-25T21:40:53.377Z
@Peter I edited to try to answer some of your questions.
auden
CC BY-SA 3.0
2017-06-25T23:19:50.353Z
"web applications and back end applications using Rails" is redundant.
thesecretmaster
CC BY-SA 3.0
2017-06-26T17:19:16.890Z
I just want to thank you for bringing your enthusiasm for learning here. Your future is bright. Shine on.
Buffy
<self-learning><resource-request><ruby>
A quick ruby crash course
# A quick ruby crash course

(Asked by: username_0 on 2017-06-25)

I have some students in highschool who already understand programming concepts (generally), and are fairly familiar with Python's syntax and logic, and have a beginning awareness of OOP in Python. I'd like them to get a quick crash course in Ruby for fun and general awareness of the language. The intent is to be able to write basic code in Ruby, both for web applications and back end applications using Rails.

What would be a web course, or website I could have them read, that would bring them up to speed in the basics of Ruby so they could start writing code in it? I'd like it to be free.

---

(I'm self-teaching, but this is rephrased as if I was teaching a class.)

**Tags:** self-learning, resource-request, ruby

> **Comments:**
> **username_1**: I'm not sure how this question will fare, given that resource requests are usually frowned up on Stack Exchange.  
> **username_0**: @username_1 not really - on Physics.SE for example they are welcomed - it varies on the site. I thought [this meta thread's consensus](https://cseducators.meta.stackexchange.com/questions/112/are-resource-requests-on-topic) was in favor of allowing resource recommendations.  
> **username_2**: As a note, [self-teaching](https://cseducators.meta.stackexchange.com/q/23/166) is on-topic here, so it's probably fine to frame the question in that regard.  
> **username_3**: By "starting writing code in it," what sort of code do you mean? Back-end Ruby using a framework like Rails? By "familiar with Python," do you mean familiar with OOP or just general syntax/logic? I have a couple resources in mind, one of which is a) at a university level, and b) part of a more theoretical study of programming languages. What is the intent of learning Ruby? Fun? Web development? Clarify this information, and you will get better resources.  
> **username_0**: @username_3 I edited to try to answer some of your questions.  
> **username_1**: "web applications and back end applications using Rails" is redundant.  
> **username_4**: I just want to thank you for bringing your enthusiasm for learning here. Your future is bright. Shine on.  

---

## 2 answers

### Answer by username_4 on 2017-06-26. Score: 5 | Accepted answer

This is a different sort of answer than what you may be hoping for, but I'd really recommend that you deepen your knowledge of Python first. Learn to be pythonic, learn its OOP aspects. Learn its dynamic aspects. Become a Python Wizard.

The reason for this advice, since you are fairly new at this, is that there is a danger that you will try to learn too many languages too soon and start to think of them syntactically only. There are a lot of "java programmers" for example, who only write C code.

Let me give an analogy from another field. I used to be a very good photographer. I had one manual film camera with a light meter and three lenses. One was a zoom lens since I wanted to backpack with not too much equipment. At that point I could take really nice photos. Artistic. Later I got lots of cameras, lots of lenses, lots of other "stuff" and my ability to really take good photos went down, not up. Too many tools in your tool box is not a help, especially for a beginner.

So, build skill first, then branch out. One big idea is called "creativity under constraint". How much can you do if you artificially restrict your tool set? It sounds dumb at first, but with fewer tools your brain becomes your best and most powerful tool. Suppose your language didn't have loops. What can you still do? Recursion of course, but in an OOP language there are other options. Suppose, instead, it didn't have any sort of selection statements (if/switch...). Can you still write any program? Some become very difficult to write, but attempting to do this increases your brain power. Big Idea here.


---

### Answer by username_1 on 2017-06-25. Score: 3

I'd recommend that you look into [sinatra](https://sinatrarb.org) or one of the tutorials that are linked from [the ruby docs](https://www.ruby-lang.org/en/documentation/quickstart/). They also have a specific tutorial in the docs for [moving to ruby from another language](https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/).

The reason I'd recommend sinatra is because it is an intro to what ruby is mainly used for in the real world: Web Development. A huge part of ruby is [ruby on rails](http://rubyonrails.org/).

A very interesting thing about ruby that you'll learn from the beginning is it's approach to OO. The simple phrasing is "everything is an object".

Enjoy ruby, it's a pretty great language.


---

