Dan Johnson

Dan Johnson

Pendleton, OR

40,533

Total Points

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

469 Achievements

  • Adding User Sign-In and Sign-Out
  • Adding User Registration
  • Introducing ASP.NET Identity
  • Project Setup
  • Introducing CRUD Applications
  • CRUD Operations
  • LINQ Queries
  • Extending Our Entity Data Model
  • Entity Framework and Databases
  • Introducing Entity Framework
  • Thinking in Components
  • First Steps in React
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Searching Names
  • Sorting Algorithms
  • Query Builder
  • Query Operators
  • Functional!
  • Now You're Querying!
  • Adding a List Page
  • Modeling and Presenting Data
  • Views
  • Controllers
  • Project Setup
  • Building a REST Service
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Creating Spring Controllers and Thymeleaf Views
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • Transitions and Transforms
  • Why Test
  • Build a Pomodoro App
  • Design a Better App
  • Graphical User Interfaces
  • Getting to Know Foundation for Apps
  • Serving Static Files in Express
  • Using Templates with Express
  • The Lambda Lambada
  • Functional Workhorses
  • Functional Rules
  • The Request and Response Objects in Express
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • The Internet
  • IDE Exploration
  • How it Works
  • Getting Started with Jekyll
  • What is the MailChimp API
  • How to Choose and Use Webfonts
  • Adding Play Services to Your App
  • Introduction to Typography
  • Understanding Flexbox and Multi-Column Layout
  • Workspace Basics
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • What Do User Experience Designers Do?
  • Deploying to a Device
  • Debugging Our App
  • Improving Our User Interface
  • What is User Experience (UX)?
  • Using a Data Model
  • Views and View Controllers
  • Getting Started with Xcode
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Swift Value vs Reference Types
  • Swift Properties
  • Swift Inheritance
  • Swift Classes and Objects
  • Swift Structs and their Methods
  • Swift Structs
  • Swift Enums and their Methods
  • Swift Enums
  • Using a jQuery Carousel
  • Swift Optionals
  • Swift Parameters and Tuples
  • Swift Functions
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • WWW
  • Creating Reports
  • Charts and Tables
  • Add a Sticky Navigation Bar
  • Exporting
  • Introducing jQuery Plugins
  • Cleaning Data
  • Debugging, Best Practices, and Production
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Describing Data
  • Refactoring with Sass
  • Getting Started with Data Science
  • Installing Sass and Setting up the Project
  • Interactive Visualizations
  • Styling and Scaling Data
  • Data Binding with D3
  • Selections with D3
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • How to Win Friends
  • Broadcasting
  • Takin' Names
  • Making Strong Users
  • Adding User Support to Our Application
  • Password Hashing and Sign-In
  • Computer Languages
  • Computer Basics
  • Acting on List Item Taps
  • Lists with RecyclerViews
  • Using Parcelable Data
  • Custom ListViews
  • Getting Modular with Mixins and Functions
  • Standard ListViews
  • Updating the Data Model
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • AR Extensions
  • Callbacks
  • Query Interface
  • Validation
  • Migrations and Relationships
  • JavaScript Objects
  • JavaScript Arrays
  • Rails Routing
  • JavaScript Loops
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Error Handling
  • Introduction to SEO
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • DNS Basics
  • Graphic Basics
  • Website Basics
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Introduction to ActiveRecord
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Build a Todo List Application with Rails 4
  • Limiting Results in Queries
  • Using Relationship Tables
  • Filtering Input for Queries
  • Querying the Database
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Connecting to MySQL
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Adding Search: Model
  • Adding Search: Controller & View
  • Writing Tests
  • The Logo Sprint
  • Logo Design 101
  • Refactoring the Codebase
  • Cleaning URLs with Rewrite Rules
  • Fundamental Concepts
  • Designing with the Latest Features
  • Cleaning URLs with Subfolders
  • Integrating Validation Errors
  • Tools for Testers
  • How To Test Our Code
  • Customizing Ruby on Rails Forms
  • Ruby on Rails Authentication
  • Rails Frontend Development
  • Getting Started With Rails
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • What's New in Foundation 5
  • Build a Website With Foundation
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • Adding a Contact Form
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • Hooking up the Model to the View
  • Building the Weather UI
  • Working with JSON
  • Concurrency and Error Handling
  • Networking
  • Exploring an API
  • Prototyping With Foundation
  • Advanced Sass Concepts
  • Basic Layout
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • Creating the Menu and Footer
  • Getting Started with PHP
  • Build a Website With Bootstrap
  • Build a Simple Todo List Program
  • Ruby Booleans
  • The Box Model
  • Understanding Values and Units
  • Prototyping With Bootstrap
  • Introduction to Front-End Frameworks
  • Basic Selectors
  • Getting Started with CSS
  • Exploring Ember
  • Ember Data
  • Grid Layout
  • Flexbox Layout
  • Creating an SVG
  • Introduction to SVG
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Models
  • Controllers
  • Routes and Templates
  • Getting Started with Ember.js
  • PHP Loops
  • AngularJS MVC Frameworks
  • Python Regular Expressions
  • Building a Command Line Application
  • Introduction to Node.js
  • Delivering the MVP
  • Chrome DevTools Basics
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Build a Bank Account Class
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Media Queries
  • CSS Animations
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • 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
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Transitions and Transforms
  • Flexbox and Multi-Column Layout
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • Traversing and Manipulating the DOM with JavaScript
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Intents and Multiple Activities
  • User Input
  • Gradients
  • Web Typography
  • Migrating a SQLite Database
  • CRUD Operations with SQLite
  • Timezones
  • Using SQLite for Structured Data
  • Key-Value Saving with SharedPreferences
  • File Storage
  • Math Quiz App
  • Dates and Times
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Backgrounds and Borders
  • CSS Box Model
  • PHP Conditionals
  • Text, Fonts, and Lists
  • Color Theory
  • Principles
  • Elements
  • PHP Datatypes
  • Introduction to Data Persistence
  • Values and Units
  • Local Python
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • JavaScript Objects
  • JavaScript Functions
  • JavaScript Arrays
  • JavaScript Numbers
  • JavaScript Strings
  • Introduction Variables
  • Advanced Selectors
  • Selectors
  • Getting Started with CSS
  • Adding Push Notifications from Parse.com
  • Updating Other GridViews
  • PHP Data & Structure
  • Customizing a GridView for Friends
  • Buggy Logs
  • Cleaner Code
  • Customizing a ListView for the Inbox
  • Customizing the Action Bar
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Web Apps
  • Websites
  • Introduction
  • Using Custom Styles and Themes
  • Customizing the Login Screen
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Starting with Design Mockups
  • Customizing Colors and Fonts
  • Self-Destruction
  • Retrieving and Viewing Messages
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • Sending Messages
  • HTML First
  • Beginning HTML and CSS
  • PHP Getting Started
  • Capturing Photos and Videos
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Testing
  • Standard Library
  • Ruby Core
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Installing a Ruby Development Environment
  • Ruby Modules
  • Ruby Procs & Lambdas
  • Ruby Blocks
  • Ruby Loops
  • Relating Users in Parse.com
  • Ruby Methods
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Numbers
  • Ruby Strings
  • Objects, Classes, and Variables
  • Ruby Basics
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Using Fragments for Tabs
  • Adding Users Using Parse.com
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • 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
  • 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"
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Publishing on Google Play
  • Starting the App
  • Using Git for Android
  • Getting Started with Genymotion
  • Getting Started with Android Studio
  • Using Intents to Display and Share Posts
  • Adapting Data for Display in a List
  • Getting Data from the Web
  • Rebuilding from Scratch
  • Exploring the Master-Detail Template
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • Getting Started with Android
  • Newbie