William Forbes

William Forbes

Member Since December 14, 2015

21,469

Total Points

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

262 Achievements

  • Introduction to Functions
  • Getting to Know Tuples
  • Build an Application
  • Using Lists
  • Meet Lists
  • Functions and Looping
  • All Together Now
  • Types and Branching
  • Exploring pandas
  • Meet pandas
  • Array Programming
  • Array Organization
  • Meet NumPy
  • What is Asynchronous Programming?
  • Understanding Flexbox
  • Stateful Components and Lifecycle Methods
  • Managing State and Data Flow
  • Build Modular Interfaces with Components
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Next Steps
  • Improving Our Tests
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Building API Routes in Express
  • Building a REST Service
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Adding the Game Logic
  • Making the Game Interactive
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • Basic Layout
  • The Box Model
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Finishing the Game
  • Introducing JavaScript
  • Introduction to Callback Functions
  • Combining Array Methods
  • Objects and New Collection Types
  • JavaScript Functions
  • Data Types and Variables
  • Array Manipulation
  • Practice forEach
  • Array Iteration
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Meet Python
  • Discovery
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • The Browser Environment
  • JavaScript Objects
  • JavaScript Arrays
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • 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
  • Cross-platform Development with Xamarin
  • Flask Templates
  • Welcome to Flask
  • RESTful Django
  • Model Administration
  • Getting to Know Your Data
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Loops and Final Touches
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • Perfect
  • Go Further With Mongo
  • Getting Started with Xamarin
  • Navigating Through An Adventure
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Perform
  • Console I/O
  • Prepare and Plan
  • Structs As Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • The Delegate Pattern
  • Properties
  • Buggy Logs
  • Cleaner Code
  • Python: Inheritance
  • Python: Instant Objects
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Introduction to Video Games
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Letter Game App
  • What a View
  • Say Hello to Django
  • Controllers
  • Loading Data From a Resource
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • Complex Data Structures
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Modeling an Interface
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Python Data Types
  • Python For Beginners
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Generics with Swift 2
  • Project Setup
  • Database Keys
  • Database Normalization
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Manipulating Schema with SQL
  • Creating Tables and Manipulating Data with SQL
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Navigating Through an Adventure
  • Memory, Arrays and Loops, Oh My!
  • Getting Oriented - Object-Oriented, That Is
  • Immersive Examples
  • Scope and Loops
  • More Operators
  • Operators and Conditionals
  • Finding the Data You Want
  • Data Types and Variables
  • Intro to Objective-C
  • Getting Data from a Database
  • Data, Databases and SQL
  • What Are Design Patterns?
  • Delegation in iOS
  • Introduction to Delegates
  • Loading Data From a Resource
  • Modeling An Interface
  • Using a Navigation Controller With Segues (Swift)
  • Working With Multiple View Controllers (Swift)
  • JavaScript Loops
  • Error Handling in Swift 2.0
  • JavaScript Functions
  • Workflows
  • Working With Remote Repositories
  • Creating Flexible Objects Using Protocols
  • Merging
  • Branches
  • Swift 2.0 Protocols
  • Getting Started With Git
  • Why Version Control Matters
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Objects and Optionals
  • Moving Around in the Console
  • Introduction to Optionals
  • Introduction to Enumerations
  • Running Apps on a Device
  • Improving Our User Interface
  • JavaScript Conditional Statements
  • Structs as Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Differentiating Between Objects
  • Class Inheritance
  • Classes
  • Complex Data Structures
  • Function Parameters
  • Functions in Swift 2.0
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • Swift Dictionaries
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Swift Optionals
  • Swift Parameters and Tuples
  • Swift Functions
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • Meet Objects
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Newbie