Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-25T21:20:19.237Z
Answers.LastActivityDate: 2017-06-25T21:20:19.237Z
Answers.UserDisplayName: thesecretmaster
Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-26T00:27:33.573Z
Answers.LastActivityDate: 2017-06-26T00:27:33.573Z
Answers.UserDisplayName: Buffy
Body: <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>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-25T20:57:03.837Z
Comments.Text: I'm not sure how this question will fare, given that resource requests are usually frowned up on Stack Exchange.
Comments.UserDisplayName: thesecretmaster
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-25T20:59:03.500Z
Comments.Text: @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.
Comments.UserDisplayName: auden
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-25T21:02:31.390Z
Comments.Text: 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.
Comments.UserDisplayName: Scimonster
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-25T21:15:32.453Z
Comments.Text: 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.
Comments.UserDisplayName: Peter
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-25T21:40:53.377Z
Comments.Text: @Peter I edited to try to answer some of your questions.
Comments.UserDisplayName: auden
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-25T23:19:50.353Z
Comments.Text: "web applications and back end applications using Rails" is redundant.
Comments.UserDisplayName: thesecretmaster
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-26T17:19:16.890Z
Comments.Text: I just want to thank you for bringing your enthusiasm for learning here. Your future is bright. Shine on.
Comments.UserDisplayName: Buffy
Tags: <self-learning><resource-request><ruby>
Title: A quick ruby crash course
ThreadText: # 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.
  
  
  ---
  
  