Chapman Cheng
seal-mask

Chapman Cheng

Techdegree Graduate

Member Since April 15, 2017

46,936

Total Points

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

Skills & Experience

  • Spoken Languages

    • Cantonese
    • English
    • Mandarin
  • Looking for work

    Yes

399 Achievements

  • Now You're Querying!
  • Adding a List Page
  • Data Reader
  • Modeling and Presenting Data
  • Views
  • Controllers
  • Project Setup
  • Abstraction
  • System.Object
  • Polymorphism
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • Methods
  • Strings
  • Numbers
  • If Statements
  • C# Syntax
  • Next Steps
  • Improving Our Tests
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • Lists, Code, Links and Images
  • Understanding Markdown
  • JSON Web Tokens
  • Cookies
  • Setting Up Authorization in PHP
  • Building Authentication in PHP
  • Environment Variables
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Security: Solutions
  • Security: Concerns
  • Clean Routes and Custom Validation
  • Accessing Data using Resources
  • Laravel CRUD operations
  • Seeding the Database
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Creating a GitHub Client
  • What is Authentication
  • Communicating with a RESTful API
  • Parsing Specific Formats
  • Basic File Handling
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • Testing Existing Projects
  • Test Driven Development
  • Introduction to Unit Testing
  • Docker Use Cases
  • MVC (Model)
  • MVC (View)
  • MVC (Controller)
  • Application Navigation (Routing)
  • Getting Started With Laravel
  • Templating Languages
  • Imposter Syndrome
  • Building an MVC Project
  • Model View Controller
  • Abstract Classes in PHP
  • Using Interfaces in PHP
  • Designing Interfaces in PHP
  • Extending the Family
  • Inheritance
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Updating and Deleting Records
  • Reading and Writing Reports
  • Creating Records
  • Project Setup
  • PHPDB Stage 5: Search
  • Building a Collection
  • Building the Recipe
  • Understanding Classes
  • Why Object-Oriented Programming?
  • PHPDB Stage 4: Pagination with LIMITs
  • PHPDB Stage 3: Using Relational Data
  • Browser Persistent Data with PHP
  • Filtering Inputs and Escaping Outputs in PHP
  • $_GET and $_POST
  • PHP Inventory
  • PHP Includes
  • Branches
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Adding the Game Logic
  • Making the Game Interactive
  • React Router and Authentication
  • Implementing Basic Authentication
  • Exploring Arrays
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Introducing the Authentication Project
  •  Working on a Team
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  • Working By Yourself
  • What is Agile?
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Refactoring and Modularizing a REST API
  • Create, Read, Update, Delete
  • Managing Data and Asynchronous Code
  • Getting to Know REST APIs
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • Performing CRUD Operations
  • Defining Models
  • Getting Started with Sequelize
  • Asynchronous Code in Express
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • React Component Patterns
  • Stateful Components and Lifecycle Methods
  • Managing State and Data Flow
  • Build Modular Interfaces with Components
  • Stateful Components
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • Creating a Command Line Weather Application
  • Classes
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Regular Expressions
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • 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
  • The Role of Selectors in JavaScript
  • Pseudo-classes and Combinators
  • Selector Basics
  • Handling Errors in Node
  • Building Your Resume
  • 5th Techdegree Peer Review
  • Introducing Props
  • Thinking in Components
  • Regular Expressions
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • Objects and New Collection Types
  • Checking Out and Returning a Book
  • Starting with Some Methods
  • The Rough Plan
  • What is npm?
  • Common Commands
  • Directories and Files
  • The Command Shell
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • 5 Star Techdegree Reviewer
  • 1st Techdegree Peer Review
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Modular Media Queries
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Getting Modular with Mixins and Functions
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • 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
  • Getting Started with Sass
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • How to Critique Design
  • Using Slack Effectively
  • Introducing Slack for the Techdegree
  • Hello, GitHub!
  • GitHub and Other Remote Repositories
  • Beginning HTML and CSS
  • WordPress User Roles
  • WordPress Plugins
  • WordPress Themes
  • The WordPress Customizer
  • Managing Media in WordPress
  • Managing Content in WordPress
  • Installing WordPress Locally
  • Getting the REST You Need 2
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • The Cooler Parts of ES2015
  • First Steps in React
  • Getting Data From an API With Node
  • Introduction to Node.js
  • ES2015 Basics
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Practicing Classes
  • Practicing Getters and Setters
  • Introducing 'Four in a Row'
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Console Users and Permission
  • Moving Around in the Console
  • JavaScript Objects and Conditionals
  • Practice forEach
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Practicing Object Basics
  • PHP Email Form Errors
  • PHP Email Forms
  • PHP Inventory
  • PHP Includes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • PHP Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • What Is WordPress?
  • Managing Committed Files
  • First Commits
  • Chrome DevTools Basics
  • Testing for Accessibility
  • Mobile Accessibility
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Access for Everybody
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Captioning Video
  • Media Basics
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Traversing the DOM
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • 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
  • Exploration
  • Discovery
  • Designing with the Latest Features
  • Fundamental Concepts
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Creating an SVG
  • Introduction to SVG
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • 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
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Build an Application
  • Using Lists
  • Meet Lists
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • Website Basics
  • Create Function Using Arrow Syntax
  • MASH JavaScript
  • Defining Variables With let and const
  • Using Template Literals
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Finishing the Game
  • Introducing JavaScript
  • MASH CSS
  • MASH HTML
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • Computer Basics
  • Computer Languages
  • WWW
  • The Internet
  • Newbie