Skip to content
This repository has been archived by the owner on Nov 29, 2017. It is now read-only.

Learning Resources

caseywatts edited this page Oct 10, 2014 · 42 revisions

Resources for Programmers

Quick Reference

  • DocHub.io - docs of functions and methods for CSS, JavaScript, jQuery, DOM, HTML, PHP, and Python.

APIs

Command line / Terminal

  • Learn the Command Line the Hard Way - a somewhat long, but complete (exercise-heavy) guide to using the command line. If you’re not already comfortable with the command line, you should do this. If you’re comfortable with the command line, you should still probably do this.
  • Customizing
    • OS X’s Terminal application has a lot of configurable settings under Preferences.
    • Dotfiles can help make your command prompt beautiful.

Databases

Supplementary

Git

Learning Git

  1. Try Git - A great interactive intro to git. Start here. 15 min
  2. "Git Immersion" Tutorial - A great next step to take what you learned in ‘Try Git’ and apply it to your own computer. ~5-7h
  3. Explain Git Concepts with D3 - A visual guide. Type a command in their virtual terminal and see how things move. Shows you what's going on when you do each command. 30 min
  4. "Learn Git Branching" Visual Tutorial - A very visual guide, like the one above. Type a command in their virtual terminal to solve each "level". Levels are sort of like puzzles - each one reinforces an important git concept. Recommend doing items in both the "Main" tab and the "Remote" tab. 3-6h
  5. A Successful Git Branching Model - how many teams use git/github/branches to coordinate their efforts. 15 min
  6. Play with friends on git. Form a group of 2-4 people, create a github repo, add your friends as members. Each of you clone the repo. Play with it on your own, even with just text files. Commit some changes, add new files, modify some, delete some, make a couple of branches and put changes on those. Both of you should try to push your changes to github - the second person to push should run into obstacles! Fix them :). Intentionally make a difficult-to-merge change so you get a merge conflict, and fix that. Do this all together, next to each other, and help each other out. Have fun! 1-2h

Videos

  • GitHub Music Video
  • GIT SCM Videos - 4 videos, ~5min each - "What is Version Control?", "What is Git?", "Get Going with Git", "Quick Wins with Git"
  • Git for Ages 4 and Up - 1h 40m video Recorded at a conference, slow presentation pace, good to have on in the background sometime. He really breaks down the concepts into manageable parts.

Reference Tools

While you're trying to use git, refer to these

  • Pro Git - the reference book for git. Want to know what "git revert" (or any command) really does? Check it out here!
  • Git Visual Cheatsheet - great for reference while you’re coding (“what’s that command again?”)
  • Oops! Something went wrong So You Have A Mess On Your Hands - flowchart that helps you decide how to fix the situation.
  • Git The Simple Guide - Nice pretty overview, some nice images.

Advanced Reading

  • Git from the Bottom Up - If you've used git some already and you want to know how it /really/ works, this pdf is for you.
  • Build Git in Javascript - Make your own (simplified) git using javascript. A great walkthrough if you sorta know git and sorta know javascript, helps you learn them both much better.

Create and sync a local branch with Github

The following commands create both a remote and local branch with tracking between them and check out the local branch. Make sure your base branch is up-to-date!

git push origin [BASE_BRANCH]:refs/heads/[NEW_BRANCH_NAME] git fetch origin git branch --track [NEW_BRANCH_NAME] origin/[NEW_BRANCH_NAME] git checkout [NEW_BRANCH_NAME]

For example: git push origin development:refs/heads/404_branch_not_found git fetch origin git branch --track 404_branch_not_found origin/404_branch_not_found git checkout 404_branch_not_found

HTML & CSS

Supplementary

JavaScript

Books

Interactive

Reference

Videos

Rails

Directory structure

Debugging

Testing

Advanced

Ruby

Core Content

Interactive, Hands-On

  • Try Ruby - a quick whirlwind introduction to things that exist in Ruby. Hard to learn Ruby from this but it’s good to quickly see what Ruby exists.
  • Ruby Monk - a full intro to ruby book with interactive examples. Not as good of a starting point as Chris Pine’s LearnToProgram, but a wonderful second resource.
  • Ruby Koans - a thorough test-driven walkthrough of most of Ruby’s features. You’d learn soo much about Ruby after doing this, but it’s only useful after having programmed using Ruby already.

For Purchase

Iterators

Exceptions & Error Handling

Cheat Sheets

Refactoring

Other

Sinatra

Web app basics (Ruby)

Routes

ERB

Miscellaneous

Documentation

Optimization

Pair Programming

Regular Expressions

Screencasts

Books

UI and UX

Other

Learning Resources are also on yalestc.github.io