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

Emmy Morris #447

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
31 changes: 22 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,27 @@ Each day has a folder containing a `README.md` file with instructions for the da

### Pre-work Index

* [Day 0 - More Terminal Practice](day_0)
* [Day 1 - Strings and Numbers](day_1)
* [Day 2 - Arrays and Iteration](day_2)
* [Day 3 - If Statements and Loops](day_3)
* [Day 4 - Methods and Return Values](day_4)
* [Day 5 - Hashes](day_5)
* [Day 6 - Classes](day_6)
* [Day 7 - Build A Thing](day_7)
* [Section 1 - SUPER LEARNERS, Terminal and Ruby Foundations](section1)
* [Section 2 - ASKING QUESTIONS, Conditionals and Methods](section2)
* [Section 3 - GROWTH MINDSET, Hashes](section3)
* [Section 4 - HOW YOU USE YOUR TIME, Objects and Classes](section4)
* [Final Project - Final Project and Submission](finalProject)

## What to Expect

Through completing this pre-work, you can expect to get practice re-inforcing what you learned/are learning in Mod 0, learn more technical content, and deeply reflect on your mindsets and habits and start thinking about which of those mindsets and habits will help you learn to code, and which of those you may need to change.

We will remind you of the best practices that follow from time-to-time, but to ground yourself in the work ahead, read them carefully.

## Best Practices: Learning to Write Code

**If you are stuck for longer than 30 minutes, know that it is always ok to ask for help!** The process of becoming a software developer is difficult, and learning to code is hard. At some point, everyone struggles. Struggle is a normal, healthy part of the learning process - don't give up if you hit a hard spot. If you consistently practice every day and don't take shortcuts, you will be on the path to learning how to code. When you reach out for help, challenge yourself to ask clear questions and use technical vocabulary. Speaking accurately about code is a great way to help lock in technical understanding. Use [this guide](https://gist.github.com/ericweissman/fb0241e226227867b6bc70a4d49227f5) to learn the optimial way to ask for help when you get stuck!

**Process over Product.** When asking for help, do your best to seek understanding rather than `the answer` or `the solution`. Even if your helper gets you a solution that works, make sure to spend time on *why* it works, rather than just accepting the solution and moving on.

**Type every line of code.** One of the best things you can do to set yourself for success is to make sure you type out all the code examples you see in the readings and exercises in this pre-work, *do not* copy and paste. The more hands-on-keyboard practice you can give yourself, the better. Copying and pasting won't help you solidify these concepts, manually typing all the code in will. This also applies to auto complete features in popular text editors. They are helpful, no doubt, but doing things the hard way at the beginning is a great way to hone your workflow later on.

**Details matter.** Pay close attention to small details in syntax, spacing, and language. The most detailed oriented you are as you're working, the more reliable and well-crafted your code will be. In programming, being detail oriented helps cut down on buggy code and difficult to use systems. It can also help you notice differences in your code, enabling you to identify typos and mistakes more quickly.

# Environment

Expand Down Expand Up @@ -228,7 +241,7 @@ From here on out, all the work you do will be in your personal copy of this repo

Here's _another_ video walk-through you may find helpful:

[![Walkthrough Day 1 and Git stuff](/images/backend-prework-day-one-thumb.jpg)](https://youtu.be/HYAzk6L63ek "Video Walkthrough for Day 1 & Git Stuff")
[![Walkthrough Git stuff](/images/backend-prework-day-one-thumb.jpg)](https://youtu.be/HYAzk6L63ek "Video Walkthrough for Git Stuff")

Each day's `README` will walk you through the necessary steps to save your work.

Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
27 changes: 27 additions & 0 deletions finalProject/10_speckled_frogs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## 10 Speckled Frogs

Create a file named `10_speckled_frogs.rb` and within that file, write several a program that will print the following nursery rhyme:

> 3 speckled frogs sat on a log
> eating some most delicious bugs.
> One jumped in the pool where its nice and cool,
> then there were 2 speckled frogs.
>
> 2 speckled frogs sat on a log
> eating some most delicious bugs.
> One jumped in the pool where its nice and cool,
> then there was 1 speckled frogs.
>
> 1 speckled frog sat on a log
> eating some most delicious bugs.
> One jumped in the pool where its nice and cool,
> then there were no more speckled frogs!

### Required
Make your program print the rhyme above for *10* frogs, with attention to where language changes.

### Extension 1
Print word versions of each number in the first and fourth lines, for example, the first verse in the above example would print 'Three speckled frogs...' and 'were two speckled frogs'.

### Extension 2
Make your program work for any number of frogs.
48 changes: 48 additions & 0 deletions finalProject/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Final Project

## Project Specifications

Using what you have learned so far, complete the challenges below. Put any files related to the projects you choose in `finalProject` directory.

_Note:_ These should be challenging, and require to apply most of the content covered in this pre-work. The use of google is absolutely allowed as you may need to brush up on syntax, etc. However, we strongly discourage you from googling for solution pathways to these problems - the point of these is to push you to think like the programmer you are and apply the knowledge you've built so far in slightly different ways.

* [FizzBuzz](./fizzbuzz.md)
* [10 Speckled Frogs](./10_speckled_frogs.md)
* [Ceasar Cipher](./ceasar_cipher.md)

## Next Steps

Depending on if you are in Section A or B, you have anywhere between 1.5-3.5 weeks before you start Mod 1. This is an important time to take care of life things such as doctor appointments, dog park trips, quality time with friends and family, etc. It is also important that you maintain the knowledge and skills you acquired during Mod 0 and this pre-work. You can absolutely do both, but to do so successfully, **you need a plan**. We recommend spending, on average, 1-2 hours a day coding (totally 20-40 hours of time).

What is your plan and how are you going to hold yourself to it? Specifically...
- What are you going to work on? [Resources here](https://github.com/turingschool-examples/fe-m1-practice)
- What days are you going to work?
- What times on those days are you going to work?
- Where you going to be sitting/standing as you do this?
- Where are you documenting this plan? Google Calendar, calendar on your wall, your journal?
- Do any stakeholders in your life know about this plan? (The answer needs to be yes by the time you answer this...)
- What personal items/events are important to you during this time? How are you going to make sure those are not neglected? (Hint, block time on the calendar for them!)

### Final Pre-work Submission

When you have completed *all* the activities described above, follow the steps below to submit your technical prework.

1. Go to *your* prework repository on GitHub
1. Click on `New Pull Request` per the image below:

![New PR](https://i.imgur.com/lGKNxwC.png)

<br>
2. On the Pull Request page, make sure you see something similar to below (but with your username):

![New PR](https://i.imgur.com/CwJH8os.png)

<br>
3. Click on `Create New Pull Request` (circled in the image above).
4. Enter `YOUR NAME` as the title of the pull request, and click `Create pull request` as shown below:

![Create PR](https://i.imgur.com/CQQzfNc.png)

5. Please complete the form to submit your prework available [here](https://forms.gle/wxoVuhHKjrRyvGW2A). Be sure to include links for your Gear Up pre-work gist and your technical pre-work GitHub repository. The link to your technical pre-work GitHub repository will be in the format https://github.com/YOUR_GITHUB_USERNAME/frontend-mod-1-prework. (using _your_ own GitHub username)

🏔You did it! This is the end of the pre-work. Continue to monitor slack (and emails from GitHub) for feedback from your instructor.
16 changes: 16 additions & 0 deletions finalProject/ceasar_cipher.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Ceasar Cipher

Also known as a shift cipher, the Ceasar Cipher is one of the oldest and simplest encoding techniques. A Ceasar Cipher works by shifting the alphabet by a defined number of letters down the alphabet. For example, with a left shift of 3, 'D' would be replaced by 'A', 'E' would be replaced by 'B', and so on. See below for a full alphabet example with a left shift of 3:

```
plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
cipher: XYZABCDEFGHIJKLMNOPQRSTUVW
```

Create a file named caesar_cipher.rb and within that file, write a program that will take any string, and encode it based on a shift value provided by the user. The interaction pattern for this program might look something like this:

```
cipher = CeasarCipher.new
cipher.encode("Hello World", 5)
=> "CZGGJ RJMGY"
```
13 changes: 13 additions & 0 deletions finalProject/checker_board.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Checker Board

Create a file called checker_board.rb and within that file, write a program that will print a checkerboard based on the size *indicated by the user*. On this board, the black spaces will be represented with 'X' and the white spaces will be represented with ' '. An example of the output for a size 6 board would look like this:

```
X X X
X X X
X X X
X X X
X X X
X X X
```

16 changes: 16 additions & 0 deletions finalProject/fizzbuzz.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## FizzBuzz

Create a file named fizzbuzz.rb and within that file, write a program that prints something for each number from 1 to 100 with the following rules:

* For any number that is a multiple of 3, print 'Fizz'
* For any number that is a multiple of 5, print 'Buzz'
* For any number that is a multiple of both 3 and 5, print 'FizzBuzz'
* For all other numbers, print the number.

The output of your program will look something like this:
```
=> 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, ..., 98, Fizz, Buzz
```

### Bonus
Can you write the program so that it will run for any range of numbers?
Loading