Hanwen Zhang

Hanwen Zhang

New York, NY

A career changer, from social work to software development.

15,509

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

    • English
    • Chinese
  • Looking for work

    Yes

180 Achievements

  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Build Modular Interfaces with Components
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Refactoring and Modularizing a REST API
  • Create, Read, Update, Delete
  • Managing Data and Asynchronous Code
  • Getting to Know REST APIs
  • Asynchronous Code in Express
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Adding the Game Logic
  • Making the Game Interactive
  • Rendering the Game
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • Making Strong Users
  • API Protection
  • Resourceful Blueprints
  • Python File Systems Manipulation
  • Python File Systems Navigation
  • How to Win Friends
  • Broadcasting
  • Takin' Names
  • Get Involved in Open Source
  • Working By Yourself
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Hello, GitHub!
  • WWW
  • Connecting to a Database with SQLAlchemy
  • Creating a Basic Website with Flask
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • The Lambda Lambada
  • The Internet
  • Functional Workhorses
  • Functional Rules
  • Working with SQLAlchemy
  • Introduction to SQLAlchemy
  • Getting the REST You Need 2
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Playing a Counting Game
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Python Regular Expressions
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Creating a Memory Game
  • Emulating Built-ins
  • Welcome to OOP
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Imposter Syndrome
  • Getting to Know Tuples
  • Build an Application
  • Using Lists
  • Computer Languages
  • Computer Basics
  • Meet Lists
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • What is npm?
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Fundamental Concepts
  • Understanding Values and Units
  • Going Further with HTML
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Basic Selectors
  • Structuring Your Content
  • Getting Started With HTML
  • Images, Text and Links
  • Getting Started with CSS
  • Programming AJAX
  • AJAX Concepts
  • GitHub and Other Remote Repositories
  • Managing Committed Files
  • First Commits
  • Practicing Classes
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Common Commands
  • Directories and Files
  • The Command Shell
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Introduction to Object-Oriented JavaScript
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Build an Accessible Form
  • Introduction To Accessibility
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • 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
  • The Role of Selectors in JavaScript
  • Pseudo-classes and Combinators
  • Loop Through Objects
  • Object Basics
  • Multidimensional Arrays
  • Loop Through Arrays
  • Store Multiple Values in an Array
  • Working with 'for' Loops
  • Simplify Repetitive Tasks with Loops
  • Arrow Functions
  • Pass Information Into Functions
  • Create Reusable Code with Functions
  • Making Decisions in Your Code with Conditional Statements
  • Selector Basics
  • Working With Strings
  • The Math Object
  • Working with Numbers
  • Storing and Tracking Information with Variables
  • Hello, JavaScript!
  • 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
  • Newbie