Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Developers World


Published on

An overview of the way developers approach problems, for Entrepreneurs, Managers & Designers, to facilitate discussion and understanding. 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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

The Developers World

  1. 1. The Developers World For Entrepreneurs, Managers & Designers
  2. 2. 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.
  3. 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. 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. 5. 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’)
  6. 6. To “Model” Stuff • Represent things in the outside world • Into things in the inside world

  7. 7. 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

  8. 8. Properties • Properties are how you’d describe an object
 also sometimes called attributes • Banana.color or 
 Banana.ripeness or

  9. 9. Methods • Methods are how we manipulate an object
 by attaching functions to an object • or

  10. 10. 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 •
 Monkey < Mammal
 Person < Mammal • NOW BOTH CAN MONCH
  11. 11. 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
  12. 12. 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

  13. 13. 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

  14. 14. To Build
  15. 15. Web Sites • HTML for the content & structure • CSS for the presentation & layout • JavaScript for the interactivity
 Netcraft Survey
  16. 16. 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!

  17. 17. 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
  18. 18. 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

  19. 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. 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. 21. 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
  22. 22. 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
  23. 23. At Scale • We can build a house or we can build a skyscraper, but we can’t use the same foundation on both

  24. 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. 25. And We Wish You Understood That
  26. 26. Code Monkey Written by Jonathan Coulton A Former Software Developer