John Wheal

John Wheal

Portsmouth, UK

MEng Computer Engineering with Distinction.

27,969

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

    Wheal Media Limited

366 Achievements

  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Angular Components
  • Setting Up an Angular Application
  • Solving an Important Problem
  • Tools for Testers
  • How To Test Our Code
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Exploring Ember
  • Ember Data
  • Models
  • Controllers
  • Routes and Templates
  • Getting Started with Ember.js
  • AngularJS MVC Frameworks
  • Autoloading and Composer
  • Starting Right with PHP Best Practices
  • Introduction to Node.js
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Creating an SVG
  • Introduction to SVG
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Modular Media Queries
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Design Foundations Final
  • Becoming a Problem Solver
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Getting Modular with Mixins and Functions
  • Getting Started with Advanced Sass
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • Getting Started with Java
  • Introduction to jQuery
  • Traversing and Manipulating the DOM with JavaScript
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Soft Skills - Psychology
  • Writing Online
  • Welcome to the Treehouse Club
  • Relating Models
  • Laravel CRUD
  • Validation & Flash Messages
  • Querying the Database
  • Connecting to MySQL
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Adding Search: Model
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Laravel Forms
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Laravel & Databases
  • Laravel Controllers
  • Laravel Project Setup
  • Laravel Getting Started
  • Productivity
  • Custom Detail View Controller
  • Custom UITableViewCell
  • Deleting Data
  • Listing Data using NSFetchedResultsController
  • Inserting and Saving Data
  • Animate This (iOS7)
  • Understanding Core Data
  • Better SEO Through Tools
  • Better SEO Through Code
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Understanding Aesthetics
  • Blocks and Categories
  • API Access
  • Notifications
  • Appearance
  • Storyboards
  • App Settings
  • iOS 5 Core Data
  • Cocoapods
  • UIKit Dynamics
  • View Controller Transitions
  • Gestures
  • What is an API?
  • Better SEO Through Content
  • Introduction to SEO
  • Downloading Data with NSURLSession
  • Collection Views
  • Location
  • Web View
  • Getting Started with BuddyPress
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • Presentation Skills
  • Finishing the User Interface
  • Customizing Table View Controllers
  • Using Auto Layout and Managing the Keyboard
  • Implementing Custom Login and Sign Up Screens
  • Retrieving and Viewing Data from Parse.com
  • Capturing Photo and Video Using UIImagePickerController
  • Relating Users in Parse.com
  • Using Parse.com as a Backend and Adding Users
  • Designing and Starting the App
  • Viewing a Web Page
  • Adapting Data for Display
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Data Modeling
  • Getting Data from the Web
  • Rebuilding from Scratch
  • Exploring the Master-Detail Template
  • WordPress.com Social Features
  • Building a WordPress.com Site
  • Getting Started with WordPress.com
  • Working with a Developer
  • Designing our App
  • Wireframing, Interaction Design and Planning
  • Testing and Debugging
  • Animate This
  • Designing your App
  • Refactoring into a Model
  • Creating a Data Collection
  • Understanding Views and View Controllers
  • Getting Started (iOS7)
  • Beyond the Basics
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • Advanced Objective-C
  • Foundation Framework
  • Introduction to Objective-C
  • Pointers and Memory
  • Functional Programming in C
  • Fundamentals of C
  • Local WordPress Development
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Business Plan Basics
  • Installing a Ruby Development Environment
  • Important Skills For Professional Success
  • Introduction to Front-End Frameworks
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • 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
  • Launching a WordPress Site
  • WordPress and Forms
  • Extending WordPress Template Functionality
  • Introduction to Design
  • Creating a Long Term Business
  • Protecting Yourself With Contracts
  • Establishing a Proper Workflow
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • The Logo Sprint
  • Logo Design 101
  • Transitions and Transforms
  • What is Usability?
  • JavaScript Objects
  • JavaScript Functions
  • JavaScript Arrays
  • JavaScript Numbers
  • JavaScript Strings
  • Adding Search: Controller & View
  • The Job Search
  • Ruby Strings
  • Networking
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Customizing Google Maps
  • Google Maps Integration
  • Selectors
  • Personal Branding
  • Installing Programs
  • Getting Started with CSS
  • Environment and Redirection
  • Objects, Classes, and Variables
  • Rails Deployment
  • Setting Your Course
  • Building the Profile Page
  • Introduction
  • Web Apps
  • Websites
  • Testing the Whole App
  • Rails Routing
  • Writing Tests
  • Customizing Ruby on Rails Forms
  • Manipulating Schema with SQL
  • Creating Tables and Manipulating Data with SQL
  • Protecting and Sharing Your Work
  • Licensing
  • Fair Use and Public Domain
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • DNS Basics
  • Getting Started with Copyright
  • Converting Static HTML into WordPress Templates
  • Careers in the Tech Industry
  • Self-Assessment
  • Moving Beyond the Blog
  • Finding Business
  • Creating Content
  • Introduction to Blogging
  • Getting Work Done
  • A Lifestyle Choice
  • Growing Your Business
  • Client Services
  • Sales and Pitching
  • Marketing and Promotion
  • Preparing to Code WordPress Templates
  • Refactoring the Codebase
  • Cleaning URLs with Rewrite Rules
  • Introduction to Illustrator
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Cleaning URLs with Subfolders
  • WordPress Theme Functions
  • Media Queries
  • Selectors
  • Integrating Validation Errors
  • Console Processes
  • Console Users and Permission
  • Simple PHP Application: Wrapping Up The Project
  • Introduction to Data, Databases and SQL
  • WordPress Theme Templates
  • Content Strategy with WordPress
  • Intro to User Experience
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • jQuery Plugins
  • Adding a Contact Form
  • Form Validation and Manipulation
  • Moving Around in the Console
  • Metrics
  • Workflow Basics
  • Sales
  • Slices & Save for Web
  • Vector Shapes
  • Ruby on Rails Authentication
  • Rails Frontend Development
  • Type Tools
  • Masks Basics
  • Layer Basics
  • Workspace Basics
  • Customizing WordPress
  • Pricing
  • Financing Your Company
  • Creating the Menu and Footer
  • Video Marketing
  • Introduction Variables
  • Framework Foundations
  • Printing
  • Page Layout
  • Box Model
  • Learning the Language
  • Advanced Techniques
  • Text
  • Email Marketing
  • Data Types
  • Selectors
  • Introduction
  • Forms
  • Website Basics
  • From Idea to Execution
  • Ruby Basics
  • Functions
  • Objects and Arrays
  • Basics
  • Control Structures
  • Automatic Reference Counting
  • Search Engine Optimization
  • Usability Testing
  • Usability Basics
  • Social Media
  • Getting Started with iPhone
  • Graphic Basics
  • Managing Comments
  • Adding and Editing Content in WordPress
  • Configuring WordPress
  • Getting Started with WordPress
  • Tables
  • Making Money
  • Marketing Strategy
  • Getting Started with PHP
  • Objects
  • Links
  • Lists
  • Getting Started With Rails
  • Introduction to Accounting
  • Marketing Basics
  • Introduction to jQuery
  • Text
  • Introduction
  • Color Theory
  • Principles
  • Forming Your Company
  • Corporate Structure
  • Why Start a Business?
  • Responsive Design
  • Adaptive Design
  • Fluid Foundation
  • Introduction to Responsive Web Design
  • Elements
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Newbie