The
Developers
World
For Entrepreneurs, Managers & Designers
Developers are 

creative problem solvers who use words
and logic to “model” stuff with objects,
properties, methods, inheritance,
composition, apis, and frameworks, 

to build: web sites, web apps, mobile
apps, and iot in a repository on a stack
with tools and tests at scale for our
users.
Creative Problem
Solvers
• Inventive
• Adaptive
• Curios
• Thoughtful
• Passionate
• Abstract
'Treat your developers like creative
workers – or watch them leave'
Jeff Lawson, Twilio CEO
“[Software engineering] is perhaps the
most creative field imaginable. It’s just
your thoughts and a screen waiting to be
filled with code. In that screen you can
create anything.”
Nick Malik, CEO 

Vanguard Enterprise Architects
Who Use Words
• More than 690 Programming Languages
• Maybe 2300 depending on how you count
• Instructions for computers to read
• Best when written for people to read




 “Any fool can write code that a computer can understand. Good
programmers write code that humans can understand”

Martin Fowler, Chief Scientist at ThoughtWorks

Founder of the Agile Software & Extreme Programming Movements
And Logic
• Logic is making decisions based on something

that ‘thing’ is what we call a ‘variable’
• The most basic logic is an ‘if’ statement

to check if the ‘variable’ contains a value
• Algorithms are sets of 

logic that accomplish 

a task like a bubble sort 

or binary tree search

(collected into a ‘function’)
To “Model” Stuff
• Represent things in the outside world
• Into things in the inside world











With Objects
• Objects are things we’re trying to represent

usually figured out from modeling the problem

also called a class - a kind of thing
• Banana





Properties
• Properties are how you’d describe an object

also sometimes called attributes
• Banana.color or 

Banana.ripeness or

Monkey.hunger





Methods
• Methods are how we manipulate an object

by attaching functions to an object
• Monkey.eat() or Monkey.eat(Banana)









Inheritance
• A class can inherit from another ‘parent’ class
• The child class (also called a subclass) gets all the
properties and methods defined on the parent
• This makes things more

efficient
• Mammal.eat()

Monkey < Mammal

Person < Mammal
• NOW BOTH CAN MONCH
Composition
• Assemble useful features that cross the 

inheritance boundaries
• Cool because its very reusable

even across different codebases
• Tail.wiggle()

Monkey uses Tail

Snek uses Tail
APIs
• An application programming interface is a defined set of
objects and methods
• Defined by a third party to allow our code to interact with
their stuff – like an operating system letting us save a file
• Many modern services offer remote access to their apis to
allow us to get data or trigger jobs for them to do











Frameworks
• A collection of tools designed to make building a
particular kind of app easier
• An pre-assembled set of standardized parts to let
us focus on what’s unique about this project
• Simple things like buttons all the way to full login
systems with just a few steps or lines of code







To Build
Web Sites
• HTML for the content & structure
• CSS for the presentation & layout
• JavaScript for the interactivity







1.8 BILLION WEBSITES

Netcraft Survey
Web Apps
• Building desktop-class application experiences via
a browser and implemented with web technologies

HTML - CSS - JavaScript
• Deliver to a broader audience than a particular
operating system
• Think GMAIL!





Mobile Apps
• Applications delivered on mobile devices
• Fundamentally limited by screen size, attention
span and low bandwidth
• Touch-oriented user experiences
• Implications of always on
IOT
• The internet of things will connect more new smart
devices as we put smarts into everything we use
• 20 billion connected ‘smart things’ by 2020
• Implications of crappy security
• Even more of an always on presence





In a Repository
• The code lives in a directory called a repository
• A history of the code changes is stored in the repository
too (usually with a tool called git)
• When code changes are ready we ‘commit’ them into
the repository (and we can revert to previous commits if
we make a mistake)
• A copy of the repository usually lives on a server
someplace too

like GitHub

On a Stack
• The software is ‘deployed’ onto a server that provide
many layers of functionality
• The application sits between 

those layers to connect the 

user and their data





With Tools
• Code is written in text files, so the most
fundamental tool is the text editor
• Bigger text editors with integrated code cleanup or
parent object look-ups or whatever are called
integrated development environments (or IDE)
• Some tools provide graphic interfaces for building
layouts or modifying databases
• There are tools for visually building API services
And Tests
• Tests make new code better by considering the
edge cases
• Tests make new code safer because the tests show
you didn’t break anything else in the system
• Tests make it easier to cleanup old code — called
refactoring
• Tests are the only way to sleep at night
At Scale
• We can build a house or we can build a skyscraper,
but we can’t use the same foundation on both

















For Our Users
• Every decision is about what the user experiences,
and how that delivers value for that user
• That needs to be the top priority and should be part
of every decision we make together as a team













And We Wish You
Understood That
Code Monkey
Written by Jonathan Coulton
A Former Software Developer

The Developers World

  • 1.
  • 2.
    Developers are 
 creativeproblem solvers who use words and logic to “model” stuff with objects, properties, methods, inheritance, composition, apis, and frameworks, 
 to build: web sites, web apps, mobile apps, and iot in a repository on a stack with tools and tests at scale for our users.
  • 3.
    Creative Problem Solvers • Inventive •Adaptive • Curios • Thoughtful • Passionate • Abstract 'Treat your developers like creative workers – or watch them leave' Jeff Lawson, Twilio CEO “[Software engineering] is perhaps the most creative field imaginable. It’s just your thoughts and a screen waiting to be filled with code. In that screen you can create anything.” Nick Malik, CEO 
 Vanguard Enterprise Architects
  • 4.
    Who Use Words •More than 690 Programming Languages • Maybe 2300 depending on how you count • Instructions for computers to read • Best when written for people to read
 
 
 “Any fool can write code that a computer can understand. Good programmers write code that humans can understand”
 Martin Fowler, Chief Scientist at ThoughtWorks
 Founder of the Agile Software & Extreme Programming Movements
  • 5.
    And Logic • Logicis making decisions based on something
 that ‘thing’ is what we call a ‘variable’ • The most basic logic is an ‘if’ statement
 to check if the ‘variable’ contains a value • Algorithms are sets of 
 logic that accomplish 
 a task like a bubble sort 
 or binary tree search
 (collected into a ‘function’)
  • 6.
    To “Model” Stuff •Represent things in the outside world • Into things in the inside world
 
 
 
 
 

  • 7.
    With Objects • Objectsare things we’re trying to represent
 usually figured out from modeling the problem
 also called a class - a kind of thing • Banana
 
 

  • 8.
    Properties • Properties arehow you’d describe an object
 also sometimes called attributes • Banana.color or 
 Banana.ripeness or
 Monkey.hunger
 
 

  • 9.
    Methods • Methods arehow we manipulate an object
 by attaching functions to an object • Monkey.eat() or Monkey.eat(Banana)
 
 
 
 

  • 10.
    Inheritance • A classcan inherit from another ‘parent’ class • The child class (also called a subclass) gets all the properties and methods defined on the parent • This makes things more
 efficient • Mammal.eat()
 Monkey < Mammal
 Person < Mammal • NOW BOTH CAN MONCH
  • 11.
    Composition • Assemble usefulfeatures that cross the 
 inheritance boundaries • Cool because its very reusable
 even across different codebases • Tail.wiggle()
 Monkey uses Tail
 Snek uses Tail
  • 12.
    APIs • An applicationprogramming interface is a defined set of objects and methods • Defined by a third party to allow our code to interact with their stuff – like an operating system letting us save a file • Many modern services offer remote access to their apis to allow us to get data or trigger jobs for them to do
 
 
 
 
 

  • 13.
    Frameworks • A collectionof tools designed to make building a particular kind of app easier • An pre-assembled set of standardized parts to let us focus on what’s unique about this project • Simple things like buttons all the way to full login systems with just a few steps or lines of code
 
 
 

  • 14.
  • 15.
    Web Sites • HTMLfor the content & structure • CSS for the presentation & layout • JavaScript for the interactivity
 
 
 
 1.8 BILLION WEBSITES
 Netcraft Survey
  • 16.
    Web Apps • Buildingdesktop-class application experiences via a browser and implemented with web technologies
 HTML - CSS - JavaScript • Deliver to a broader audience than a particular operating system • Think GMAIL!
 
 

  • 17.
    Mobile Apps • Applicationsdelivered on mobile devices • Fundamentally limited by screen size, attention span and low bandwidth • Touch-oriented user experiences • Implications of always on
  • 18.
    IOT • The internetof things will connect more new smart devices as we put smarts into everything we use • 20 billion connected ‘smart things’ by 2020 • Implications of crappy security • Even more of an always on presence
 
 

  • 19.
    In a Repository •The code lives in a directory called a repository • A history of the code changes is stored in the repository too (usually with a tool called git) • When code changes are ready we ‘commit’ them into the repository (and we can revert to previous commits if we make a mistake) • A copy of the repository usually lives on a server someplace too
 like GitHub

  • 20.
    On a Stack •The software is ‘deployed’ onto a server that provide many layers of functionality • The application sits between 
 those layers to connect the 
 user and their data
 
 

  • 21.
    With Tools • Codeis written in text files, so the most fundamental tool is the text editor • Bigger text editors with integrated code cleanup or parent object look-ups or whatever are called integrated development environments (or IDE) • Some tools provide graphic interfaces for building layouts or modifying databases • There are tools for visually building API services
  • 22.
    And Tests • Testsmake new code better by considering the edge cases • Tests make new code safer because the tests show you didn’t break anything else in the system • Tests make it easier to cleanup old code — called refactoring • Tests are the only way to sleep at night
  • 23.
    At Scale • Wecan build a house or we can build a skyscraper, but we can’t use the same foundation on both
 
 
 
 
 
 
 
 

  • 24.
    For Our Users •Every decision is about what the user experiences, and how that delivers value for that user • That needs to be the top priority and should be part of every decision we make together as a team
 
 
 
 
 
 

  • 25.
    And We WishYou Understood That
  • 27.
    Code Monkey Written byJonathan Coulton A Former Software Developer