Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Coding for Non-Coders workshop

Coding for Non-Coders workshop

This deck is the (very) skinny outline of what's covered in my all-day workshop, Coding for Non-Coders. This workshop is based on my online video course hosted at the Ministry of Testing: https://ministryoftesting.com/dojo/series/coding-for-non-coders-jim-holmes

You can find the code for this workshop at my GitHub repository: https://github.com/jimholmes/CodingWorkshop

Jim Holmes

June 12, 2019

More Decks by Jim Holmes

Other Decks in Technology


  1. Coding for Non- Coders

  2. Jim Holmes Executive Consultant, Guidepost Systems LLC [email protected] @aJimHolmes http://GuidepostSystems.com

    Who am I?
  3. The Leadership Journey https://leanpub.com/theleadershipjourney My Leadership Book

  4. This Course on Ministry of Testing https://ministryoftesting.com/dojo

  5. Code: https://github.com/jimholmes/CodingWorkshop

  6. Hello World

  7. What’s Writing Code Look Like to You?

  8. Writing Code is…

  9. Today’s Goals • Understand why coding is valuable for you

    • Get comfortable with writing simple code • Learn to write code and use code tools • Learn how to collaborate with developers • Gain confidence in working with code
  10. Today’s Blocks 1. How Code Works 2.Libraries, Code, Writing Tests!

    3.More Tests, Lean Coffee (YOU choose what we cover!) 4.Code Katas
  11. This Course Will NOT •Make you a professional software engineer

    •Teach you in-depth coding concepts •Teach you how to use source control •Make you a master with an IDE
  12. This Course WILL •Give you a starting point for good

    conversations •Get you familiar with fundamentals of writing code •Get you comfortable enough to continue learning
  13. Block I: How Code Works

  14. Exercise: HelloWorld

  15. How Code Executes

  16. DISCLAIMER I am not a computer scientist. Some of this

    content may be metaphorically correct but technically incorrect.
  17. None
  18. Coding for Non-Coders What The CPU Needs 0000 0000 0000

    0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1101
  19. Coding for Non-Coders What Humans Need Please do what I

    mean and not what I typed
  20. Coding for Non-Coders Interpreted Code Source Code File Interpreter

  21. Coding for Non-Coders Compiled Code Source Code File Compiler Executable

  22. Coding for Non-Coders Just-In-Time Code Source Code File Intermediate Compiler

    Intermediate File JIT Compiler
  23. • CPUs only speak binary • Each type of CPU

    is unique • Text => Executable varies by language platform • Execution models vary (Interpreted, JIT, compiled) Coding for Non-Coders Recap
  24. • Procedural == Straight line of execution • C, Pascal,

    Cobol • Object Oriented == Everything is a Thing • Java, Python, C++, .NET, Java, many others • Functional == Highly structured • Lisp, Haskell, F#, many others Coding for Non-Coders General Types of Programming
  25. • camelCasing • Common in Java • PascalCasing • .NET

    and others • behavior_driven_development • Ruby, BDD enthusiasts Coding for Non-Coders Naming Conventions
  26. • Naming • Recursion • Off-by-one errors Coding for Non-Coders

    Two Hardest Things in Programming
  27. Follow your team’s conventions

  28. • Classes == A thing • Methods == Behaviors •

    Properties == Attributes/Characteristics • Inheritance == Share common traits • Encapsulation == Hide information Coding for Non-Coders A Bit on OOP
  29. Animal Dog Brittany Spaniel

  30. Exercise: Create Animal, Dog, BrittanySpaniel

  31. Namespaces

  32. MyApp InputOutput Display Threading Disk USB Video Thread MyApp.IO.Disk.Reader MyApp.IO.USB.Reader

    Reader Reader
  33. dotnet core Command Line Interface (CLI)

  34. Flow Control Loops

  35. Block II: Libraries, Code, Writing Tests!

  36. Evaluation: http://Sli.do C236

  37. Block III: More Tests Lean Coffee Topics

  38. Block IV: Practice via Code Katas