Skip to content

Instantly share code, notes, and snippets.

@jayrobin
Forked from andrewjadams3/objectives.md
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jayrobin/9626378 to your computer and use it in GitHub Desktop.
Save jayrobin/9626378 to your computer and use it in GitHub Desktop.

#DBC Prep Objectives

For any technical support, please feel free to scope out and post in the Dev Bootcamp Help Facebook group.


1. Personal Preparation

Keep track of the your explanations and results below. You will be asked to submit your responses prior to entering Phase 0.

Learning Objectives
  • Explain the difference between growth and fixed mindset.
  • Identify my VARK learning style (Visual: 3, Aural: 6, Read/Write: 4, Kinesthetic: 13)
  • Explain my thinking style and what I enjoy or find challenging when learning (Concrete Sequential: 20, Abstract Sequential: 12, Concrete Random: 44, Abstract Random: 24)

2. Computer Set-Up

It is fundamentally important that you have a working development environment on your computer so that you can easily and effectively run the programs you are writing. Follow the directions below to get started.

Resources
Learning Objectives:
  • Install Ruby version 2.0
    Check the version by running “ruby –v” from the command line. You may need to update.
  • Install DBC’s preferred text editor - Sublime Text.
  • Run a ruby program from Sublime in my terminal
    Use Perfect Workflow in Sublime Text
  • Use IRB to play with Ruby code (HINT: Type IRB into your terminal)

3. Counting & Basic Math

Resources
Learning Objectives
  • Explain how to count in decimal
  • Describe how a computer uses binary
  • Describe why counting in hexadecimal is useful
  • Compare bits to bytes
  • Explain “floating point” and its challenges
  • Describe the difference between integer division and division using floats

4. Command Line

The terminal will be your best friend for most of Phase 0 and Phase 1, so it's important to get comfortable with some basic commands.

Resources
Learning Objectives
  • Navigate between directories
  • Create a new directory
  • Delete a directory
  • List files in a directory
  • Identify the directory I am in
  • Move a file between from one directory to another
  • Copy a file or directory
  • Open a file in a text editor
  • Run a ruby file

5. Ruby

In order to solve simple challenges using Ruby during Phase 0 and Dev Bootcamp, you will need to be feel confident with the following objectives.

Resources
Learning Objectives
  • Identify strings, integers, arrays, hashes, floats
  • Define a variable
  • Interact with a user via the command line (ex. gets)
  • Describe flow control using if, elsif, else, and unless
  • Convert a method using if/else to case using when
  • Compare = and ==
  • Describe loops and explain how the following work (#times, #each, #while, #until)
  • Differentiate between arrays and hashes
  • Describe what methods, blocks, and classes, and objects are in Ruby
  • Indent using two spaces
  • Debug syntax errors from error messages

6. IRB

Get comfortable with IRB. Open your terminal, type “irb” and play with the skills you learned in Pine’s Learn to Program and Codecademy’s Ruby Course to complete these objectives.

Learning Objectives
  • Load IRB
  • Explain what IRB is and how it can be used
  • Solve basic mathematical problems (+, -, *, /, **, %)
  • Create and manipulate variables
  • Create and add items to an array
  • Compare enumerable#collect and enumerable#map
  • Compare #map and #map! methods

7. HTML & CSS

Refresh your knowledge or learn about web design basics.

Resources
Learning Objectives
  • Identify an opening and closing tag
  • Determine when to use various HTML tags
  • Indent HTML according to established guidelines
  • Identify CSS selectors
  • Explain how CSS formats HTML documents
  • Identify the parent/child elements in HTML
  • Compare classes and IDs in HTML
  • Describe the CSS box model
  • Explain basic CSS positioning (inline, inline-block, float, padding, margins, borders, absolute, relative, fixed)

8. Javascript

Resources
Learning Objectives
  • Create variables using proper naming conventions
  • Evaluate Boolean statements
  • Write basic functions to solve mathematical problems (5 + 4)
  • Describe flow control using if , else if, and else
  • Compare for, while, and do loops
  • Define &&, ||, and !
  • Compare literal and constructor notation
  • Identify the similarities between OOP in Ruby and JavaScript

9. jQuery

Resources

10. Git & GitHub

Resources
Learning Objectives
  • Initialize a repository.
  • Clone a repository.
  • Ignore files.
  • Add a file to staging.
  • Unstage a file.
  • Check status.
  • View a diff.
  • Create a commit.
  • Push to origin.
  • Pull remote changes locally.
  • Resolve a conflict.
  • Create a branch.
  • Merge a branch into master.
  • Push to a remote branch.
  • Rebase origin/master into a branch.

10. Algorithms and Data Structures

Resources
Learning Objectives
  • Depth First Search (DFS)
  • Breadth First Search (BFS)
  • Binary search
  • A* search
  • Dijkstra
  • Quicksort
  • Mergesort
  • Heapsort
  • Bubble Sort
  • Insertion Sort
  • Select Sort
  • Bucket Sort
  • Radix Sort
  • Singly-Linked List
  • Doubly-Linked List
  • Skip List
  • Hash Table
  • Binary Search Tree
  • Cartresian Tree
  • B-Tree
  • Red-Black Tree
  • Splay Tree
  • AVL Tree
  • Linked List (sorted)
  • Linked List (unsorted)
  • Binary Heap
  • Binomial Heap
  • Fibonacci Heap

Additional Resources

These are optional, so check these out if you have some the time.

Learning Strategies and Programming

  • Ruby Monk. Online activities and tutor.

  • The Poignant Guide to Ruby. Great online resource.

  • Practical Objected-Oriented Design in Ruby by Sandi Metz.

  • Pragmatic Thinking and Learning by Andy Hunt. This book covers "how our brains are wired, and how to take advantage of your brain's architecture. You'll learn new trice and tips to learn more, faster, and retain more of what you learn."

  • CS 50: Harvard Intro to Computer Science Course Interesting and accessible lectures. These are great for students who want to know more about basic Computer Science. See the syllabus for a list of covered topics.

  • Apprenticeship Patterns by Dave Hoover. Are you doing all you can to further your career as a software developer? With today's rapidly changing and ever-expanding technologies, being successful requires more than technical expertise. To grow professionally, you also need soft skills and effective learning techniques. Honing those skills is what this book is all about. Authors Dave Hoover and Adewale Oshineye have cataloged dozens of behavior patterns to help you perfect essential aspects of your craft.

  • Mindset Online by Carol Dweck. This links to the website, but you can also read the book about fixed and growth mindset.

  • The Passionate Programmer by Chad Fowler. This book is about creating a remarkable career in software development. In most cases, remarkable careers don’t come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes. Most of us have been stumbling around letting our careers take us where they may. It’s time to take control. This revised and updated second edition lays out a strategy for planning and creating a radically successful life in software development.

  • The Pragmatic Programmer by Andrew Hunt and David Thomas. Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment