Jonathan Kuhl

Jonathan Kuhl

Maine, ME
Open to Work

Currently hoping to break into a career in web development or programming. I have some knowledge in HTML and C++, but would like to deepen that knowledge, professionalize it, and add some CSS, JavaScript and other languages.

26,133

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

    USAF Reserves

  • Job Title

    Air Transportation Specialist

  • Spoken Languages

    • English
    • Some French

311 Achievements

  • Data Reader
  • Abstraction
  • System.Object
  • Polymorphism
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • How Jenkins Works
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • React Component Patterns
  • Stateful Components and Lifecycle Methods
  • Managing State and Data Flow
  • Build Modular Interfaces with Components
  • Ruby Class Design
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • Build a Bank Account Class
  • PHP Arrays
  • PHP Conditionals
  • Generics in Java
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Practicing Classes
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Playing a Counting Game
  • Introducing Data Scraping
  • Why Test
  • Getting the REST You Need 2
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Diving into Web Development
  • Getting Familiar with HTML and CSS
  • Event Planning
  • Build a Pomodoro App
  • Design a Better App
  • Graphical User Interfaces
  • IDE Exploration
  • How it Works
  • Efficiency!
  • The Design Solution
  • The Design Problem
  • Design Principles
  • 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
  • What is Product Design?
  • Handling Routes in Node.js
  • Chart Toppers
  • Getting Started with Data Visualization
  • 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
  • Stateful Components
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Thinking in Components
  • First Steps in React
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Finishing the Game
  • Introducing JavaScript
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Introducing jQuery (2017)
  • Introducing Data Analysis
  • 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
  • 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
  • Why Protect Your Web Apps
  • Dice Roller
  • Python: Advanced Objects
  • Security: Solutions
  • Python: Inheritance
  • Python: Instant Objects
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Letter Game App
  • Number Game App
  • Security: Concerns
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Security in Practice
  • Common Attacks and Defenses
  • Error Handling and Memory Management
  • Hello Internet!
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Generics and Protocols
  • Generic Types
  • Generic Functions, Parameters and Constraints
  • Adding Sound Effects
  • Personalizing The Story
  • Refactoring Our Code
  • Creating the User Interface Programmatically
  • Creating a Story
  • Navigating Through An Adventure
  • Using the Delegate Pattern in iOS
  • The Delegate Pattern
  • Writing Great Swift
  • Access Control
  • Memory Management in Swift
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization
  • Properties
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling an Interface
  • Running Apps on a Device
  • Improving Our User Interface
  • Structs As Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • Complex Data Structures
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • 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
  • Perfect
  • Perform
  • Console I/O
  • Prepare and Plan
  • Introducing jQuery Plugins
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • 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
  • Chrome DevTools Basics
  • Web Apps
  • Websites
  • Introduction
  • Captioning Video
  • Media Basics
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • 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
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Structuring Tables
  • Table Basics
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • Understanding Values and Units
  • The Box Model
  • Basic Selectors
  • Getting Started with CSS
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Newbie