Skip to content

GA-SF/prework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

GA Logo

WDI Prework

Dear WDI Student,

The goal of this prework is to provide exposure to crucial concepts in web-based programming that we'll be returning to and covering in-depth during the course. It should take approximately 70-80 hours to complete, so plan ahead and give yourself ample time.

IMPORTANT: Completion of this prework is absolutely mandatory.

As mentioned in your welcome email, you will have 2 check-ins: the first is to see how you’re doing and to verify progress, and the second will be a code-based quiz to test your skills.

Please reach out to your course producer if you have any questions about anything or need help. Happy coding and get ready to be immersed for 12 straight weeks!

##Equipment and Software

###Strongly Suggested Hardware/Software

Most web developers, including our instructional team, use Macs to do their development. We will be able to provide the most support for you if you have one as well.

  • Computer: MacBook Air or MacBook Pro
  • Operating System: OSX Mountain Lion (10.7) or greater
  • Text Editor: Sublime Text 3 (You do not have to purchase this!)
  • Internet Browser: Google Chrome

If you plan on updating your OS at some point over the next few months, be sure to do so before you come to Installfest. It's never a good idea to update your entire system during a class or a major project.

If you plan on using a PC, we will need to make sure you're running a flavor of Linux called Ubuntu. Let us know if you plan on taking this route and we can discuss the best way to support you.

The prework does not require any specific software or configuration other than a browser, and we designed it that way for a reason. Installing software and setting up your development environment can be one of the most frustrating parts of starting out as a web developer.

Prior to class, we will have an “Installfest” to install and configure your development environment (If you don't do it correctly, you may need to start over) while giving you an opportunity to get to know your classmates.

PLEASE DO NOT try to install anything else (Ruby, Rails, PostgreSQL, etc.) until Installfest, as bad installs can cause serious, frustrating problems. If you’ve already set up your development environment, we recommend making a backup of your settings.

###Account Signups

Sign up for the following accounts that you'll be using for the prework and during class:

Be sure to keep your usernames and passwords in a safe but accessible place so you can get to them once the course begins.


#PART 1 - Computer Basics

Before we dive into programming, make sure you know your way around your computer like a developer. Practice incorporating keyboard shortcuts into your day-to-day computer use. They may be hard to remember at first, but learning them will make you exponentially faster using your computer. Try to memorize them and minimize how much you use your mouse.

Come back and practice to this section again and again as you move onto other sections. Learning to use your computer efficiently and typing quickly are the MOST CRITICAL parts of the prework.

##OSX Basics (1 hour)

Before we dive into programming, make sure you know your way around your computer like a developer. Almost everything that can be done in your OS can be accomplished with a keyboard shortcut. It’s vital that you familiarize yourself with your OS and be able to switch programs, windows, tabs, copy, paste, save, without relying on your mouse.

###Resources:

###Assess Yourself:

  • Use keyboard shortcuts to do the following:
  • Open a program using Spotlight
  • Quit a program
  • Open a new browser tab
  • Close a window
  • Close a browser tab
  • Toggle through open applications
  • Toggle through open tabs
  • Save a file
  • Select all, copy, cut and paste
  • Find in a page

##Typing (1 hour)

Learn to type quickly. It will be a major hindrance in your productivity and ability to keep up during lectures, codealongs, labs, and group projects. Come back to this section to practice even as you move onto other sections.

###Resources:

  • 10 Fast Fingers Regular touch-typing (not looking at your fingers)
  • Typing.io These exercises are to help you get comfortable typing those awkward programming characters. Work through the following tracks: JavaScript jQuery, Ruby on Rails, Less Bootstrap, and Shell Git

###Assess Yourself:

  • 40+ wpm - Make sure that you are touch-typing regular text at least 40 wpm and shoot for 50+.
  • 20 wpm in code - You'll be coding along and pair programming quite a bit in class, so this is essential in not falling behind.

##Command Line Basics (4 hours)

The command line is a new way you'll be interacting with your computer. It looks intimidating at first, but you'll learn to love how productive it allows you to be. You will want to use the Terminal program that comes with your computer.

###Resources:

###Assess Yourself:

  • Create a new directory
  • Create a new empty file
  • Remove/delete a file or directory
  • List all the contents of your home directory including hidden files
  • Navigate to your home directory with a single command
  • Navigate using relative paths
  • Use tab completion
  • List all the files or directories in your home folder that begin with the letter "D"
  • View recently typed commands

###If you want to go deeper:


#PART 2 - Internet & Web Development Basics

The internet is a giant web of networked computers... wait, what? Starting with the foundations of the web, you'll dig into networking and server-client relationships.

HTML and CSS are the face of the internet: it's what people see in their browsers when they load a website. Part of being a full-stack developer is being able to work with these building-block languages.

##Internet Basics (1 hour)

We're learning to build web applications, so it's important to understand how the magical web works.

###Resources:

###Assess Yourself:

  • Explain to a friend or family member what happens when you type www.google.com into your browser and hit enter.
  • Define the following terms:
    • Client
    • Server
    • Browser
    • IP Address
    • DNS

##HTML & CSS (15 hours)

You're not expected to walk in knowing how to make drop-dead gorgeous sites, but getting these basics under your belt is critical to building web sites. Plus, being able to visually convey a thought is useful and rewarding.

###Resources:

  • Mozilla HTML Introduction - A quick introduction to HTML structure from a developer point of view. Read through this to get a clearer idea of how HTML works.
  • Codecademy Web Track - Go through the entire course. This resource walks you through the fundamentals of HTML and CSS by example.
  • http://learn.shayhowe.com/html-css/ Learn to Code HTML & CSS is a simple and comprehensive guide dedicated to helping beginners learn HTML and CSS

###Assess Yourself:

Without any references, create a basic HTML template structure with the following components:

  • Doctype
  • head with a title
  • body

Add some common elements:

  • div
  • h1
  • h2
  • span
  • p
  • ul with 3 items
  • ol with 3 items
  • Add a hyperlinks to another pages out on the internet.
  • Add an image to your page (animated GIFs are fun!).
  • Link an external stylesheet (CSS) to your HTML page.

Add some basic styling to your page using an external style sheet:

  • Change the font.
  • Change the font color.
  • Add a border around a text block.
  • Give your page a background image or background color.

###If you want more:


##PART 3 - Programming Basics & Version Control

##Ruby (25 hours)

Now we'll dig deeper into programming with a full-featured language: Ruby! It's very friendly to beginners and has all sorts of "syntactical sugar" -- little shortcuts that get more done with less code. We'll be using tons of Ruby throughout the course: it's a popular choice as a back-end language and a fundamental building block for a web application. Fun fact: Ruby can also be used to write non-web programs.

###Resources:

###Assess Yourself:

Instead of attempting to install Ruby (and creating headaches at Installfest), test your chops with an online console at REPL.it -- a tool for programming in Ruby online.

  • Print out all the numbers from 1 to 100
  • Create an array that holds 5 of your favorite things
    • Loop through that array and print out each one
  • Write a method, greet, that takes a person's name as an argument and prints "Hello" plus that person's name (i.e. "Hello You!").
  • Write a method, double, that takes a number num as an argument and returns 2 times that number.
  • Write a method, is_even?, that takes a number num as an argument and returns true if it is even and false otherwise.
  • Write a program/script that prints the numbers from 1 to 100.
    • As it's running, print "Fizz" instead of the number if it's a multiple of 3.
    • For the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".
  • If you are looking for an extra challenge, check out some of the elementary problems at Rubeque

Be sure to test your code!

###If you want to go deeper:

##Javascript (25 hours) Javascript is the language of the web and an increasingly popular language. As a soon-to-be web developer, we want you to get some exposure to it. Compared to Ruby, it may feel a bit strange. But not to worry! You will be well-versed in Javascript by the end of the course.

###Resources:

###Assess Yourself: Use this JS REPL to test your JS chops.

  • Print out all the numbers from 1 to 100
  • Create an array that holds 5 of your favorite things
    • Loop through that array and print out each one
  • Write a method, greet, that takes a person's name as an argument and prints "Hello" plus that person's name (i.e. "Hello You!").
  • Write a method, double, that takes a number num as an argument and returns 2 times that number.
  • Write a method, is_even?, that takes a number num as an argument and returns true if it is even and false otherwise.
  • Write a program/script that prints the numbers from 1 to 100.
    • As it's running, print "Fizz" instead of the number if it's a multiple of 3.
    • For the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".

##Git (6 hours)

Git is software that helps developers with keeping track of changes to files as we build our web apps. It's called version control, and it's basically a backed-up history of everything that's happened to your code. Git is also a powerful tool to share code and work with others collaboratively.

###Resources:

###Assess Yourself:

Explain to a friend what Git is, and why you would use version control in software development.


##Get Plugged In

Don't wait until after program to get out there: start reading what programmers read, and start networking online.

Build your online presence:

  • Create an account on LinkedIn - we’ll dig more into best profile practices later in the course)
  • Create a Twitter account - used for networking AND coding

Check out these articles on learning to program:

Completing the work in these links will be critical to your success. Historically, thorough completion of the pre-work has been the single greatest indicator of student ability to do well in the course! Please ensure you take the necessary time to complete the pre-work, and bring any questions to instructors during Study Hall.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages