James Oh

James Oh

Boston, MA

39,169

Total Points

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

501 Achievements

  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Angular Components
  • Setting Up an Angular Application
  • Controllers and Scope
  • Getting Started with Angular
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Getting Started with Express
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • The Internet
  • Computer Languages
  • Perfect
  • Perform
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • Console I/O
  • Prepare and Plan
  • What is npm?
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Building a Command Line Application
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • The Local Development Environment
  • Selectors - Beyond the Basics
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Computer Basics
  • Getting Started with CSS
  • WordPress Settings API Overview
  • Introduction to Node.js
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • AngularJS MVC Frameworks
  • Swift Enums
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • Advanced Directives
  • Concepts on Advanced Functions
  • Advanced Variables, Mixins, Functions, and Placeholders
  • Getting Started with Advanced Sass
  • Testing and Sharing the Extension
  • Building the Extension
  • Spriting with Compass
  • Compass Helper Functions
  • Compass Layout and Typography
  • Timezones
  • Math Quiz App
  • Getting Started with Compass
  • Modular Media Queries
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Getting Modular with Mixins and Functions
  • Advanced Techniques
  • Responsive Design
  • Adaptive Design
  • Fluid Foundation
  • Introduction to Responsive Web Design
  • What's New in Foundation 5
  • Build a Website With Foundation
  • Prototyping With Foundation
  • Build a Website With Bootstrap
  • Prototyping With Bootstrap
  • Introduction to Front-End Frameworks
  • Treehouse Club - CSS
  • MASH JavaScript
  • Dates and Times
  • MASH CSS
  • MASH HTML
  • Exploring Ember
  • Ember Data
  • Models
  • Controllers
  • Routes and Templates
  • Getting Started with Ember.js
  • Local Python
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • Customizing BuddyPress
  • Social Interactions in BuddyPress
  • Manage BuddyPress Member Profiles
  • Getting Started with BuddyPress
  • Running an Ecommerce Site Long Term
  • Extending WooCommerce
  • Managing Orders in WooCommerce
  • Managing Products in WooCommerce
  • Setting Up WooCommerce
  • Introduction to Ecommerce with WordPress
  • The Genesis Marketplace
  • Configuring a Genesis Child Theme
  • An Overview of the Genesis Framework
  • An Overview of WordPress Frameworks
  • Add Bootstrap Components to WordPress Theme
  • Create Bootstrap Styled Theme Templates
  • Setup a Bootstrap Theme
  • Finishing Your WordPress Theme
  • Custom Homepage Templates in WordPress
  • Adding a Blog to a WordPress Theme
  • Custom Post Type Templates
  • Building Out WordPress Navigation
  • Building Page Templates in WordPress
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Starting a WordPress Theme
  • A Template Hierarchy Review
  • Media Templates in WordPress
  • Custom Post Type Templates
  • Archive Templates in WordPress
  • Page and Post Templates in WordPress
  • Homepage Templates in WordPress
  • Core WordPress Theme Files
  • How WordPress Templates Work
  • WordPress Admin Settings
  • Ruby Basics
  • Installing a Ruby Development Environment
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Start menu and App Icon
  • Sound Design
  • Animating and Saving Sprites
  • Designing Characters and a Scene
  • Introduction to Game Design
  • Working with a Developer
  • Designing our App
  • Wireframing, Interaction Design and Planning
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • The Logo Sprint
  • Logo Design 101
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Getting Work Done
  • A Lifestyle Choice
  • Growing Your Business
  • Client Services
  • Sales and Pitching
  • Marketing and Promotion
  • Making sense of it all
  •  Learning activity: Interviewing
  • Learning activity: Field Observation
  • Learning activity: Experience Sampling
  • Finding participants for your learning activity
  • Solving an Important Problem
  • Business Plan for Freelance Business
  • Business Plan Basics
  • Creating a Long Term Business
  • Protecting Yourself With Contracts
  • Establishing a Proper Workflow
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Moving Beyond the Blog
  • Finding Business
  • Creating Content
  • Introduction to Blogging
  • Protecting and Sharing Your Work
  • Licensing
  • Fair Use and Public Domain
  • Getting Started with Copyright
  • Professional Development
  • Applying & Interviewing
  • The Job Search
  • Networking
  • Personal Branding
  • Setting Your Course
  • Careers in the Tech Industry
  • Self-Assessment
  • Soft Skills - Psychology
  • Important Skills For Professional Success
  • Presentation Skills
  • Writing Online
  • Productivity
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Relating Models
  • Laravel CRUD
  • Validation & Flash Messages
  • Laravel Forms
  • Laravel & Databases
  • Laravel Controllers
  • Laravel Project Setup
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • Laravel Getting Started
  • WordPress User Roles
  • Moving from WordPress.com to Self-Hosted WordPress.org
  • Finding Good WordPress Plugins and Themes
  • Managing Comments on a WordPress Blog
  • Working with Media in WordPress Blogs
  • Posts and Pages in WordPress
  • Blogging with WordPress Overview
  • WordPress.com Social Features
  • Building a WordPress.com Site
  • Getting Started with WordPress.com
  • Custom Dashboard Widgets
  • Controlling Admin Navigation
  • Customizing the Login Screen
  • Admin Color Schemes
  • Website Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Structuring Tables
  • Table Basics
  • Getting Started with WordPress
  • Getting a WordPress Site
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Video Marketing
  • Email Marketing
  • Search Engine Optimization
  • Usability Testing
  • Usability Basics
  • Social Media
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Welcome to the Treehouse Club
  • Buggy Logs
  • Cleaner Code
  • Displaying Our Weather Data
  • Data Modeling With Structures
  • Concurrency
  • Pulling Data From the Web
  • Deploying to a Device
  • Debugging Our App
  • Improving Our User Interface
  • Using a Data Model
  • Views and View Controllers
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Customizing Google Maps
  • Google Maps Integration
  • Treehouse Club - JavaScript
  • jQuery Plugins
  • Form Validation and Manipulation
  • Introduction to jQuery
  • Traversing and Manipulating the DOM with JavaScript
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Getting Started with Xcode
  • DNS Basics
  • Swift Optionals
  • Swift Parameters and Tuples
  • Swift Functions
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • Graphic Basics
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Slices
  • Lists Redux
  • Hack-n-Slash
  • Python Inheritance
  • Python Objects
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • The WordPress Codex
  • Launching and Supporting a WordPress Plugin
  • Building WordPress Template Tags, Widgets, and Shortcodes
  • Connecting WordPress Plugins with 3rd Party APIs
  • Building a WordPress Plugin Settings Page
  • How WordPress Plugins Work
  • Launching a WordPress Site
  • WordPress and Forms
  • Extending WordPress Template Functionality
  • Converting Static HTML into WordPress Templates
  • Preparing to Code WordPress Templates
  • WordPress Theme Functions
  • WordPress Theme Templates
  • Content Strategy with WordPress
  • Local WordPress Development
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • Creating Home Page Assets
  • Applying Effects
  • How to Draw in Illustrator
  •  Adding Color and Type
  • Creating an Icon
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Introduction to Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • Getting Started With Git
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Why Version Control Matters
  • Chrome DevTools Basics
  • Layer Basics
  • Web Apps
  • Websites
  • Introduction
  • Workspace Basics
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Color Theory
  • Principles
  • Elements
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • JavaScript Objects
  • JavaScript Functions
  • JavaScript Arrays
  • JavaScript Numbers
  • JavaScript Strings
  • Introduction Variables
  • Media Queries
  • CSS Animations
  • Transitions and Transforms
  • Flexbox and Multi-Column Layout
  • Gradients
  • Web Typography
  • Backgrounds and Borders
  • CSS Box Model
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Selectors
  • Securing and Maintaining a MySQL Database
  • 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
  • Limiting Results in Queries
  • Using Relationship Tables
  • Filtering Input for Queries
  • Querying the Database
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Adding Search: Model
  • Adding Search: Controller & View
  • Refactoring the Codebase
  • Cleaning URLs with Rewrite Rules
  • Cleaning URLs with Subfolders
  • Integrating Validation Errors
  • Connecting to MySQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • Adding a Contact Form
  • Creating the Menu and Footer
  • Getting Started with PHP
  • Getting Started with CSS
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Functions
  • Objects and Arrays
  • Introduction to Accounting
  • Marketing Basics
  • Forming Your Company
  • Corporate Structure
  • Why Start a Business?
  • Control Structures
  • Basics
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Newbie