Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

All lessons: Remove/replace Replit suggestions #29180

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
4 changes: 2 additions & 2 deletions foundations/introduction/join_the_odin_community.md
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ When asking your question, please remember to include the context:

If you can't pinpoint the problem, you can share a **screenshot**. This is especially useful for showing the output of commands in the command line. In Discord, drag and drop your screenshot image file into the chat box to upload it, or use the PrtScn and paste keyboard shortcuts. If you don’t know how to take a screenshot on your computer, this is a good time to ask Google.

Screenshots are great for showing the output of commands or error messages in the command line. Screenshots are also great for showing the output from your code such as how the output looks visually on a webpage or console outputs in the browser. However, you should always include the corresponding files containing the error. Even if it is a short amount of code, providing it in the discord server in the proper format along with a screenshot of the output is helpful to those debugging it rather than just a screenshot. When you do share a screenshot of the output or how it looks visually make sure to push your project to GitHub or put your corresponding code in a [Replit](https://replit.com) so that others can comb through and debug the code. The screenshot of the output and the correlating code that can recreate the problem will help make it easier to understand the problem for people helping you. You'll learn all about GitHub very soon.
Screenshots are great for showing the output of commands or error messages in the command line. Screenshots are also great for showing the output from your code such as how the output looks visually on a webpage or console outputs in the browser. However, you should always include the corresponding files containing the error. Even if it is a short amount of code, providing it in the discord server in the proper format along with a screenshot of the output is helpful to those debugging it rather than just a screenshot. When you do share a screenshot of the output or how it looks visually make sure to push your project to GitHub or share your corresponding code using [CodePen](https://codepen.io) so that others can comb through and debug the code. The screenshot of the output and the correlating code that can recreate the problem will help make it easier to understand the problem for people helping you. You'll learn all about GitHub very soon.

Sometimes there might be no one around to help you with your issue. That is the ideal time to get familiar with the [Discord search function](https://support.discordapp.com/hc/en-us/articles/115000468588-Using-Search). Search for specific keywords or error messages to see if anyone else had a similar issue before and how they solved it!

@@ -121,7 +121,7 @@ If the question seems confusing or ambiguous, ask for more clarity, or politely

#### 7. Ask for live code

If the question needs to have live code to fully understand or debug, ask them to use [replit](https://replit.com) to provide it. If the problem is difficult to isolate, they should recreate the problem with isolated code.
If the question needs to have live code to fully understand or debug, ask them to use [CodePen](https://codepen.io) to provide it. If the problem is difficult to isolate, they should recreate the problem with isolated code.

#### 8. Do not answer googleable questions

28 changes: 10 additions & 18 deletions nodeJS/introduction_to_nodeJS/project_basic_informational_site.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### A Node website!

Check failure on line 1 in nodeJS/introduction_to_nodeJS/project_basic_informational_site.md

GitHub Actions / Lint project files

Required heading structure

nodeJS/introduction_to_nodeJS/project_basic_informational_site.md:1 TOP004/lesson-headings Required heading structure [Expected: ### Introduction; Actual: ### A Node website!] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP004.md

By now you should know enough to be dangerous. There's *definitely* more to learn but you already know enough about Node to actually make something! So let's do it! You will be creating a very basic informational site that contains 4 pages: index, about, contact-me and 404. Keep in mind that the content of these pages isn't really all that important. So there's no need to spend a lot of time filling them up or trying to make them look pretty.

@@ -9,23 +9,15 @@
<div class="lesson-content__panel" markdown="1">

1. Make a project directory and create the following files inside that directory:
- index.html
- about.html
- contact-me.html
- 404.html
- `index.html`
- `about.html`
- `contact-me.html`
- `404.html`

2. Create your node.js server file `index.js` and add the code needed to serve the right page according to the url.
- [localhost:8080](http://localhost:8080) should take users to index.html
- [localhost:8080/about](http://localhost:8080/about) should take users to about.html
- [localhost:8080/contact-me](http://localhost:8080/contact-me) should take users to contact-me.html
- 404.html should display any time the user tries to go to a page not listed above.
</div>

### Submitting a solution
If you're planning to submit a live demo with your student solution, one of the easiest ways to do that is using Replit. To do this:
1. Create your node.js server file `index.js` and add the code needed to serve the right page according to the url.
- [localhost:8080](http://localhost:8080) should take users to `index.html`
- [localhost:8080/about](http://localhost:8080/about) should take users to `about.html`
- [localhost:8080/contact-me](http://localhost:8080/contact-me) should take users to `contact-me.html`
- `404.html` should display any time the user tries to go to a page not listed above.

1. Go to [replit.com](https://replit.com)
2. Create a new repl
3. Enter the url for your submission github repo and click "Import from GitHub"
4. Change the language to Node.js
5. Click the "Run" button and you should get the URL to your demo in the URL bar of the repl's web view.
</div>
2 changes: 1 addition & 1 deletion ruby/advanced_ruby/blocks.md
Original file line number Diff line number Diff line change
@@ -22,16 +22,16 @@

This section contains a general overview of topics that you will learn in this lesson.

- What is a block?

Check failure on line 25 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:25 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "What is a block?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- How is a block like a method?

Check failure on line 26 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:26 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "How is a block like a method?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- What are the two ways to declare a block?

Check failure on line 27 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:27 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "What are the two ways to declare a block?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- Why would you use a block instead of just creating a method?

Check failure on line 28 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:28 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "Why would you use a block instead of just creating a method?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- What does `yield` do?

Check failure on line 29 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:29 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "What does `yield` do?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- How do you pass arguments to a block from within a method?

Check failure on line 30 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:30 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "How do you pass arguments to a block from within a method?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- How do you check whether a block was actually passed in?

Check failure on line 31 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:31 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "How do you check whether a block was actually passed in?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- What is a proc?

Check failure on line 32 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:32 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "What is a proc?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- What is a lambda?

Check failure on line 33 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:33 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "What is a lambda?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- What's the difference between a proc and a block?

Check failure on line 34 in ruby/advanced_ruby/blocks.md

GitHub Actions / Lint lesson files

Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.

ruby/advanced_ruby/blocks.md:34 TOP009/lesson-overview-items-sentence-structure Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period. [Lesson overview items must be statements, not questions, and must begin with a capital letter and end with a period.] [Context: "What's the difference between a proc and a block?"] https://github.com/TheOdinProject/curriculum/blob/main/markdownlint/docs/TOP009.md
- When would you use a proc instead of a block?
- What's different between a lambda and a proc?

@@ -366,7 +366,7 @@
# => localJumpError (unexpected return)
```

Note that if you try the above example on replit.com you won't get an error. This just has to do with how replit.com manages the context of code. If you try it in irb then you'll get the expected error.
Note that if you try the above example on an online REPL, you may not get an error. This just has to do with how they manage the context of code. If you try it in irb then you'll get the expected error.

If you return from a proc inside a method, the method is the context in which it was called and therefore it returns from the method before any of the other code below it is executed.

2 changes: 1 addition & 1 deletion ruby/advanced_ruby/pattern_matching.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ Introduced in Ruby 2.7, pattern matching uses specified patterns to match agains

With Ruby 3.1, most parts of the pattern matching syntax are no longer considered experimental, so it is now worth ensuring you are familiar with the basics. The syntax can feel a little clunky at first, but there are times it can definitely simplify Ruby code. There are a couple of new patterns with Ruby 3 which we'll introduce at the end.

If you want to play with the examples, make sure you're on at least Ruby 2.7 or use replit.com.
If you want to play with the examples, make sure you're on at least Ruby 2.7 or try an online REPL.

### Lesson overview

2 changes: 1 addition & 1 deletion ruby/basic_ruby/arrays.md
Original file line number Diff line number Diff line change
@@ -145,7 +145,7 @@ Here is a brief look at some other common array methods you might run into:

<div class="lesson-content__panel" markdown="1">

1. Read Launch School's chapter on [Arrays](https://launchschool.com/books/ruby/read/arrays), following along with the exercises using irb or any other REPL, such as [replit.com](https://replit.com/languages/ruby).
1. Read Launch School's chapter on [Arrays](https://launchschool.com/books/ruby/read/arrays), following along with the exercises using irb or any other REPL.
1. Read [The Definitive Guide to Ruby Arrays](https://www.rubyguides.com/2015/05/ruby-arrays/) by Jesus Castello.
1. Complete the array exercises from the [ruby-exercises repo](https://github.com/TheOdinProject/ruby-exercises) that you previously cloned.
1. Let's get some practice reading documentation. You'll feel just like a real programmer! What do you think the methods `#clear`, `#insert`, `#sample`, `#shuffle`, and `#uniq` do? Look these methods up in the [Array class documentation](https://docs.ruby-lang.org/en/3.3/Array.html). Were you close?
2 changes: 1 addition & 1 deletion ruby/basic_ruby/basic_data_types.md
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

Ruby is a strongly object-oriented language, which means that absolutely everything in Ruby is an object, even the most basic data types. We'll start here with four of Ruby's basic data types: numbers (integers and floats), strings, symbols, and Booleans (`true`, `false`, and `nil`).

For all of the examples throughout this lesson, feel free to follow along in irb or [replit.com](https://replit.com/languages/ruby) (an online REPL environment) to get a better feel for how they work.
For all of the examples throughout this lesson, feel free to follow along in irb or any online REPL to get a better feel for how they work.

### Lesson overview

2 changes: 1 addition & 1 deletion ruby/basic_ruby/basic_enumerable_methods.md
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ In previous lessons, you learned about loops as well as arrays and hashes. You w

We will run through the enumerable methods that you will most commonly use and see out in the wild. This is certainly not an exhaustive list, so be sure to have a look at the [Ruby docs](https://docs.ruby-lang.org/en/3.3/) to see what else the [Enumerable module](https://docs.ruby-lang.org/en/3.3/Enumerable.html) offers.

For all of the examples throughout this lesson, feel free to follow along in irb or [replit.com](https://replit.com/languages/ruby) (an online REPL environment) to get a better feel for how they work.
For all of the examples throughout this lesson, feel free to follow along in irb or any online REPL environment to get a better feel for how they work.

### Lesson overview

2 changes: 1 addition & 1 deletion ruby/basic_ruby/hashes.md
Original file line number Diff line number Diff line change
@@ -171,7 +171,7 @@ japanese_cars[:honda] #=> "Accord"

<div class="lesson-content__panel" markdown="1">

1. Read [Launch School’s chapter on Hashes](https://launchschool.com/books/ruby/read/hashes), and go through the exercises using irb or any other REPL, such as [replit.com](https://replit.com/languages/ruby).
1. Read [Launch School’s chapter on Hashes](https://launchschool.com/books/ruby/read/hashes), and go through the exercises using irb or any other REPL.
1. Complete the hash exercises from the [ruby-exercises repo](https://github.com/TheOdinProject/ruby-exercises) that you previously cloned.

</div>
2 changes: 1 addition & 1 deletion ruby/basic_ruby/input_and_output.md
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ My name is ALEX! :)

As you can see, the `puts` and `print` commands are quite similar, but you should have already noticed the small difference between the two: `puts` appends a new line to the argument passed in, whereas `print` keeps things all on one line. A very important thing to notice for both commands is that after printing whatever argument they are passed, `puts` and `print` both return `nil`.

To highlight the difference between `puts` and `print`, we're going to pull out a piece of rarely used Ruby syntax: [the semicolon](https://stackoverflow.com/questions/3953846/can-you-use-semicolons-in-ruby). In short, semicolons are never required in Ruby, but they allow you to run multiple Ruby commands all on one line. This type of [code golf](https://en.wikipedia.org/wiki/Code_golf) is not generally recommended, but it's helpful for this example. In a REPL, such as replit.com, the two statements can be written on separate lines without the semicolon and still produce the desired output. However, irb can read only one statement at a time, making the semicolons necessary for this code to work as intended.
To highlight the difference between `puts` and `print`, we're going to pull out a piece of rarely used Ruby syntax: [the semicolon](https://stackoverflow.com/questions/3953846/can-you-use-semicolons-in-ruby). In short, semicolons are never required in Ruby, but they allow you to run multiple Ruby commands all on one line. This type of [code golf](https://en.wikipedia.org/wiki/Code_golf) is not generally recommended, but it's helpful for this example. In a REPL, the two statements can be written on separate lines without the semicolon and still produce the desired output. However, irb can read only one statement at a time, making the semicolons necessary for this code to work as intended.

```ruby
irb(main):001:0> print "Hello World"; print "I love drinking coffee"
2 changes: 1 addition & 1 deletion ruby/basic_ruby/loops.md
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ Like me, you've probably experienced real-life loops when you were given detenti

If you find yourself needing to repeat an action more than once in your code, you probably need loops in your life.

For all of the examples in this lesson, you should code along in irb or [replit.com](https://replit.com/languages/ruby) (an online REPL environment) to get a better feel for how they work.
For all of the examples in this lesson, you should code along in irb or any online REPL environment to get a better feel for how they work.

### Lesson overview

2 changes: 1 addition & 1 deletion ruby/basic_ruby/predicate_enumerable_methods.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ In the previous lesson, you learned about some really handy enumerable methods l

This time, we're focusing on a particular subset of enumerable methods: the **predicate enumerable methods**. You should recall from the Methods lesson that a predicate method is indicated by a question mark (`?`) at the end of the method name and returns either `true` or `false`. Again, we won't be going through all of the predicate enumerable methods, so be sure to have a look at the [Ruby docs](https://docs.ruby-lang.org/en/3.3/) to see what else [Enumerable](https://docs.ruby-lang.org/en/3.3/Enumerable.html) offers.

For all of the examples throughout this lesson, feel free to follow along in irb or [replit.com](https://replit.com/languages/ruby) (an online REPL environment) to get a better feel for how they work.
For all of the examples throughout this lesson, feel free to follow along in irb or any online REPL environment to get a better feel for how they work.

### Lesson overview

2 changes: 1 addition & 1 deletion ruby/basic_ruby/variables.md
Original file line number Diff line number Diff line change
@@ -119,7 +119,7 @@ This example may be hard to completely understand at this point in the lesson. T
- [Overview of Variables](http://ruby-for-beginners.rubymonstas.org/variables.html)
- [Reusing Variable Names](http://ruby-for-beginners.rubymonstas.org/variables/reusing_names.html)
- [Things on the Right Go First](http://ruby-for-beginners.rubymonstas.org/variables/right_goes_first.html)
1. Open up a Ruby [replit.com](https://replit.com/languages/ruby) or use IRB in your command line and try naming some variables and assigning values to them. Don't worry so much about good naming conventions at this stage. Instead, experiment with different variable names and see what is valid. Try using symbols or numbers in your variable names. Try assigning a variable to another variable and observe the behavior when using `upcase!`, as in the example above. If you come across anything quirky, Google it to find out why it happened.
1. Use an online REPL environment or IRB in your command line and try naming some variables and assigning values to them. Don't worry so much about good naming conventions at this stage. Instead, experiment with different variable names and see what is valid. Try using symbols or numbers in your variable names. Try assigning a variable to another variable and observe the behavior when using `upcase!`, as in the example above. If you come across anything quirky, Google it to find out why it happened.

</div>

2 changes: 1 addition & 1 deletion ruby/basic_ruby_projects/project_caesar_cipher.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ By now you should feel pretty good working with strings, arrays and hashes. We'l

<div class="lesson-note" markdown="1">

If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type `irb` after the prompt), or run it from a script file using `$ ruby ./your_file_name_in_the_current_directory.rb`, or use the online editor at [replit.com](http://replit.com/languages/Ruby).
If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type `irb` after the prompt), run it from a script file using `$ ruby ./your_file_name_in_the_current_directory.rb`, or use any other type of REPL.

</div>

3 changes: 2 additions & 1 deletion ruby/basic_ruby_projects/project_stock_picker.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ By now you should feel pretty good working with strings, arrays and hashes. We'l

<div class="lesson-note" markdown="1">

If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type `irb` after the prompt), or run it from a script file using `$ ruby ./your_file_name_in_the_current_directory.rb`, or use the online editor at [replit.com](http://replit.com/languages/Ruby).
If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type `irb` after the prompt), run it from a script file using `$ ruby ./your_file_name_in_the_current_directory.rb`, or use any other type of REPL.

</div>

@@ -23,4 +23,5 @@ Implement a method `#stock_picker` that takes in an array of stock prices, one f

- You need to buy before you can sell
- Pay attention to edge cases like when the lowest day is the last day or the highest day is the first day.

</div>
2 changes: 1 addition & 1 deletion ruby/basic_ruby_projects/project_sub_strings.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ By now you should feel pretty good working with strings, arrays and hashes. We'l

<div class="lesson-note" markdown="1">

If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type `irb` after the prompt), or run it from a script file using `$ ruby ./your_file_name_in_the_current_directory.rb`, or use the online editor at [replit.com](http://replit.com/languages/Ruby).
If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type `irb` after the prompt), run it from a script file using `$ ruby ./your_file_name_in_the_current_directory.rb`, or use any other type of REPL.

</div>