Duy Pham

Duy Pham

Courses Plus Student

Member Since May 23, 2017

44,614

Total Points

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

492 Achievements

  • Objective-C in Action
  • Intermediate Topics in Objective-C
  • The Objective-C Mindset
  • Basic Types, Structures and Syntax
  • Moving from Swift to Objective-C
  • Asynchronous Error Handling
  • Closures in Cocoa Touch
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Delegation in iOS
  • Introduction to Delegates
  • Generics with Swift 2 - Beyond Basics
  • Themes and Compatibility
  • Using Styles in Layouts
  • Decoupling the Data Source
  • Sorting Contacts Into Sections
  • Static Table Views for Detail Interfaces
  • Displaying Contact Data
  • A High Level Overview
  • Using the Delegate Pattern in iOS
  • The Delegate Pattern
  • Visual Format Language
  • Auto Layout in Code
  • Trait Collections
  • Inequalities, Content and Priorities
  • The Constraint Equation
  • A History Lesson
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling an Interface
  • Running Apps on a Device
  • Improving Our User Interface
  • Structs As Data Models
  • View Controllers and Views
  • Generics with Swift 2
  • Getting Started with iOS Development
  • Memory Management in Swift 2
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization in Swift 2
  • Properties in Swift 2
  • Contact Forms & Mailers
  • Slim and Templates
  • Dependency Management
  • Abstract Classes in PHP
  • Using Interfaces in PHP
  • Designing Interfaces in PHP
  • Extending the Family
  • Inheritance
  • Building a Collection
  • Building the Recipe
  • Understanding Classes
  • Why Object-Oriented Programming?
  • Planning Our Service
  • Digging Deeper Into Migrations
  • Getting Started with Using Migrations
  • Completing the Project
  • Data Access Design Patterns
  • Entity Framework and ASP.NET MVC
  • Project Setup
  • CRUD Operations
  • LINQ Queries
  • Extending Our Entity Data Model
  • Entity Framework and Databases
  • Introducing Entity Framework
  • Installing WordPress Locally
  • Refactoring Our Code (objc)
  • Building the Master and Detail Views (objC)
  • Managing Playlist Data (objC)
  • Building a Music Library Model (objc)
  • Working With Multiple View Controllers (ObjC)
  • A Route to a Delete Action
  • Routes to Update Actions
  • Routes for Create Actions
  • A Route to a Read Action
  • Rails Resource Index
  • Adding a Model Attribute
  • Using the Rails Console
  • Handling Rails Requests
  • Creating Rails Apps
  • Video Marketing
  • Email Marketing
  • Search Engine Optimization
  • Usability Testing
  • Usability Basics
  • Social Media
  • Ruby Conditionals
  • Ruby Numeric Types
  • Ruby Objects
  • Ruby Strings and Escape Sequences
  • Ruby Syntax
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Finishing Our CRUD Web App
  • Adding Form Validation
  • Improving Our Form
  • Creating a Basic Form
  • Introducing CRUD Applications
  • Adding a List Page
  • Modeling and Presenting Data
  • Views
  • Controllers
  • Project Setup
  • Review Functional Programming Fundamentals
  • Reduction and Aggregation
  • Meet Streams
  • Java's Functional Toolset
  • Getting the REST You Need
  • File Uploads and Entity Updates in Spring + Hibernate
  • User Messages in Spring
  • Getting Started with CRUD in Spring + Hibernate
  • Data-Driven Application Design
  • Integrating Hibernate with Spring
  • Parsing Specific Formats
  • Basic File Handling
  • Updating and Deleting Records
  • Reading and Writing Reports
  • Creating Records
  • Project Setup
  • Browser Persistent Data with PHP
  • Error Handling and Memory Management
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Generics and Protocols
  • Generic Types
  • Generic Functions, Parameters and Constraints
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Using the MVC Architecture with Spring
  • Modeling, Storing, and Presenting Data with Spring
  • Creating Spring Controllers and Thymeleaf Views
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • Writing Your Own Java Annotation
  • Using Java's Built-In Annotations
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Bells and Whistles
  • Creating an SVG
  • Introduction to SVG
  • Diving into Web Development
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Chrome DevTools Basics
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • Web Apps
  • Websites
  • Introduction
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Deploying to a Device (ObjC)
  • Debugging Our App (ObjC)
  • Improving Our User Interface (ObjC)
  • Creating a Data Model (ObjC)
  • Views and View Controllers (ObjC)
  • Getting Started with Xcode (ObjC)
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Design Patterns
  • Page Layout
  • Writing Great Swift
  • What to Test
  • How To Test
  • Why Test
  • PHPDB Stage 5: Search
  • PHPDB Stage 4: Pagination with LIMITs
  • PHPDB Stage 3: Using Relational Data
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • Captioning Video
  • Media Basics
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • 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
  • Structuring Tables
  • Table Basics
  • Exploration
  • Discovery
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Access Control
  • Memory Management in Swift
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization
  • Properties
  • Sinatra Finishing Touches
  • Updating Data in Sinatra
  • Adding New Data in Sinatra
  • Sinatra ERB Templates
  • Creating New Sinatra Apps
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Tying It All together
  • Diving Deeper
  • Memory, Arrays and Loops, Oh My!
  • Getting Oriented - Object-Oriented, That Is
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Gems In Depth
  • Ruby Gems
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Computer Languages
  • Computer Basics
  • Immersive Examples
  • Scope and Loops
  • More Operators
  • Operators and Conditionals
  • Data Types and Variables
  • Intro to Objective-C
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Ruby Standard Library: Part 2
  • Ruby Standard Library: Part 1
  • Ruby Core
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Differentiating Between Objects
  • Store Inventory Using Modules
  • Positioning Page Content
  • CSS Layout Project
  • WordPress User Roles
  • Table Relationships
  • Class Inheritance
  • Classes in Swift
  • Include and Extend
  • Page Layout with the Float Property
  • WordPress Plugins
  • WordPress Themes
  • The WordPress Customizer
  • Managing Media in WordPress
  • Managing Content in WordPress
  • Database Keys
  • Database Normalization
  • Component Lifecycle
  • Designing Dataflow
  • Ruby Core Modules
  • Ruby Module Basics
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • How to Install WordPress on Your Computer
  • What Is WordPress?
  • Input and Output
  • Search
  • Ruby Class Design
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Ordering, Limiting and Paging Results
  • 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
  • Stateful Components
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • Thinking in Components
  • First Steps in React
  • Build a Simple Todo List Program
  • Ruby Booleans
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • 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
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • 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
  • 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
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Finishing the Game
  • Introducing JavaScript
  • Complex Data Structures
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • What To Test
  • Test Driven Development
  • Writing Unit Tests
  • Unit Testing
  • Query Builder
  • Query Operators
  • Functional!
  • Now You're Querying!
  • Sets and Dictionaries
  • Lists
  • Arrays
  • Data Retreiver
  • Serialized!
  • Data Parser
  • Data Reader
  • Abstraction
  • System.Object
  • Polymorphism
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • Event Planning
  • Build a Pomodoro App
  • Perfect
  • Perform
  • Console I/O
  • Prepare and Plan
  • Design a Better App
  • Graphical User Interfaces
  • Advanced Tooling
  • IDE Exploration
  • How it Works
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Dice Roller
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Letter Game App
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Newbie