Natalie Tan

Natalie Tan

Member Since December 1, 2017

25,519

Total Points

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

297 Achievements

  • Array Programming
  • Array Organization
  • Higher Order Functions
  • Scala Collections
  • Merge Sort and Linked Lists
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Meet NumPy
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • Getting Started with Redux
  • Functional Programming with Scala
  • Diving into Web Development
  • Event Planning
  • Playing a Counting Game
  • Build a Pomodoro App
  • Design a Better App
  • Graphical User Interfaces
  • Writing Your Own Java Annotation
  • Using Java's Built-In Annotations
  • Review Functional Programming Fundamentals
  • Reduction and Aggregation
  • Meet Streams
  • Java's Functional Toolset
  • WWW
  • The Internet
  • Website Basics
  • Computer Languages
  • Computer Basics
  • What to Test
  • How To Test
  • Why Test
  • Dockerize a Web App
  • Managing Images and Containers
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • Advanced Tooling
  • Creating and Modifying Database Tables
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • 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
  • IDE Exploration
  • How it Works
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Gotchas and Wins
  • Iteration
  • Creation
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Setting up with Create React App
  • Component Lifecycle
  • Designing Dataflow
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Improving the Application Code
  • Editing and Filtering Names
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • AJAX and APIs
  • jQuery and AJAX
  • 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
  • Getting Started with GraphQL
  • Working with jQuery Collections (2017)
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Getters and Setters
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Adding and Removing Names
  • Programming AJAX
  • AJAX Concepts
  • Defining Variables With let and const
  • Using Template Literals
  • Create Function Using Arrow Syntax
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • JavaScript Arrays
  • JavaScript Objects
  • JavaScript Loops
  • JavaScript Numbers
  • JavaScript Conditional Statements
  • JavaScript Functions
  • Introducing JavaScript
  • JavaScript Variables
  • Introducing JavaScript
  • Finishing the Game
  • API Authentication
  • Coding the API
  • Route Connections
  • Introduction to REST
  • Why Protect Your Web Apps
  • Hello Internet!
  • Query Interface
  • Migrations and Relationships
  • More Association Options
  • Practice Updating Resources
  • Practice CRUD Operations
  • Practice Creating Scaffolds
  • Using Associations in Your App
  • Active Record Associations
  • A Route to a Delete Action
  • Routes to Update Actions
  • Validation
  • Routes for Create Actions
  • A Route to a Read Action
  • Rails Resource Index
  • Store Inventory Using Modules
  • Sinatra Finishing Touches
  • Updating Data in Sinatra
  • Input and Output
  • Search
  • Adding New Data in Sinatra
  • Introduction to ActiveRecord
  • Sinatra ERB Templates
  • Creating New Sinatra Apps
  • Form Basics
  • Exploration
  • Discovery
  • What is Agile?
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Ruby Class Design
  • Blocks Practice
  • Working With Blocks
  • Gems In Depth
  • Ruby Gems
  • Ruby Standard Library: Part 1
  • Ruby Standard Library: Part 2
  • Include and Extend
  • Ruby Core Modules
  • Ruby Module Basics
  • Ruby Core
  • Ruby Blocks
  • Adding a Model Attribute
  • Using the Rails Console
  • Handling Rails Requests
  • Creating Rails Apps
  • 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 Conditionals
  • Ruby Numeric Types
  • Ruby Objects
  • Ruby Strings and Escape Sequences
  • Ruby Syntax
  • Styling and Scaling Data
  • Data Binding with D3
  • Selections with D3
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Users and Authorization
  • Django Authentication
  • Security and Customization
  • Make the REST Framework Work for You
  • RESTful Django
  • Getting the REST You Need
  • Customizing Class-based Views
  • Classy Views
  • Detail View
  • List View
  • The Django Admin
  • Total Control
  • Basic ORM Usage
  • Same Old ORM
  • Inlines and Media
  • Django Model Forms
  • Django Models
  • Django Forms
  • Building Custom Filters
  • Building Custom Tags
  • Template Tags and Filters
  • Test Time!
  • Final Details
  • Django Templates
  • Model Administration
  • What a View
  • Say Hello to Django
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • 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
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Letter Game App
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Newbie