Session 1 Expectations, Keyboard Shortcuts, Googling, Classes

Goals

By the end of this session, you will be able to:
  • speak to Turing's mission and expectations
  • implement study habits that will help you be successful at Turing
  • use keyboard shortcuts to navigate your computer and Chrome
  • brainstorm classes for specific objects
  • refine searching and filtering skills to Google programming questions
  • define and identify use cases for basic data types

Agenda

Materials

  • Quiet Space
  • Notebook
  • Writing instrument
  • Laptop
  • Headphones & mic

Intro

  • Intros: David and Tim
  • Goals for session (see above)
  • Follow along by clicking the lesson plan in slack

Housekeeping

  • Did you install Spectacle? Post in the chat!
  • Change display name to first name, last initial, pronouns, program; ie - Rachel W. (she/her, BE)
  • Session will be recorded and posted in Slack
  • Find a typo?
  • NOTE: text typed into this page will not save, so don’t refresh or close this window until you’ve reviewed your notes.

Turing Mission and Expectations

“Our mission is to unlock human potential by training a diverse, inclusive student body to succeed in high-fulfillment technical careers.”

A different type of learning environment

Turing is a very challenging experience for most people. In order to be successful I’d highly recommend that you embrace a growth mindset. This means that you believe that knowledge and intelligence can be improved through hard work and dedication, and that you may fail at something before you’re successful at it. It’s the difference between being good at something right off the bat, and working really hard to get good at something that sets people apart here.

There is no transcript - Sure, you’ll get a diploma upon graduation, but we don’t have GPAs at Turing and grades are not the measurement of success. We measure success in understanding. Throughout your time at Turing you’ll have projects and assessments that will allow us as instructors to guage your success. The main reason for this is because the ultimate goal here is for you to get a job in software development. And to do so, you need to show understanding during the interview process.

Communication

Make sure that you’ve added the Mod 0 Calendar to your own calendar. This is where you will find all mod 0 related events, including sessions, capstone study sessions, and other community wide events.

Joanne will also remind you when these events are via slack, which is the primary mode of communication we use at Turing. Make sure that you’re checking it once a day so that you can stay up to date. It’s also a great place to ask questions if you are running into issues, as people are likely experiencing the same issue that you are.

Mod 0 Expecations

Mod 0 is less about code or solving difficult problems and more about developing and learning tools, procedures, systems, and learning behaviors/processes. For some of you, the technical content will be brand new. For others, it will be review.

At the end of Session 5, you’ll take a technical assessment that will showcase a subset skills you learn during Mod 0. The assessment will be performance-based rather than multiple choice. The assessment instructions will include a checklist of what we’re looking for to know that you’ve practiced and mastered the material.

Being Turing Ready

By the Monday after your last Mod 0 session you’ll be rated as one of the following:

Not Ready based on any of these factors:

  • You’ve missed more than one session or did not meet engagement expectations
  • You’ve missed assignments or delivered poor quality work
  • You were unable to pass the Session 5 Technical Assessment
    • Next step: You have one chance to re-enroll in and successfully complete Mod 0
  • If you don’t pass on your second try you will be asked to reapply to Turing in 45 days.

Pending

  • Your submitted work exhibited minor problems or was submitted improperly, but you have demonstrated sufficient professionalism and expertise deserving of extra patience
    • Next step: Complete your assigned makeup steps within three days and move to Ready

Technical-Ready

  • Your work and assessment demonstrate that you’re ready to be successful in Mod 1
    • Next step: Submit your Program-Specific Mod 0 Capstone

Breakout Rooms

This is a feature in zoom that we’ll use throughout the mod 0 sessions. They allow for small group discussion, where y’all can solidify concepts or work through challenges. You’ll be kicked out into smaller group with 2 or 3 of your classmates. When they’re finished you’ll get a 60 second warning where you can rejoin the main session, or you’ll automatically rejoin at the end of the 60 seconds. During these, we may broadcast messages or pop in to see how we are doing time-wise. They can be a bit awkward at first, but try to embrace them and have fun!

Try It: Break out rooms

1. Introduce yourself (name, pronouns, program).

2. Where do you call home

3. What is one reason you chose to come to Turing?

4. What is your biggest concern about coming to Turing?

Other things to note as we go through Mod 0:

  • Zoom: turn video on, turn mic off unless speaking
  • Breakout Rooms: don’t be afraid to speak! Breakout rooms will be randomized at the beginning of each session
  • Problems or individual questions during the Zoom session? Message the non-presenting host (either David or Tim)

Study Habits

Throughout your time at Turing, including mod 0 we’d suggest that you get in the habit of doing the following:

Pre-teaching

  • Preview: Up to 24 hours prior
    • Check out the lesson plan
    • Peek at coding examples
    • Record new vocab in Turing Notebook

Take great notes (during the lesson)

  • Turing Notebook: Start now with handwritten notes
  • Visual organization: Colors/markers/pens/stickies
  • Diagrams: Draw out everything your instructors draw on board
  • KEY ideas: Focus on main concepts, write in your own words

Post-teaching

  • Review: At lesson’s close
    • What do I understand from today?
    • When will I need what I just learned?
    • What questions do I still have?
  • Do your own research!

Study Habits (focus)

  • Limit distractions. Turn off:
    • Notifications (slack, imessage, etc)
    • Phone (or airplane mode, and out of sight)
  • Location, location, location:
    • Make sure that your space is quiet and free from distractions
    • Leave house if need be

Study Habits (goals)

  • Study/Worktime goal:
    • Write a priority in your notebook.
    • Update priorities with each study/work session (get granular)
    • Use checklists and kanban tracking
  • Pomodoros:

BREAK

Turn off your mics and videos and walk away from the computer. Stand up, stretch, drink water. Do a few sit-ups, squats, push-ups, jumping jacks, arm circles, stress ball squeezes, or whatever else moves your body.

Keyboard Shortcuts

Most computer users rely heavily on the mouse to open applications, interact with programs, etc. You might think that you’re quick with a mouse, but just wait until you get good at keyboard shortcuts.

Initially, your flow will be slower as you learn and memorize each of the shortcuts. However, if you force yourself to use these shortcuts, you’ll become MUCH faster in the long run.

Try it: Shortcuts

Mac Environment

Use these shortcuts to quickly move around within your environment.

  • Open a program or search for a file:
    command + spacebar

    Then start typing the name of the program or file to search for such as "Terminal" Or "Chrome", then press return to open that program or file

  • Cycle through open programs:
    command + tab + tab ...
  • Switch between separate open windows of the same program:
    command + `
  • Quit an Open Program:
    command + Q

Spectacle

Start by making sure Spectacle is running with (command + spacebar) then type spectacle and then return. You should see a sunglasses icon at the top right of your menu bar. Click the icon to see a dropdown of your shortcuts. Click preferences to customize them.

  • Full Screen Current Window:
    command + option + F
  • Left Half Current Window:
    command + option + left-arrow
  • Right Half Current Window:
    command + option + right-arrow
  • Top Half Current Window:
    command + option + up-arrow
  • Bottom Half Current Window:
    command + option + down-arrow

Chrome Browser

Start by opening Chrome with the shortcut (comamnd + space) you already learned.

  • Bookmark Page:
    command + D
  • Open New Tab:
    command + T
  • Open New Window:
    command + N
  • Open New Incognito Window:
    command + shift + N
  • Highlight Current URL:
    command + L
  • Cycle Through Tabs:
    Right: control + tab
    Left: control + shift + tab
  • Reload Page:
    command + shift + R
  • Close Tab:
    command + W

Classes

Defining and Identifying Classes

Note: This is a topic that we will revisit in bite-size chunks leading up to Session 5. We will not talk about the technical aspects of how classes play a part in programming today; instead, we will apply the terminology and concepts to real life.

Think of a class as a category of thing. For example, deep dish, new york, and pan (instances) are all different versions of a pizza (class).

An Old Navy sweatshirt and an Eddie Bauer sweatshirt (instances) are different versions of a sweatshirt (class).

Great Expectations by Charles Dickens and Becomming by Michelle Obama (instances) are different versions of a book (class).

Class names are always singular: pizza (instead of pizzas), sweatshirt (instead of sweatshirts), and book instead of books.

Try It: Classes

Post two sentences in the chat using this structure:

______, ________, and _______ (instances) are different versions of a ________ (class).

Attributes of Classes

An attribute of a class is a characteristic that every instance of that class has.

For example:

  • Each pizza (class) has a crust, sauce, and toppings (attributes).
  • Each sweatshirt (class) has a color, size, brand, and price (attributes).
  • Each book (class) has a title, author, publisher, published_date, and total_pages (attributes).

Try It: Attributes

Post two sentences in the chat about your two classes using this structure:

Each _______ (class) has a _______, ________, and ________ (attributes).

Googling

Believe it or not, a good chunk of your time as a programmer will be spent Googling to find answers to your questions. In fact, a somewhat experienced programmer will Google at a much higher rate than a beginning programmer. Therefore, it’s really important to get good at Googling.

For a frame of reference so that you know just how often we rely on Google (even the “easy” stuff), this is my most recent Chrome history as I’ve been building this curriculum 😂

Rachel's search history

When I Google programming questions, I usually include three things (in varying orders):

  1. What I want to do (verb)
  2. to what thing (noun)
  3. using what language or tool

For example, if I wanted to add a thick green border to a heading on my webpage and I’m using plain CSS for styling, I might google this:

how to add border to heading css

or

make border on heading element css

SUPER IMPORTANT: You might not get the results you’re looking for on the first go-around.

Try It: Writing Google-able Phrases

Write out Google-able search phrases for each of the following scenarios. Do not get hung up on being unfamiliar with the terminology for each scenario. We just want phrases to put into Google.

1. I am using Git for version control and made a typo in a commit message. I need to change it before I push my changes to GitHub.

2. I got this error message when I ran my Ruby program and I don't know what it means or how to fix it: "unterminated string meets end of file"

3. A Mod 0 homework assignment asks you to print out your git log in oneline (yes, oneline, not a spelling error) format and David definitely did not teach how to do this during class.

Sifting Through Results

Once you formulate a good Google search and receive your results, there are a few things you’ll want to consider when determining which results to open.

Demo: Google Results

We'll look through some Google results for "change width of textarea in html". Be ready to jot down tips for sifting through results.

Basic Data Types

In most programming languages, you’ll find the same basic data types. A data type represents the kind of data that you can use in the programming language. In this section, we’ll discuss five different basic data types that are applicable to both the front end and back end.

Try It: Basic Data Type Definitions

In your breakout groups, discuss and/or use Google to figure out what each of the following data types are used for in programming. Use your notebook to jot down your answer (and examples, if applicable).

1. What are strings used for in programming?

2. What are integers and floats used for in programming?

3. What is a boolean value used for in programming?

4. What is an array used for in programming?

5. If you're in the front end program, we're going to call the next data type an object. If you're in the back end program, we're going to call it a hash. What is this data type used for in programming?

Data Type Use Cases and Syntax

Luckily for us, the syntax (the way we write) for these basic data types is almost identical in Ruby and JavaScript.

Imagine that we’re making an application for grocery stores to use (intentionally vague description 😁). For each of the data types we researched, we’ll brainstorm examples of how we might use that data type in a grocery store app.

Try It: Data Types in a Grocery Shopping App

What sorts of data would you use strings for?

String Definition (click here)

What sorts of data in your shopping app would be integer data? What about float data?

Integers and Floats Definition (click here)

Why might you use a boolean in a shopping application?

Boolean Definition (click here)

What might you want to store in an array in your shopping app? Start all of your answers with "list of..."

Array Definition (click here)

What might you want to store as a hash/object (data in key-value format) in your shopping app?

Hash/Object Whole Group Review (click here)

Program specific breakouts

We’ll go into breakout rooms to briefly discuss the how to check correct syntax for datatypes in Ruby and JavaScript.

The End!

After this Zoom call is over, take 15 minutes on your own to digest the content from this lesson, including the notes you wrote in the text boxes.

In addition, consider the following questions:

  • What do I understand from today?
  • When will I need what I just learned?
  • What questions do I still have?
  • What learning processes/behaviors did I exercise today?

Homework

Find the homework in your Mod 0 Project Board. Contact David and Tim if you’re stuck (or better yet, post in the public slack channel as you’re likely not the only one running in to that issue)