Al Craig

Al Craig

Member Since July 4, 2017

22,220

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

271 Achievements

  • Getting a Handle on the DOM
  • The Browser Environment
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Finishing the Game
  • Introducing JavaScript
  • Getting to Know Tuples
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Pricing and Project Proposals
  • Python Slices
  • Python Lists
  • Build an Application
  • Using Lists
  • Meet Lists
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • MASH HTML
  • MASH CSS
  • MASH JavaScript
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • Exploring Best Practices
  • Test Drive
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Data Reader
  • Forms
  • Tables
  • Objects
  • Links
  • Abstraction
  • System.Object
  • Finding Your First Project
  • Starting a Freelance Career
  • Polymorphism
  • JavaScript Functions
  • WWW
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Adding a List Page
  • Modeling and Presenting Data
  • Views
  • Controllers
  • Project Setup
  • Loops and Final Touches
  • Encapsulation with Properties
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • The Internet
  • Computer Languages
  • Getting Started with Sass
  • Keyframe and Line Drawing Animations
  • Computer Basics
  • Transitions and Transforms
  • Adding 3D Effects with CSS
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • Getting Started with CSS Transforms
  • The OWASP Top 10 Explained
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Practicing Data Visualization in Excel
  • Chart Formatting and Layout
  • When To Use What Type of Chart
  • Introduction To Data Visualization
  • Transition Timing Functions and Delays
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started with CSS Transitions
  • Design Patterns
  • Page Layout
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Encapsulation and Arrays
  • Inheritance
  • Basic Web Typography
  • Lists
  • Text
  • Introduction
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Advanced Selectors
  • Methods
  • Object-Oriented Programming
  • Getting Started With Spreadsheets
  • Exploration
  • Discovery
  • Captioning Video
  • Media Basics
  • Perfect
  • Creating an SVG
  • Perform
  • Console I/O
  • Prepare and Plan
  • Introduction to SVG
  • Structuring Tables
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Table Basics
  • Creating New Sinatra Apps
  • Gems In Depth
  • Ruby Gems
  • A Route to a Delete Action
  • Routes to Update Actions
  • Routes for Create Actions
  • A Route to a Read Action
  • Rails Resource Index
  • Website Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Adding a Model Attribute
  • Using the Rails Console
  • Handling Rails Requests
  • Scrum Artifacts
  • Scrum Events
  • Creating Rails Apps
  • Introducing Scrum
  • What is Agile?
  • Security: Solutions
  • Security: Concerns
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Introducing Spreadsheets
  • DNS Basics
  • Graphic Basics
  • Getting the REST You Need
  • Meet Selenium
  • AR Extensions
  • Callbacks
  • Query Interface
  • Validation
  • Migrations and Relationships
  • Introduction to ActiveRecord
  • Understanding Flexbox
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • GET and POST Requests in a Browser
  • Search
  • Ruby Class Design
  • Build a Simple Todo List Program
  • Introduction to HTTP
  • Ruby Booleans
  • Blocks Practice
  • Working With Blocks
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Getting Started With Git
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Why Version Control Matters
  • Updating Data in a Database
  • Adding Data to a Database
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • What is Big Data
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Installing Programs
  • Subqueries
  • Set Operations
  • Environment and Redirection
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Finding the Data You Want
  • Getting Data from a Database
  • Ruby Blocks
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Data, Databases and SQL
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Debugging HTML and CSS Problems
  • Creating HTML Content
  • Sharing a Website
  • HTML First
  • Beginning HTML and CSS
  • Newbie