Scott Craig

Scott Craig

Edinburgh, Edinburgh City, United Kingdom

40,228

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

    Visit West Lothian

  • Job Title

    Product Manager

  • Spoken Languages

    • English
  • Looking for work

    Yes

556 Achievements

  • The Browser Environment
  • Telling the Story
  • Designing for your User’s "To-be"
  • Understanding your User’s “As-is” Scenario
  • Becoming Acquainted with Your User
  • Becoming a Design Thinker
  • Getting Started with Express
  • Loop Through Objects
  • Object Basics
  • Multidimensional Arrays
  • Loop Through Arrays
  • Store Multiple Values in an Array
  • Working with 'for' Loops
  • Simplify Repetitive Tasks with Loops
  • Arrow Functions
  • Pass Information Into Functions
  • Create Reusable Code with Functions
  • 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!
  • Creating a Long Term Business
  • Going Beyond & Best Practices
  • Introduction to User Onboarding
  • Going Further with Type
  • Laying Out Type
  • Web Typography
  • Starting Right with PHP Best Practices
  • How to Choose and Use Fonts
  • Introduction to Typography
  • Interaction Design in Practice
  • Theories and Psychology
  • Material Design Components
  • Working With Material Design
  • Designing for iOS
  • Working With Human Interface Guidelines
  • User Interface Library
  • Visual Design Language
  • Voice and Tone
  • Understanding Design Systems
  • Bug Reporting
  • Executing Tests
  • Writing Manual Test Cases
  • Why We Test
  • Recruiting Participants
  • Using the Conversation Service
  • Introducing the Watson APIs
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Media Templates in WordPress
  • A Template Hierarchy Review
  • Custom Post Type Templates
  • Archive Templates in WordPress
  • Protecting and Sharing Your Work
  • Licensing
  • Getting Started with Copyright
  • Fair Use and Public Domain
  • Introducing Financial Statements
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Putting It All Together
  • Embracing the Process
  • Curating the Work
  • Portfolio Goals
  • Demystifying the Portfolio
  • UX Content Basics
  • How to Make Wireframes in Adobe XD
  • Interactivity in Adobe XD
  • Prototyping Designs in Adobe XD
  • Introducing Adobe XD
  • Hello, Photoshop!
  • Create a Banner Ad
  • Digital Media Basics
  • How to Critique Design
  • Principles of Design
  • Elements of Design
  • What a Beautiful Vue!
  • Networking
  • Self-Assessment
  • Setting Your Course
  • Careers in the Tech Industry
  • The Command Shell
  • Directories and Files
  • Common Commands
  • Pseudo-classes and Combinators
  • The Role of Selectors in JavaScript
  • Selector Basics
  • How to Make Wireframes in Balsamiq
  • How to Make Wireframes on Paper
  • What is Wireframing?
  • Adding Images and a Mockup
  • Logo Design
  • Save for the Web
  • Creating a Wireframe
  • Introducing Adobe Illustrator
  • Time Complexity
  • Playing a Counting Game
  • Getting the REST You Need 2
  • Strategy: Determining Goals for your Product
  • Understanding Our Users
  • Intro to User Experience (UX) Design
  • What is Information Architecture?
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • GitHub and Other Remote Repositories
  • Managing Committed Files
  • First Commits
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Welcome to Gulp.js
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • JavaScript Tools and Workflows
  • Introducing Vue
  • JavaScript is Everywhere
  • Designing for your User’s "To-be"
  • Telling the Story
  • Understanding your User’s “As-is” Scenario
  • Becoming Acquainted with Your User
  • Becoming a Design Thinker
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • The Design Solution
  • The Design Problem
  • Design Principles
  • What is Product Design?
  • Custom Post Type Templates
  • How WordPress Plugins Work
  • Hooking Into WordPress Plugins
  • Action Functions in WordPress
  • Filter Functions in WordPress
  • Finishing Your WordPress Theme
  • Adding a Blog to a WordPress Theme
  • Building Out WordPress Navigation
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Modules and Themes
  • Learn About Drupal
  • Page and Post Templates in WordPress
  • Homepage Templates in WordPress
  • Core WordPress Theme Files
  • Custom Dashboard Widgets
  • Controlling Admin Navigation
  • Customizing the Login Screen
  • Admin Color Schemes
  • WordPress Plugins
  • WordPress Themes
  • The WordPress Customizer
  • Managing Media in WordPress
  • Managing Content in WordPress
  • Installing WordPress Locally
  • What Is WordPress?
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Moving Beyond the Blog
  • Finding Business
  • Creating Content
  • Introduction to Blogging
  • Rehearsal and Delivery
  • Creating and Refining
  • Preparing to Present
  • Soft Skills - Psychology
  • Writing Online
  • Productivity
  • Presentation Skills
  • Important Skills For Professional Success
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Why Object-Oriented Programming?
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Arrays
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Practicing Data Visualization in Excel
  • Chart Formatting and Layout
  • When To Use What Type of Chart
  • Introduction To Data Visualization
  • Build a Spreadsheet
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started With Spreadsheets
  • Introducing Spreadsheets
  • Getting Started with GraphQL
  • Reusable GraphQL
  • Making Changes with Mutations
  • Fetching Data with Queries
  • Art Direction with the Picture Element
  • 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
  • Finding the Data You Want
  • Getting Data from a Database
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Basic Web Typography
  • Design Patterns
  • Page Layout
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Captioning Video
  • Media Basics
  • Choosing Options
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Refining the App
  • Building the Application
  • Setting up with Create React App
  • Designing Dataflow
  • Component Lifecycle
  • Stateful Components
  • Meet Selenium
  • Fundamentals of Docker
  • Docker Use Cases
  • 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
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Thinking in Components
  • First Steps in React
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • 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
  • WWW
  • The Internet
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Exploration
  • Discovery
  • Finishing the Game
  • Introducing JavaScript
  • Testing and Publishing an Alexa Skill
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • What is Big Data
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Get Involved in Open Source
  • Testing for Accessibility
  • Mobile Accessibility
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Access for Everybody
  • Optimization Best Practices
  • Asset Optimization
  • Why Web Performance Matters
  • Quiz Practice Project
  • Lists, Code, Links and Images
  • Understanding Markdown
  • S3 Storage Service
  • AWS and "The Cloud"
  • Prototypal Inheritance
  • Building an Alexa Skill
  • Alexa Skills Kit Overview
  • Security: Solutions
  • Security: Concerns
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Building a REST Service
  • Understanding Flexbox
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Building Forms with Bootstrap
  • Getting Started with Android
  • The Browser Environment
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Getting the REST You Need
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Ruby Iteration
  • Ruby Loops
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Gems
  • Ruby Arrays
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • 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
  • Organizing Forms
  • Form Basics
  • Designing with the Latest Features
  • Basic Layout
  • CSS Box Model
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Styling Web Pages and Navigation
  • Hello, GitHub!
  • Data, Databases and SQL
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Web Typography
  • Values and Units
  • Advanced Selectors
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • Selectors - Beyond the Basics
  • Gulp your JavaScript workflow!
  • Scrum Artifacts
  • Scrum Events
  • Introducing Scrum
  • What is Agile?
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • An Overview of Hooks in WordPress
  • The Production Server
  • The Local Development Environment
  • How WordPress Templates Work
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • PHP Data & Structure
  • PHP Getting Started
  • Building Page Templates in WordPress
  • Starting a WordPress Theme
  • The Genesis Marketplace
  • Configuring a Genesis Child Theme
  • An Overview of the Genesis Framework
  • An Overview of WordPress Frameworks
  • Moving from WordPress.com to Self-Hosted WordPress.org
  • Running an Ecommerce Site Long Term
  • Extending WooCommerce
  • Managing Orders in WooCommerce
  • Managing Products in WooCommerce
  • Setting Up WooCommerce
  • Introduction to Ecommerce with WordPress
  • Local WordPress Development
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • Finding Good WordPress Plugins and Themes
  • Managing Comments on a WordPress Blog
  • Working with Media in WordPress Blogs
  • Posts and Pages in WordPress
  • Blogging with WordPress Overview
  • WordPress User Roles
  • WordPress Admin Settings
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • Getting Started with WordPress
  • The WordPress Codex
  • Creating a Simple Lightbox
  • Web Apps
  • Websites
  • Introduction
  • Chrome DevTools Basics
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • Simple Mobile Interface
  • Exporting Designs
  • Sketch Features
  • Introducing Sketch
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Understanding Values and Units
  • Fundamental Concepts
  • The Box Model
  • Basic Selectors
  • Getting Started with CSS
  • Creating an SVG
  • Introduction to SVG
  • Computer Languages
  • Computer Basics
  • Structuring Tables
  • Table Basics
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • AngularJS MVC Frameworks
  • Getting Started with Android
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • DNS Basics
  • Adding Pages to a Website
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • What is User Experience (UX)?
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Color Theory
  • Selectors
  • Starting a Freelance Career
  • Getting Started with CSS
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • The Logo Sprint
  • Logo Design 101
  • Working with a Developer
  • Designing our App
  • Wireframing, Interaction Design and Planning
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Moving Around in the Console
  • Configuring WordPress
  • Getting Started with WordPress
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Text Editors and HTML
  • Introduction to Front-End Frameworks
  • Principles
  • Elements
  • Graphic Basics
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Website Basics
  • Getting Started With Git
  • Why Version Control Matters
  • Website Basics
  • Newbie