Joe Sharp

Joe Sharp

Member Since July 29, 2019

19,791

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

    Procore

  • Job Title

    Software Engineer

254 Achievements

  • Flexible Sized Grids
  • Introducing Grid Layout
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Loop Through Objects
  • Object Basics
  • Multidimensional Arrays
  • Loop Through Arrays
  • Store Multiple Values in an Array
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Working with 'for' Loops
  • Simplify Repetitive Tasks with Loops
  • Arrow Functions
  • Pass Information Into Functions
  • Create Reusable Code with Functions
  • Build an Accessible Form
  • Introduction To Accessibility
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • 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!
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Security: Solutions
  • Security: Concerns
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • Programming AJAX
  • AJAX Concepts
  • API Protection
  • Resourceful Blueprints
  • Getting the REST You Need 2
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • 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
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Getting to Know Tuples
  • Tools and Techniques
  • The Deeper Negative Impacts on Society
  • Tricky Interfaces & Dirty Data
  • Introduction to Ethical Design
  • Give and Receive Feedback
  • Imposter Syndrome
  • 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
  • Deploy a Rails App with Capistrano
  • Try Out Capistrano
  • Practice Updating Resources
  • Practice CRUD Operations
  • Practice Creating Scaffolds
  • Creating an SVG
  • Introduction to SVG
  • Common Commands
  • Captioning Video
  • Media Basics
  • Directories and Files
  • The Command Shell
  • More Association Options
  • 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
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Rails Resource Index
  • Creating Rails Apps
  • Handling Rails Requests
  • Using the Rails Console
  • Adding a Model Attribute
  • Searching Names
  • Sorting Algorithms
  • Merge Sort and Linked Lists
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Recursion and Space Complexity
  • Algorithms in Code
  • Using Lists
  • Build an Application
  • Meet Lists
  • All Together Now
  • Meet Python
  • Types and Branching
  • Functions and Looping
  • Time Complexity
  • Playing a Counting Game
  • 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?
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • MASH HTML
  • MASH CSS
  • MASH JavaScript
  • Treehouse Club - JavaScript
  • Introducing JavaScript
  • Finishing the Game
  • WWW
  • The Internet
  • Computer Basics
  • Computer Languages
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Structuring Tables
  • Table Basics
  • Save for the Web
  • Adding Images and a Mockup
  • Logo Design
  • Creating a Wireframe
  • Introducing Adobe Illustrator
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Exploration
  • Discovery
  • Sinatra Finishing Touches
  • Updating Data in Sinatra
  • Adding New Data in Sinatra
  • Sinatra ERB Templates
  • Creating New Sinatra Apps
  • Gems In Depth
  • Ruby Gems
  • Ruby Standard Library: Part 2
  • Ruby Standard Library: Part 1
  • Ruby Core
  • Store Inventory Using Modules
  • Include and Extend
  • Ruby Core Modules
  • Ruby Module Basics
  • Input and Output
  • Search
  • Ruby Class Design
  • Ruby Blocks
  • Working With Blocks
  • Blocks Practice
  • Ruby Objects and Classes
  • Ruby Variables and Methods
  • Build a Bank Account Class
  • Ruby Loops
  • Ruby Iteration
  • Build a Simple Contact List
  • Ruby Arrays
  • Ruby Hashes
  • Build a Grocery List Program
  • Ruby Syntax
  • Ruby Strings and Escape Sequences
  • Ruby Objects
  • Ruby Numeric Types
  • Ruby Conditionals
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Form Basics
  • Organizing Forms
  • Choosing Options
  • Images, Text and Links
  • Going Further with HTML
  • Make It Beautiful with CSS
  • Adding a New Web Page
  • Getting Familiar with HTML and CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Structuring Your Content
  • Getting Started With HTML
  • Newbie