Git Product home page Git Product logo

wdi-intro's Introduction

Intro to WDI

Learning Objectives

  • Get to know each other
  • Determine guiding principles for our class culture
  • Identify the Big Goal of the course
  • List the core expectations of instructors and students
  • Map out the topics and technologies of web development, and identify which we will and will not cover
  • List the main "Dos" and "Don'ts" for the class and the space

Welcome & Today's Schedule (10 minutes / 9:10)

Instructor introductions.

Today's Schedule:

  • 9:00 - 10:40 - Orientation
  • 10:50 - 11:10 - Legohuman Extreme Challenge
  • 11:10 - 11:50 - Squad Meetings
  • 12:00 - 12:30 - Entire cohort meets Production, Outcomes & Campus staff
  • 12:30 - 2:30 - Lunch
  • 2:30 - 5:00 - First Lesson

Icebreaker (20 minutes / 9:30)

Find a partner. Spend 5 minutes sketching your partner. On the left, draw three things he or she likes, and on the right, three things he or she dislikes.

Switch!

For the remaining 10 minutes, we'll go around the room and share!

Here's a wireframe of Adrian as an example...

What Is an Immersive Course? (10 minutes / 9:40)

Spend two minutes discussing and writing down some answers to the following question: What does it mean to be in an "immersive" environment?

There's no winning or losing.

  • This is a non-competitive environment.
  • You get out what you put in.
  • Everyone enters and leaves at different levels. Try to compare you with you only.
  • Use your classmates' work as inspiration to improve your own!

Cooperation.

  • You'll be learning, eating, growing, failing, and succeeding together for the next 12 weeks.

You may be re-learning how to learn.

  • The last time you spent 9 hours a day learning something new was in high school.

You will be uncomfortable. Regularly.

  • Be empathetic.
  • You will probably feel somewhat lost on this week's topic, feel more comfortable with last week lessons, and notice that a few weeks ago looks easy.

Balance.

  • This intensity means that we have to make room for balance.
  • Sleep, food, hydration, rest, and hygiene.

We will not give up on you.

  • Even when you might have given up on yourself!
  • None of the instructors are here just to collect a paycheck. We're nerds about web development, education and you.

Trust that our decisions are informed by solid experience.

  • We rely on your feedback. At the same time, we ultimately have to trust in our own experience and expertise first.

Ultimately, we ask you to trust us and each other.

  • Trust that we have each other's best interests at heart.
  • But we expect to have to work to earn that trust.

Embrace failure.

YOLO.

Because it's 2017.

None of the above mentions anything about code.

Growth Mindset (10 minutes / 9:50)

Growth Mindset - Dr. Carol Dweck

This may be the most mentally challenging thing you've ever done -- the first time you've been bad at something in a long time. You will fail and struggle at times, but that's important. We don't succeed despite challenges -- we succeed because of challenges.

  • Unfortunately, this can hurt. Just like exercise can make you sore and tired, so should learning. Try to enjoy the burn knowing it is making you better.
  • We anticipate that you will run into hardships. When you do, that's when it is time to really challenge yourself and buckle down. Don't quit! Embrace the fact that the challenge will make you a better coder. Endure the struggle to grow and develop your mind.

The Learning Myth: Why I'll Never Tell My Son He's Smart - A great read/watch when you have a few spare minutes.

The Emotional Cycle of Change

Emotional Cycle of Change

Programming is a mindset. It's about confidence and being open to failure. It's about knowing when to climb from the bottom of the cycle and being able to say, "Eh, I'm going to try this thing, even though I don't really understand it. AND I'm not going to get attached to it in case it doesn't work and I have to erase all my code and try something completely different."

The growth mindset here is understanding that even when something doesn't work, it will still make you a better coder! We want this to be challenging for you because...

  • Just memorizing stuff won't help you. Learning HOW to code will.
  • You can't BS your way through code.
  • The fundamental standard of programming: It either works, or it doesn't. No amount of sweet-talking will make it work.
  • Google is your best friend

Throughout the course of WDI many students say something along the lines of "I don't know how to do that." Many of you certainly will. If you do, however, just add "...yet" to the end of that sentence.

What Is Asking for Help? (10 minutes / 10:00)

Asking for help is what students find hardest in WDI. It is also what ultimately determines whether or not students will be successful in this class.

  • Without fail, the students who do not ask for help do the poorest in the class.
  • Knowing how to ask for help and where to look for answers are two of the biggest skills you can gain from this class and will be incredibly valuable as you prepare to join the professional workforce.

Turn & Talk

Take 30 seconds to think of a time when you have asked someone for help. It doesn't have to be tech-related. Then take another 30 seconds to turn and share with your tablemates about those times. What were the outcomes?


We have all asked for help. There's no shame in it. Feeling afraid to ask for help will be the biggest detriment in this class.

How can we ask for help efficiently?

  • Ask a clear problem. "I don't know any of this" isn't a clear problem. "I tried this thing and got this error" is a clear problem.
  • Your instructors and peers won't be able to help you if...
    • The question you're asking isn't constructive
    • It's clear you haven't made an effort to find the answer. This means taking the following steps...
      1. First, try it yourself
      • Then, Google it
      • Then, ask your neighbor
      • Finally, ask an instructor

Check out this lesson plan if you'd like to learn more about how to ask effective questions.

Gradual Release of Responsibility

Being able to ask for help effectively will become increasingly crucial as the course progresses. During the first project, for example, we will be holding office hours throughout the dedicated project days. By the fourth project, however, all support will be conducted using Github issues. Between those two projects, instructors will be placing an increasing onus on the students to solve problems on their own with limited instructor support -- what we call a "gradual release of responsibility."

While instructors love helping out, we've found that students become stronger developers by learning to solve their own problems. Your instructors won't be following you to your jobs so it's important to develop a sense of self-sufficiency while you're here.

Break (10 minutes / 10:10)

Course Content (10 minutes / 10:20)

GA's global team has built a baseline curriculum, which includes topics to cover and a suggested order. As a local campus, we have built on and modified this curriculum based on our own experiences as instructors and the unique features of the DC job market. Each lesson is designed by the instructor that's delivering it.

We also iterate on this curriculum constantly so technologies and concepts change with each cohort.

Course Content

What are some technologies and languages you know of that are involved in web development (e.g., HTML, Ruby, Databases).


A non-exhaustive list of technologies we cover...

  • HTML
  • CSS
  • JavaScript
  • Ruby
  • Rails
  • PostgreSQL (Relational Database)
  • MongoDB (NoSQL Database)
  • Node.js
  • Express.js
  • Angular.js
  • React.js

We cover these technologies / topics because they are foundational to web development, and learning the underlying concepts of how they work prepares you to learn and work in any web development technologies.

Course Sequence

The course is organized by units of roughly 1 week each. Every 3 weeks, we'll complete a project, each of which last 3-5 days.

Units/Projects

  • Intro to the Web and Development (HTML/CSS and Git)
  • JavaScript
  • Project 1 - Build an front-end application with HTML/CSS/JS
  • Ruby, Sinatra
  • Full-stack MVC with Ruby on Rails
  • Project 2 - Build a full-stack, data-driven app with Rails
  • Angular.js
  • APIs
  • Project 3 - Build a Single Page Application with Angular supported by a Rails JSON API
  • Node, Express, and MongoDB (MEAN stack)
  • React & Redux
  • Project 4 - Portfolio project

Course Logistics (10 minutes / 10:30)

Weekly Schedule

Normal Weeks

Weekdays

  • 9:00-10:00: Checkpoint / Code Challenge / Review
  • 10:00-12:30: Lesson 1 / Lab / Outcomes (Tuesday)
  • 12:30-2:30: Lunch / Work Time / One-on-one's / Office Hours
  • 2:30-5:00: Lesson 2 / Lab / Outcomes
  • 6:00-8:00: Evening Office Hours (Monday, Tuesday, Wednesday)

Project Weeks (3, 6, 8, 12)

Project weeks will be pretty much just time for you to work on your project.

  • There will be no scheduled lessons (outcomes will meet as usual)
  • There will be no evening office hours, since instructors will be widely available during the day.

Squads

Each student will be part of a squad lead by one instructor. Your squad instructor will be the primary -- but not the only -- instructor providing you with feedback on homework, labs, quizzes, etc.

A list of squads can be found here.

Instructor Communication

There will be dedicated time for instructors to provide students with in-person support outside of lessons. These are limited to...

  • Afternoon office hours: Monday, Tuesday, Wednesday - 1:30PM - 2:30PM
  • One-on-one's: Monday, Tuesday, Wednesday - 1:30PM - 2:30PM
  • Evening office hours: Monday, Tuesday, Wednesday - 6:00PM - 8:00PM
  • Lab support

Outside of these times, instructors are not available to provide in-person technical support, even if they are in the office. We use this time to prepare lessons, grade projects, etc.

  • This encourages students to become self-sufficient.
  • Instructors use the rest of the time to prepare WDI.

If you have any non-technical questions concerning WDI, however, you are welcome to approach or Slack instructors at any time. If you reach out via Slack in the evening, the instructor will respond by the next day.

Graduation Requirements (10 minutes / 10:40)

Homework

Attendance

Break (10 minutes / 10:50)

Legohuman Extreme Team Challenge (20 minutes / 11:10)

We're going to do a quick team-building icebreaker exercise that emphasizes specific and clear communication. Communicating clearly and specifically about projects and code is an important skill for developers, since we typically work in teams. Even if you are a freelance developer, you still have to communicate with the client. Clear communication will convey your professionalism, save you time, and it also minimizes headaches around unclear client expectations.

For this exercise, we'll be working in groups of four or five to recreate a Legohuman. The Legohuman is located on the table outside of the classroom. One group member at a time can go out for a 10-second interval to take a look at the structure. You cannot take a picture of the structure. Each person must make one trip before a second or third trip can be made by another person.

The instructors will declare a winner based on the most convincing replica.

Squad Breakouts (40 minutes / 11:50)

  • Update GitHub Profile with full name and avatar
  • Sign Requirements Agreement and set goals
  • Review code of conduct

Break (10 minutes / 12:00)

Production / GA Staff Introductions (30 minutes / 12:30)

wdi-intro's People

Contributors

amaseda avatar andrewsunglaekim avatar andywhitley avatar beckybeauchamp1 avatar joe-gz avatar jshawl avatar jsm13 avatar juancgarcia avatar mattscilipoti avatar nayana487 avatar nolds9 avatar robertakarobin avatar superbuggy avatar tylercrosse avatar

Watchers

 avatar

wdi-intro's Issues

Clarify: Pre-work turn-in policy

Some confusion on whether or not to ask for help with pre-work before classes start. Also confusion on whether or not it's required for "Recommended for Hire".

Daniela Noir HW

Comfort Score: 5
Completeness: 5

Comments: Learned a lot about "mv" command. I don't really understand what "echo" did. I'm worried the gang didn't get gifts and may feel unappreciated :(.

'''
dani@T550:$ mkdir House
dani@T550:
$ pwd
/home/dani
dani@T550:$ cd House
dani@T550:
/House$ touch Dorothy
dani@T550:/House$ touch Toto
dani@T550:
/House$ ls
Dorothy Toto
dani@T550:/House$ cd ~
dani@T550:
$ pwd
/home/dani
dani@T550:$ mkdir Oz
dani@T550:
$ touch Good Witch of the North
dani@T550:$ touch Wickd Witch of the East
dani@T550:
$ touch Good Witch of the South
dani@T550:$ touch Wicked Witch of the West
dani@T550:
$ ls
Daniela East Good Music Pictures the Wicked
Desktop examples.desktop hello world.txt North Public Videos Witch
Documents file1 House of South West
Downloads fundamentals index.html Oz Templates Wickd
dani@T550:$ ls
Daniela Documents examples.desktop House Music Pictures Templates
Desktop Downloads fundamentals index.html Oz Public Videos
dani@T550:
$ cd Oz
dani@T550:/Oz$ ls
dani@T550:
/Oz$ ls
dani@T550:/Oz$ pwd
/home/dani/Oz
dani@T550:
/Oz$ cd Oz
bash: cd: Oz: No such file or directory
dani@T550:/Oz$ pwd
/home/dani/Oz
dani@T550:
/Oz$ pwd
/home/dani/Oz
dani@T550:/Oz$ pwd
/home/dani/Oz
dani@T550:
/Oz$ pwd
/home/dani/Oz
dani@T550:/Oz$ ls
dani@T550:
/Oz$ cd ~
dani@T550:$ pwd
/home/dani
dani@T550:
$ cd Oz
bash: cd: Oz: No such file or directory
dani@T550:$ mkdir Oz
dani@T550:
$ pwd
/home/dani
dani@T550:$ cd Oz
dani@T550:
/Oz$ ls
dani@T550:/Oz$ touch "Good Witch of the North"
dani@T550:
/Oz$ ls
Good Witch of the North
dani@T550:/Oz$ touch "Wicked Witch of the East" "Good Witch of the South"
dani@T550:
/Oz$ ls
Good Witch of the North Good Witch of the South Wicked Witch of the East
dani@T550:/Oz$ touch "Wicked Witch of the West"
dani@T550:
/Oz$ ls
Good Witch of the North Wicked Witch of the East
Good Witch of the South Wicked Witch of the West
dani@T550:/Oz$ rm "Wicked Witch of the East"
dani@T550:
/Oz$ ls
Good Witch of the North Good Witch of the South Wicked Witch of the West
dani@T550:/Oz$ mv Dorothy Oz/
mv: cannot stat 'Dorothy': No such file or directory
dani@T550:
/Oz$ cd~
No command 'cd~' found, did you mean:
Command 'cde' from package 'cde' (universe)
Command 'cdp' from package 'irpas' (multiverse)
Command 'cdv' from package 'codeville' (universe)
Command 'cdb' from package 'tinycdb' (main)
Command 'cdw' from package 'cdw' (universe)
Command 'cd5' from package 'cd5' (universe)
Command 'cdo' from package 'cdo' (universe)
Command 'cdi' from package 'cdo' (universe)
cd~: command not found
dani@T550:/Oz$ cd ~
dani@T550:
$ pwd
/home/dani
dani@T550:$ ls
Daniela Documents examples.desktop House Music Pictures Templates
Desktop Downloads fundamentals index.html Oz Public Videos
dani@T550:
$ cd House
dani@T550:/House$ ls
Dorothy Toto
dani@T550:
/House$ mv Dorothy Oz/
mv: cannot move 'Dorothy' to 'Oz/': Not a directory
dani@T550:/House$ pwd
/home/dani/House
dani@T550:
/House$ cd ~
dani@T550:$ pwd
/home/dani
dani@T550:
$ mv Dorothy Oz/
mv: cannot stat 'Dorothy': No such file or directory
dani@T550:$ cd House
dani@T550:
/House$ mv Dorothy Oz/
mv: cannot move 'Dorothy' to 'Oz/': Not a directory
dani@T550:/House$ cd ..
dani@T550:
$ pwd
/home/dani
dani@T550:$ cd Oz
dani@T550:
/Oz$ mv Dorothy Oz/
mv: cannot stat 'Dorothy': No such file or directory
dani@T550:/Oz$ mv Home/House/Dorothy Home/Oz/
mv: cannot stat 'Home/House/Dorothy': No such file or directory
dani@T550:
/Oz$ cd~
No command 'cd~' found, did you mean:
Command 'cd5' from package 'cd5' (universe)
Command 'cdo' from package 'cdo' (universe)
Command 'cdb' from package 'tinycdb' (main)
Command 'cdw' from package 'cdw' (universe)
Command 'cdv' from package 'codeville' (universe)
Command 'cdi' from package 'cdo' (universe)
Command 'cdp' from package 'irpas' (multiverse)
Command 'cde' from package 'cde' (universe)
cd~: command not found
dani@T550:/Oz$ cd ~
dani@T550:
$ pwd
/home/dani
dani@T550:$ ls
Daniela Documents examples.desktop House Music Pictures Templates
Desktop Downloads fundamentals index.html Oz Public Videos
dani@T550:
$ cd House
dani@T550:/House$ ls
Dorothy Toto
dani@T550:
/House$ cd ~
dani@T550:$ pwd
/home/dani
dani@T550:
$ mv /home/House/Dorothy /home/Oz/
mv: cannot stat '/home/House/Dorothy': No such file or directory
dani@T550:$ cd ~
dani@T550:
$ pwd
/home/dani
dani@T550:$ ls
Daniela Documents examples.desktop House Music Pictures Templates
Desktop Downloads fundamentals index.html Oz Public Videos
dani@T550:
$ mv /House/Dorothy /Oz/
mv: cannot stat '/House/Dorothy': No such file or directory
dani@T550:$ mv Dorothy Oz/
mv: cannot stat 'Dorothy': No such file or directory
dani@T550:
$ cd house
bash: cd: house: No such file or directory
dani@T550:$ cd House
dani@T550:
/House$ lst
No command 'lst' found, but there are 17 similar ones
lst: command not found
dani@T550:/House$ pwd
/home/dani/House
dani@T550:
/House$ ls
Dorothy Toto
dani@T550:/House$ cd ..
dani@T550:
$ ls
Daniela Documents examples.desktop House Music Pictures Templates
Desktop Downloads fundamentals index.html Oz Public Videos
dani@T550:$ mv /House/Dorothy Oz/
dani@T550:
$ cd Oz
dani@T550:
/Oz$ ls
Dorothy Good Witch of the South
Good Witch of the North Wicked Witch of the West
dani@T550:/Oz$ cd ~
dani@T550:
$ pwd
/home/dani
dani@T550:$ touch "Scarecrow"
dani@T550:
$ ls
Daniela Downloads House Oz Scarecrow
Desktop examples.desktop index.html Pictures Templates
Documents fundamentals Music Public Videos
dani@T550:$ touch "Tin Man" "Cowardly Lion"
dani@T550:
$ ls
Cowardly Lion Documents fundamentals Music Public Tin Man
Daniela Downloads House Oz Scarecrow Videos
Desktop examples.desktop index.html Pictures Templates
dani@T550:$ mkdir "Emerald City"
dani@T550:
$ ls
Cowardly Lion Documents examples.desktop index.html Pictures Templates
Daniela Downloads fundamentals Music Public Tin Man
Desktop Emerald City House Oz Scarecrow Videos
dani@T550:$ mv /Cowardly Lion /Emerald City
mv: target 'City' is not a directory
dani@T550:
$ mv /Cowardly Lion /Emerald City/
mv: target 'City/' is not a directory
dani@T550:
$ mv /"Cowardly Lion" /"Emerald City"/
dani@T550:
$ pwd
/home/dani
dani@T550:
$ cd Emerald City
bash: cd: Emerald: No such file or directory
dani@T550:
$ cd "Emerald City"
dani@T550:
/Emerald City$ ls
Cowardly Lion
dani@T550:
/Emerald City$ mv /"Tin man" /"Scarecrow" /"Emerald City"/
mv: cannot stat '/home/dani/Tin man': No such file or directory
dani@T550:
/Emerald City$ mv /"Tin Man" /"Scarecrow" /"Emerald City"/
mv: cannot stat '/home/dani/Scarecrow': No such file or directory
dani@T550:
/Emerald City$ ls
Cowardly Lion Scarecrow Tin Man
dani@T550:
/Emerald City$ cd ..
dani@T550:
$ pwd
/home/dani
dani@T550:
$ ls
Daniela Downloads fundamentals Music Public
Desktop Emerald City House Oz Templates
Documents examples.desktop index.html Pictures Videos
dani@T550:
$ cd Oz
dani@T550:/Oz$ touch "Flying Monkeys"
dani@T550:
/Oz$ ls
Dorothy Good Witch of the North Wicked Witch of the West
Flying Monkeys Good Witch of the South
dani@T550:/Oz$ rm "Wicked Witch of the West"
dani@T550:
/Oz$ ls
Dorothy Flying Monkeys Good Witch of the North Good Witch of the South
dani@T550:/Oz$ echo "a diploma" >> Oz/Scarecrow
bash: Oz/Scarecrow: No such file or directory
dani@T550:
/Oz$ echo "a heart shaped watch" >> Oz/"Tin Man"
bash: Oz/Tin Man: No such file or directory
dani@T550:/Oz$ echo "a heard shaped watch" >> Oz/Tin Man
bash: Oz/Tin: No such file or directory
dani@T550:
/Oz$ ls
Dorothy Flying Monkeys Good Witch of the North Good Witch of the South
dani@T550:/Oz$ cd ..
dani@T550:
$ pwd
/home/dani
dani@T550:$ cd "Emerald City"
dani@T550:
/Emerald City$ ls
Cowardly Lion Scarecrow Tin Man
dani@T550:/Emerald City$ cd Scarecrow
bash: cd: Scarecrow: Not a directory
dani@T550:
/Emerald City$ cd
No command 'cd' found, did you mean:
Command 'bcd' from package 'bsdgames' (universe)
Command 'hcd' from package 'hfsutils' (main)
Command 'mcd' from package 'mtools' (main)
cd: command not found
dani@T550:
/Emerald City$ cd ~
dani@T550:
$ echo "a heart shaped watch" >> /Oz/"Tin Man"
dani@T550:
$ echo "a medal" >> /Oz/"Lion"
dani@T550:
$ ^C
dani@T550:
$
'''

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.