Joshua Edwards

Joshua Edwards

Kansas City, MO
Open to Work

I am a web developer interested in learning all there is to know about programming and web design.

52,175

Total Points

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

Skills & Experience

627 Achievements

  • Using Associations in Your App
  • Active Record Associations
  • 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
  • Ruby Conditionals
  • Ruby Numeric Types
  • Ruby Objects
  • Ruby Strings and Escape Sequences
  • Ruby Syntax
  • Creating New Sinatra Apps
  • Why Object-Oriented Programming?
  • Is This Thing On?
  • Putting It All Together
  • Modelling Solitaire
  • Hello Kotlin!
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Building API Routes in Express
  • Building a REST Service
  • Django Templates
  • Model Administration
  • What a View
  • Say Hello to Django
  • Sets and Dictionaries
  • Lists
  • Arrays
  • Adding a List Page
  • Modeling and Presenting Data
  • Views
  • Query Builder
  • Query Operators
  • Controllers
  • Functional!
  • Abstraction
  • System.Object
  • Polymorphism
  • Unit Converter
  • Getting to Know PHP
  • Letter Game App
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • 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
  • Using the MVC Architecture with Spring
  • Modeling, Storing, and Presenting Data with Spring
  • Creating Spring Controllers and Thymeleaf Views
  • Finding participants for your learning activity
  • Solving an Important Problem
  • WordPress Admin Settings
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Spring Components and Configuring Our App
  • Python For Beginners
  • How to Win Friends
  • Setting Up Your Local Environment for Spring Development
  • What to Test
  • How To Test
  • Why Test
  • Event Planning
  • Build a Pomodoro App
  • Tacocat Challenge
  • Design a Better App
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • Graphical User Interfaces
  • Advanced Tooling
  • Tablet Time
  • Ingredients and Directions
  • Writing Your Own Java Annotation
  • Using Java's Built-In Annotations
  • Bells and Whistles
  • Diving into Web Development
  • Managing Fragments
  • Introducing Fragments
  • The Project
  • Introducing SharedPreferences
  • The Activity Lifecycle
  • Acting on List Item Taps
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • 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
  • Lists with RecyclerViews
  • Using Parcelable Data
  • Custom ListViews
  • Standard ListViews
  • Updating the Data Model
  • IDE Exploration
  • How it Works
  • Adding Sound Effects
  • Refactoring the Model
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Introducing Unit Testing
  • Quiz Practice Project
  • Prototypal Inheritance
  • Creating the User Interface Programmatically
  • Creating a Story
  • Navigating Through an Adventure
  • Delegation in iOS
  • Introduction to Delegates
  • Memory Management in Swift 2
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization in Swift 2
  • Properties in Swift 2
  • Hello, GitHub!
  • Laying Out Type for the Web
  • Scrum Artifacts
  • Scrum Events
  • Introducing Scrum
  • What is Agile?
  • Final Project: Create a Typographic Site
  • Pricing and Project Proposals
  • What is the MailChimp API
  • The Internet
  • Finding Your First Project
  • Starting a Freelance Career
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Getting the REST You Need
  • Meet Objects
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling An Interface
  • Error Handling in Swift 2.0
  • Creating Flexible Objects Using Protocols
  • Swift 2.0 Protocols
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • 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
  • Function Parameters
  • Functions in Swift 2.0
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • Swift Dictionaries
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Project Setup
  • Now You're Querying!
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • Perfect
  • Perform
  • Console I/O
  • Prepare and Plan
  • Data Types and Variables
  • Intro to Objective-C
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Simple Mobile Interface
  • Exporting Designs
  • Sketch Features
  • Introduction to Typography
  • Introducing Sketch
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • Route Connections
  • Introduction to REST
  • AngularJS Directives
  • Services and Dependencies
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Building a Command Line Application
  • Introduction to Node.js
  • Hooking up the Model to the View
  • Building the Weather UI
  • Working with JSON
  • Concurrency and Error Handling
  • Networking
  • Exploring an API
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Intents and Multiple Activities
  • User Input
  • Publishing on Google Play
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Using Git for Android
  • Getting Started with Genymotion
  • Getting Started with Android Studio
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • WWW
  • Tools for Testers
  • How To Test Our Code
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • Limiting Results in Queries
  • Using Relationship Tables
  • Filtering Input for Queries
  • Querying the Database
  • Connecting to MySQL
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Adding Search: Model
  • Adding Search: Controller & View
  • Describing Data
  • Getting Started with Data Science
  • Finishing Your WordPress Theme
  • Custom Homepage Templates in WordPress
  • Adding a Blog to a WordPress Theme
  • PHP Internal Functions
  • PHP Returns & Closures
  • Custom Post Type Templates
  • PHP Functions Basics
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • 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
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Finding Good WordPress Plugins and Themes
  • Managing Comments on a WordPress Blog
  • Posts and Pages in WordPress
  • Working with Media in WordPress Blogs
  • 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
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Broadcasting
  • Password Resets and Testing
  • Adding User Support to Our Application
  • Password Hashing and Sign-In
  • AR Extensions
  • Callbacks
  • Query Interface
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • Build a Simple Todo List Program
  • Ruby Booleans
  • Ruby Variables and Methods
  • Build a Bank Account Class
  • 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
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Traversing and Manipulating the DOM with JavaScript
  • Creating a Simple Drawing Application
  • Creating a Mobile Drop Down Menu
  • Creating a Password Confirmation Form
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Creating Home Page Assets
  • Applying Effects
  • How to Draw in Illustrator
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  •  Adding Color and Type
  • Creating an Icon
  • Introduction to Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Takin' Names
  • Making Strong Users
  • Soft Skills - Psychology
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Designing with the Latest Features
  • Writing Online
  • Basic Layout
  • Fundamental Concepts
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Character Builder
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Timezones
  • Math Quiz App
  • Productivity
  • Computer Languages
  • Computer Basics
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Local Python
  • Hack-n-Slash
  • Python Inheritance
  • Python Objects
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Slices
  • Lists Redux
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Flask Templates
  • Welcome to Flask
  • Getting Started with Android
  • Perfecting the Prototype
  • Using your New Tools
  • Two-way Data Binding
  • AngularJS MVC Frameworks
  • Getting Started with Java
  • Layer Basics
  • Workspace Basics
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Ember Data
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • Models
  • Exploring Ember
  • Controllers
  • Routes and Templates
  • Getting Started with Ember.js
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Validation
  • Joining Relational Data Between Tables in SQL
  • Migrations and Relationships
  • Manipulating Schema with SQL
  • Creating Tables and Manipulating Data with SQL
  • Introduction to ActiveRecord
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Build a Todo List Application with Rails 4
  • Ruby Testing
  • Standard Library
  • Ruby Core
  • Ruby Modules
  • Ruby Procs & Lambdas
  • Ruby Blocks
  • Ruby Loops
  • Ruby Methods
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Numbers
  • Ruby Strings
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • Refactoring the Codebase
  • Cleaning URLs with Rewrite Rules
  • Cleaning URLs with Subfolders
  • Integrating Validation Errors
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • Adding a Contact Form
  • Chrome DevTools Basics
  • Presentation Skills
  • Video Marketing
  • Email Marketing
  • Usability Testing
  • Search Engine Optimization
  • Usability Basics
  • Social Media
  • Local WordPress Development
  • Installing Wordpress
  • Creating the Menu and Footer
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Debugging HTML and CSS Problems
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Sharing a Website
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Getting Started with PHP
  • Objects, Classes, and Variables
  • Ruby Basics
  • Rails Routing
  • Writing Tests
  • Build a Website With Bootstrap
  • Prototyping With Bootstrap
  • Customizing Ruby on Rails Forms
  • Ruby on Rails Authentication
  • Important Skills For Professional Success
  • What is Usability?
  • Protecting and Sharing Your Work
  • Licensing
  • Fair Use and Public Domain
  • Getting Started with Copyright
  • Professional Development
  • Applying & Interviewing
  • The Job Search
  • Rails Frontend Development
  • Networking
  • Personal Branding
  • Setting Your Course
  • The Logo Sprint
  • Logo Design 101
  • Getting Started With Rails
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Web Apps
  • Websites
  • Introduction
  • Customizing Google Maps
  • Google Maps Integration
  • jQuery Plugins
  • Form Validation and Manipulation
  • Introduction to jQuery
  • Beginning HTML and CSS
  • Careers in the Tech Industry
  • Website Basics
  • DNS Basics
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Getting Started with Sass
  • JavaScript Objects
  • Installing a Ruby Development Environment
  • Introduction to Design
  • Color Theory
  • JavaScript Functions
  • JavaScript Arrays
  • Principles
  • JavaScript Numbers
  • JavaScript Strings
  • Introduction Variables
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Advanced Techniques
  • Responsive Design
  • Adaptive Design
  • Fluid Foundation
  • Introduction to Responsive Web Design
  • Media Queries
  • CSS Animations
  • Transitions and Transforms
  • Flexbox and Multi-Column Layout
  • Gradients
  • Web Typography
  • Self-Assessment
  • Graphic Basics
  • Elements
  • Introduction to Front-End Frameworks
  • Backgrounds and Borders
  • CSS Box Model
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Selectors
  • Getting Started with CSS
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Newbie