Jacob Herper

Jacob Herper

Coventry, West Midlands, United Kingdom

I am a passionate Software Engineer, specialised in front-end development using React and TypeScript. As an advocate for web performance and accessibility and an evangelist for the Jamstack, I create web apps to make the internet a better place.

94,150

Total Points

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

Skills & Experience

  • Company

    Holland & Barrett

  • Job Title

    Senior Software Engineer (SDE2 Front-End)

  • Spoken Languages

    • English
    • German
    • Italian (basics)
    • Russian (basics)
    • Spanish (basics)

1195 Achievements

  • React Router and Authentication
  • Implementing Basic Authentication
  • Introducing the Authentication Project
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Generative AI
  • Creating Web Designs with Generative AI
  • Project Planning with Generative AI
  • Introduction to Computer Vision
  • In-Depth Comparison of AI Chatbots
  • Introduction to Individual Chatbots
  • Introduction to AI Chatbots
  • Introduction to AI Plugins for Figma
  • Practical Applications and Ethical Considerations
  • Introduction to NLP
  • Creating a Command Line Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Introducing Large Language Models
  • React Component Patterns
  • Stateful Components and the Effect Hook
  • Managing State
  • Data Flow
  • Build Modular Interfaces with Components
  • Understanding State
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Functions in TypeScript
  • Manipulating Types
  • Working with (More) Types
  • Getting Started with TypeScript
  • CSS Fundamentals
  • HTML Fundamentals
  • Getting Familiar with HTML and CSS
  • Creating a Basic Website with Flask
  • Seaborn Data Visualization Challenges
  • Plotting Functions
  • Introduction to Seaborn
  • Welcome to Basic Math for Data Analysis
  • Creating a Memory Game
  • Emulating Built-ins
  • Welcome to OOP
  • Technical Interview Prep: Basic Python
  • Layout Patterns
  • Navigation Patterns
  • Designing With Patterns
  • Practicing Data Visualization
  • Line and Area Charts, Scatter Plots, and Maps
  • Bar Charts, Histograms, and Pie Charts
  • Data Visualization Fundamentals
  • 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
  • Preparing Design Files for Developers
  • Designing with Developers
  • Data Cleaning
  • Understanding Cleaning Data
  • Managing Packages with NPM
  • Tools and Techniques
  • The Deeper Negative Impacts on Society
  • Tricky Interfaces & Dirty Data
  • Introduction to Ethical Design
  • Technical Interviewing
  • How to Have 1:1's
  • Retrieve Related Data in Sequelize Queries
  • Create Related Data Using Sequelize Models
  • Data Relationships in Sequelize
  • Understand Data Relationships
  • Traversing the DOM
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Hello Node.js
  • Finishing Touches
  • Styling Images
  • Styling Boxes
  • Styling Text
  • CSS Media Queries
  • CSS Layout Techniques
  • Box Model Concepts
  • The CSS Box Model
  • Mobile-First CSS Layout
  • Fundamental Concepts
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Validating Data
  • The Importance of Data Validation
  • Going Beyond & Best Practices
  • Introduction to User Onboarding
  • 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
  • Users and Authorization
  • Django Authentication
  • Security and Customization
  • Make the REST Framework Work for You
  • RESTful Django
  • 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
  • Adding the Game Logic
  • Making the Game Interactive
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Practice Functions
  • How it Works
  • Using the Discovery Service
  • Using the Conversation Service
  • Introducing the Watson APIs
  • Bokeh Visualizations
  • Bokeh Data
  • Data Eruption
  • Chart Toppers
  • Getting Started with Data Visualization
  • Build an Accessible Form
  • Introduction To Accessibility
  • Building Custom Filters
  • Building Custom Tags
  • Template Tags and Filters
  • Review Functional Programming Fundamentals
  • Reduction and Aggregation
  • Meet Streams
  • 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
  • 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
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Writing Your Own Java Annotation
  • Using Java's Built-In Annotations
  • Bells and Whistles
  • Java Maps
  • Java Lists
  • Generics in Java
  • Interfaces in Java
  • Java Inheritance
  • Gotchas and Wins
  • Iteration
  • Creation
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Python File Systems Project Starter
  • Python File Systems Manipulation
  • Python File Systems Navigation
  • Bringing It All Together
  • Designing for iOS
  • Material Design Components
  • Working With Material Design
  • Merge Sort and Linked Lists
  • The Merge Sort Algorithm
  • Building a Linked List
  • Design an Accessible Form
  • Introducing Accessible Design
  • Voice and Tone
  • User Interface Library
  • Visual Design Language
  • Understanding Design Systems
  • Going Further with Type
  • Laying Out Type
  • Web Typography
  • How to Choose and Use Fonts
  • Introduction to Typography
  • Performing CRUD Operations
  • Defining Models
  • Getting Started with Sequelize
  • Introduction
  • Imposter Syndrome
  • Give and Receive Feedback
  • Tacocat Challenge
  • How to Win Friends
  • Broadcasting
  • Takin' Names
  • Making Strong Users
  • Test Time!
  • Final Details
  • Django Templates
  • Model Administration
  • What a View
  • Say Hello to Django
  • Additional Scraping Tasks
  • A World Full of Spiders
  • Introducing Data Scraping
  • Array Programming
  • Array Organization
  • Meet NumPy
  • Exploring pandas
  • Meet pandas
  • Diving into Web Development
  • Working With Human Interface Guidelines
  • Interaction Design in Practice
  • Theories and Psychology
  • Hierarchy and Layout
  • Writing Copy
  • API Protection
  • Resourceful Blueprints
  • Character Builder
  • Flask Templates
  • Reusable GraphQL
  • Making Changes with Mutations
  • Fetching Data with Queries
  • Getting Started with GraphQL
  • Welcome to Flask
  • Analysis
  • Interviewing
  • Recruiting Participants
  • Programming AJAX
  • AJAX Concepts
  • React Router and Authentication
  • Implementing Basic Authentication
  • Introducing the Authentication Project
  • The Lambda Lambada
  • Functional Workhorses
  • Functional Rules
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Build an Application
  • Using Lists
  • Meet Lists
  • Getting to Know Tuples
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Arrow Functions
  • Pass Information Into Functions
  • Create Reusable Code with Functions
  • The Math Object
  • Working with Numbers
  • Making Decisions in Your Code with Conditional Statements
  • Working With Strings
  • Storing and Tracking Information with Variables
  • Hello, JavaScript!
  • Exploring Arrays
  • Go Flow Control Overview
  • Go Syntax Overview
  • Prototyping with a Design System
  • Material Design Basics
  • Understanding Design Systems
  • Improving Quality Assurance Practices
  • Bug Reporting
  • Executing Tests
  • Writing Manual Test Cases
  • Why We Test
  • Interactivity in Adobe XD
  • Prototyping Designs in Adobe XD
  • Introducing Adobe XD
  • Implementing UX Content
  • Creating UX Content
  • UX Content Attributes
  • UX Content Basics
  • The Cash Flow Statement
  • The Balance Sheet
  • The Profit & Loss Statement
  • Introducing Financial Statements
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Refactoring and Modularizing a REST API
  • Create, Read, Update, Delete
  • Managing Data and Asynchronous Code
  • Getting to Know REST APIs
  • Practicing Classes
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Practicing Object Basics
  • Searching Names
  • Sorting Algorithms
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • “Clean” or “Dirty” Data
  • Quantitative Methods
  • Usability Studies
  • Qualitative Studies
  • Measuring Your Designs
  • Applying IA
  • Evaluating IA
  • Main Principles
  • Putting It All Together
  • Embracing the Process
  • Curating the Work
  • Playing a Counting Game
  • Branches on Git Hosting Services
  • Remote Branches
  • Merging
  • Checking Out and Returning a Book
  • Starting with Some Methods
  • The Rough Plan
  • Asynchronous Code in Express
  • Branches
  • Regular Expressions
  • Practical Jenkins
  • Pipelines
  • How Jenkins Works
  • Getting the REST You Need 2
  • Practicing Getters and Setters
  • Common Commands
  • Directories and Files
  • The Command Shell
  • Principles of Design
  • Elements of Design
  • The Role of Selectors in JavaScript
  • Pseudo-classes and Combinators
  • Selector Basics
  • React Component Patterns
  • Stateful Components and Lifecycle Methods
  • Portfolio Goals
  • Demystifying the Portfolio
  • How to Critique Design
  • Managing State and Data Flow
  • Build Modular Interfaces with Components
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • 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?
  • Planning Your Users’ Journey
  • Strategy: Determining Goals for your Product
  • Understanding Our Users
  • Intro to User Experience (UX) Design
  • What is Information Architecture?
  • Introduction to Object-Oriented JavaScript
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Persuasive Patterns
  • UI Patterns
  • Designing with Patterns
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Creating and Modifying Database Tables
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • GitHub and Other Remote Repositories
  • Managing Committed Files
  • First Commits
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • 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
  • Environment Variables
  • Error Checking
  • Conditional Formatting
  • Pivot Tables
  • LOOKUP Functions
  • The Design Solution
  • The Design Problem
  • Design Principles
  • What is Product Design?
  • Introducing jQuery (2017)
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Practice forEach
  • Create a Banner Ad
  • Team Collaboration in Figma
  • Prototyping Designs in Figma
  • Introducing Figma
  • Hello, Photoshop!
  • Digital Media Basics
  • 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
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • Relating Models
  • Laravel CRUD
  • Validation & Flash Messages
  • Laravel Forms
  • Laravel & Databases
  • Laravel Controllers
  • Laravel Project Setup
  • Launching and Supporting a WordPress Plugin
  • Building WordPress Template Tags, Widgets, and Shortcodes
  • Connecting WordPress Plugins with 3rd Party APIs
  • Building a WordPress Plugin Settings Page
  • How WordPress Plugins Work
  • Customizing the WooCommerce Cart and Checkout Process
  • Starting a Custom WooCommerce Theme
  • Cart, Checkout and Account Templates and Hooks
  • Global and Product Templates and Hooks
  • Getting Started with WooCommerce Theme Development
  • What is Authentication
  • Updating and Deleting Records
  • Reading and Writing Reports
  • Creating Records
  • Project Setup
  • Test Doubles
  • Acceptance Tests
  • Organizing your Tests
  • Creating Your Tests
  • Tools for Testers
  • How To Test Our Code
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Creating a GitHub Client
  • Communicating with a RESTful API
  • Parsing Specific Formats
  • Basic File Handling
  • Modular Media Queries
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Getting Modular with Mixins and Functions
  • Refining the App
  • Building the Application
  • Setting up with Create React App
  • Exploring Best Practices
  • Test Drive
  • Meet Selenium
  • 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
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Hello, GitHub!
  • Custom WordPress Customizer Settings
  • Native WordPress Customizer Options
  • Overview of the WordPress Customizer
  • Practicing Data Visualization in Excel
  • Chart Formatting and Layout
  • When To Use What Type of Chart
  • Introduction To Data Visualization
  • More TODO with the MEAN Stack
  • Creating and Editing Data in a MEAN App
  • Setting Up MongoDB
  • Going MEAN with Angular
  • Going MEAN with Express
  • Introduction to MEAN
  • Improving Our Todo App
  • Services in Angular
  • Using Angular's Built-in Directives
  • Controllers and Scope
  • Getting Started with Angular
  • Interactive Visualizations
  • Styling and Scaling Data
  • Data Binding with D3
  • Selections with D3
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Angular Components
  • Setting Up an Angular Application
  • Integrating 3rd Party APIs
  • Implementing Redux
  • Implementing React Native
  • Why React Native
  • Putting it all Together
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Next Steps
  • Improving Our Tests
  • Behavior Driven Development with Mocha & Chai
  • Design Patterns
  • Page Layout
  • Installing WordPress Locally
  • Introducing Unit Testing
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Building API Routes in Express
  • Rehearsal and Delivery
  • Creating and Refining
  • Preparing to Present
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Building a REST Service
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • 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
  • Improving your Gulp Workflow
  • Browser Persistent Data with PHP
  • Contact Forms & Mailers
  • Slim and Templates
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • 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
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • 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
  • Introduction to Methods
  • AJAX and APIs
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • jQuery and AJAX
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Programming AJAX
  • AJAX Concepts
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • PHP Loops
  • PHP Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • PHP Email Form Errors
  • PHP Email Forms
  • PHP Inventory
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Traversing the DOM
  • Testing for Accessibility
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • WordPress Plugin Best Practices
  • WordPress Widgets
  • Custom Post Types in WordPress
  • Customizing WordPress Themes
  • WordPress Themes
  • S3 Storage Service
  • AWS and "The Cloud"
  • Responding to User Interaction
  • Making Changes to the DOM
  • Exploration
  • Discovery
  • Finishing the Game
  • Introducing JavaScript
  • Getting a Handle on the DOM
  • The Browser Environment
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Mobile Accessibility
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Access for Everybody
  • Optimization Best Practices
  • Asset Optimization
  • Why Web Performance Matters
  • Lists, Code, Links and Images
  • Understanding Markdown
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • What is Big Data
  • Build a Spreadsheet
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started With Spreadsheets
  • Introducing Spreadsheets
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • What Is WordPress?
  • Captioning Video
  • Media Basics
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Security: Solutions
  • Security: Concerns
  • Getting Started with CSS Transitions
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Getting the REST You Need
  • 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
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • PHP Includes
  • WordPress Admin Settings
  • Creating Flexible Objects Using Protocols
  • Swift 2.0 Protocols
  • Objects and Optionals
  • Introduction to Optionals
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • What's New in Foundation 5
  • Build a Website With Foundation
  • Prototyping With Foundation
  • Swift Optionals
  • Swift Parameters and Tuples
  • Swift Functions
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • Hooking Into WordPress Plugins
  • Action Functions in WordPress
  • Filter Functions in WordPress
  • An Overview of Hooks in WordPress
  • Add Bootstrap Components to WordPress Theme
  • Create Bootstrap Styled Theme Templates
  • Setup a Bootstrap Theme
  • A Template Hierarchy Review
  • Media Templates in WordPress
  • Custom Post Type Templates
  • Archive Templates in WordPress
  • Page and Post Templates in WordPress
  • Homepage Templates in WordPress
  • Core WordPress Theme Files
  • How WordPress Templates Work
  • Finishing Your WordPress Theme
  • Custom Homepage Templates in WordPress
  • Adding a Blog to a WordPress Theme
  • Custom Post Type Templates
  • Building Out WordPress Navigation
  • Building Page Templates in WordPress
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Starting a WordPress Theme
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Python For Beginners
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Professional Development
  • Applying & Interviewing
  • The Job Search
  • Networking
  • Personal Branding
  • Setting Your Course
  • Careers in the Tech Industry
  • Self-Assessment
  • Start menu and App Icon
  • Sound Design
  • Animating and Saving Sprites
  • Designing Characters and a Scene
  • Introduction to Game Design
  • Working with a Developer
  • Designing our App
  • Wireframing, Interaction Design and Planning
  • Installing a Ruby Development Environment
  • Making sense of it all
  •  Learning activity: Interviewing
  • Learning activity: Field Observation
  • Learning activity: Experience Sampling
  • Finding participants for your learning activity
  • Solving an Important Problem
  • Hosting with GitHub Pages
  • Building and Customizing the Blog
  • Getting Started with Jekyll
  • Introduction to Enumerations
  • Working with Media Queries
  • CSS Animation Basics
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Running Apps on a Device
  • Improving Our User Interface
  • Structs as Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Differentiating Between Objects
  • Class Inheritance
  • Classes
  • Complex Data Structures
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Function Parameters
  • Functions in Swift 2.0
  • Finishing the Prototype
  • Grid Layout and UI Components
  • Getting to Know Foundation for Apps
  • Customizing Drupal
  • Modules and Themes
  • Site Building with the Drupal Interface
  • Learn About Drupal
  • Soft Skills - Psychology
  • Writing Online
  • Productivity
  • Presentation Skills
  • Important Skills For Professional Success
  • Understanding CSS Transitions and Transforms
  • Customizing the User Experience in WordPress
  • Default User Roles in WordPress
  • An Overview of User Roles and Fields
  • Understanding Flexbox and Multi-Column Layout
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • Swift Dictionaries
  • Introduction to Collections
  • Scrum Artifacts
  • Scrum Events
  • Introducing Scrum
  • What is Agile?
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Customizing BuddyPress
  • Social Interactions in BuddyPress
  • Manage BuddyPress Member Profiles
  • Getting Started with BuddyPress
  • The Production Server
  • The Staging Server
  • The Local Development Environment
  • The Walker Class for WordPress
  • Custom Menu Fields in WordPress
  • An Overview of Menus in WordPress
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • SEO Plugins for WordPress
  • Enhancing the SEO of a WordPress Theme
  • Content Comes First
  • WordPress Plugins
  • WordPress Themes
  • The WordPress Customizer
  • Managing Media in WordPress
  • Managing Content in WordPress
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • 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
  • Save for the Web
  • Adding Images and a Mockup
  • Logo Design
  • Creating a Wireframe
  • Introducing Adobe Illustrator
  • Dependency Management
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • WWW
  • The Internet
  • How to Install WordPress on Your Computer
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • What is the MailChimp API
  • Planning for Performance
  • Simple Mobile Interface
  • Exporting Designs
  • Sketch Features
  • Introducing Sketch
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Computer Languages
  • Computer Basics
  • Laravel Getting Started
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • Creating an SVG
  • Introduction to SVG
  • Custom Dashboard Widgets
  • Controlling Admin Navigation
  • Customizing the Login Screen
  • Admin Color Schemes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Advanced Techniques
  • Responsive Design
  • Adaptive Design
  • PHP Loops
  • JavaScript Objects
  • Running an Ecommerce Site Long Term
  • Extending WooCommerce
  • Managing Orders in WooCommerce
  • Managing Products in WooCommerce
  • Setting Up WooCommerce
  • Introduction to Ecommerce with WordPress
  • JavaScript Functions
  • JavaScript Arrays
  • Limiting Results in Queries
  • Using Relationship Tables
  • Filtering Input for Queries
  • JavaScript Numbers
  • JavaScript Strings
  • Introduction Variables
  • Querying the Database
  • Connecting to MySQL
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Build a Website With Bootstrap
  • Prototyping With Bootstrap
  • Introduction to Front-End Frameworks
  • Joining Relational Data Between Tables in SQL
  • Manipulating Schema with SQL
  • Creating Tables and Manipulating Data with SQL
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Adding Search: Model
  • Spriting with Compass
  • Compass Helper Functions
  • Compass Layout and Typography
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Treehouse Club - JavaScript
  • Protecting and Sharing Your Work
  • Licensing
  • Fair Use and Public Domain
  • Getting Started with Copyright
  • Moving Beyond the Blog
  • Finding Business
  • Creating Content
  • Introduction to Blogging
  • Creating a Long Term Business
  • Protecting Yourself With Contracts
  • Establishing a Proper Workflow
  • Business Plan for Freelance Business
  • Business Plan Basics
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Adding Search: Controller & View
  • Video Marketing
  • Email Marketing
  • Search Engine Optimization
  • Usability Testing
  • Usability Basics
  • Social Media
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Getting Started with Compass
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • Getting Work Done
  • A Lifestyle Choice
  • Growing Your Business
  • Client Services
  • Sales and Pitching
  • Marketing and Promotion
  • WordPress.com Social Features
  • Building a WordPress.com Site
  • Getting Started with WordPress.com
  • Chrome DevTools Basics
  • Moving Around in the Console
  • DNS Basics
  • Graphic Basics
  • Website Basics
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • Fluid Foundation
  • Introduction to Responsive Web Design
  • Treehouse Club - CSS
  • Refactoring the Codebase
  • Moving Forward with UX
  • Tools UXers Use
  • Local WordPress Development
  • Web Apps
  • Websites
  • Introduction
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Finding Good WordPress Plugins and Themes
  • Managing Comments on a WordPress Blog
  • Working with Media in WordPress Blogs
  • Posts and Pages in WordPress
  • Blogging with WordPress Overview
  • WordPress Admin Settings
  • WordPress User Roles
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • The WordPress Codex
  • Getting Started with WordPress
  • Cleaning URLs with Rewrite Rules
  • Cleaning URLs with Subfolders
  • Integrating Validation Errors
  • Creating Home Page Assets
  • How UXers Think
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Applying Effects
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • Moving from WordPress.com to Self-Hosted WordPress.org
  • How to Draw in Illustrator
  • What Do User Experience Designers Do?
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  •  Adding Color and Type
  • What is User Experience (UX)?
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Creating an Icon
  • Introduction to Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • Design Foundations Final
  • Becoming a Problem Solver
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Layer Basics
  • Workspace Basics
  • Logo Design 101
  • The Logo Sprint
  • Integrating With Paypal
  • Listing Inventory Items
  • Adding a Contact Form
  • Creating the Menu and Footer
  • Getting Started with PHP
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Understanding Aesthetics
  • Introduction to Design
  • Color Theory
  • Principles
  • Elements
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Media Queries
  • CSS Animations
  • Transitions and Transforms
  • Flexbox and Multi-Column Layout
  • Gradients
  • Web Typography
  • Backgrounds and Borders
  • CSS Box Model
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Selectors
  • Getting Started with CSS
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Structuring Tables
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Table Basics
  • Welcome to the Treehouse Club
  • Beginning HTML and CSS
  • Newbie