peichunliu

peichunliu

Member Since December 2, 2015
Open to Work

33,154

Total Points

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

Skills & Experience

434 Achievements

  • Running Apps On a Device
  • Creating a Data Model
  • Improving our User Interface
  • Collections and Random Numbers
  • Views and View Controllers
  • Getting Started With iOS Development
  • A High Level Overview
  • Closure Expressions
  • First Class Functions
  • Value Semantics, Type Methods and Inheritance
  • Writing Great Swift
  • Object Initialization
  • Properties
  • Prototyping with a Design System
  • Material Design Basics
  • Understanding Design Systems
  • Implementing UX Content
  • Creating UX Content
  • UX Content Attributes
  • UX Content Basics
  • Running Apps on a Device
  • Improving Our User Interface
  • Structs As Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Setting up with Create React App
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Combining Array Methods
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • How to Critique Design
  • Array Manipulation
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Practicing Classes
  • Practicing Object Basics
  • React Component Patterns
  • 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
  • Quantitative Methods
  • Usability Studies
  • Qualitative Studies
  • Measuring Your Designs
  • Exploring Arrays
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • The Design Solution
  • The Design Problem
  • Design Principles
  • How to Make Wireframes in Adobe XD
  • How to Make Wireframes in Sketch
  • How to Make Wireframes in Balsamiq
  • How to Make Wireframes on Paper
  • What is Wireframing?
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Planning Your Users’ Journey
  • Strategy: Determining Goals for your Product
  • Understanding Our Users
  • Intro to User Experience (UX) Design
  • Applying IA
  • Evaluating IA
  • Main Principles
  • What is Information Architecture?
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • Practice forEach
  • JavaScript Functions
  • Data Types and Variables
  • Persuasive Patterns
  • UI Patterns
  • Designing with Patterns
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • JavaScript Outside of the Browser
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Getting Started with GraphQL
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • Python Lists
  • Build an Application
  • Using Lists
  • Meet Lists
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • 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
  • Add Reusable Logic to Your Sass
  • 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
  • Logic in Python
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Python Data Types
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Access for Everybody
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • Telling the Story
  • Designing for Your User’s "To-be"
  • Understanding your User’s “As-is” Scenario
  • Becoming Acquainted with Your User
  • Becoming a Design Thinker
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • What is Product Design?
  • Introducing jQuery (2017)
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Treehouse Club - JavaScript
  • Computer Languages
  • Computer Basics
  • Getting Started with MongoDB
  • Installing WordPress Locally
  • What Is WordPress?
  • ES2015 Basics
  • Build a Spreadsheet
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started With Spreadsheets
  • Introducing Spreadsheets
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Array Iteration
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Design Patterns
  • Page Layout
  • Exploration
  • Discovery
  • Getting a Handle on the DOM
  • The Browser Environment
  • Finishing the Game
  • Introducing JavaScript
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Console Users and Permission
  • Moving Around in the Console
  • Captioning Video
  • Media Basics
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Why Version Control Matters
  • Chrome DevTools Basics
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • DOM Traversal
  • DOM Manipulation
  • Events
  • JavaScript Objects
  • JavaScript Arrays
  • Complex Data Structures
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Exploring an API
  • Dictionaries in Swift
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • Structuring Your Content
  • What is Big Data
  • Going Further with HTML
  • Images, Text and Links
  • Getting Started With HTML
  • Security: Solutions
  • Security: Concerns
  • Python For Beginners
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • An Introduction to Swift Programming
  • JavaScript Loops
  • Introduction to HTTP
  • DNS Basics
  • Graphic Basics
  • Hello, jQuery!
  • JavaScript and the DOM
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • JavaScript Functions
  • Introduction to SEO
  • Website Basics
  • JavaScript Conditional Statements
  • WWW
  • The Internet
  • 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
  • Web Apps
  • Websites
  • Introduction
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Working with a Developer
  • Designing our App
  • Wireframing, Interaction Design and Planning
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • Introducing Sketch
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Welcome to the Treehouse Club
  • Introduction to Front-End Frameworks
  • Gradients
  • Web Typography
  • Backgrounds and Borders
  • CSS Box Model
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Selectors
  • Getting Started with CSS
  • Treehouse Club - CSS
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Working with Media Queries
  • CSS Animation Basics
  • Understanding CSS Transitions and Transforms
  • Understanding Flexbox and Multi-Column Layout
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Creating an SVG
  • Introduction to SVG
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Design Foundations Final
  • Becoming a Problem Solver
  • The Logo Sprint
  • Logo Design 101
  • Save for the Web
  • Adding Images and a Mockup
  • Logo Design
  • Creating a Wireframe
  • Introducing Adobe Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Layer Basics
  • Workspace Basics
  • Understanding Aesthetics
  • Beginning HTML and CSS
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Building a Layout with Flexbox
  • Introduction to Design
  • Flexbox Properties
  • Understanding Flexbox
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • 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
  • Newbie