$30 off During Our Annual Pro Sale. View Details »

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
Tweet

More Decks by Jim Holmes

Other Decks in Technology

Transcript

  1. Coding for Non-
    Coders

    View Slide

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

    View Slide

  3. The Leadership Journey
    https://leanpub.com/theleadershipjourney
    My Leadership Book

    View Slide

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

    View Slide

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

    View Slide

  6. Hello World

    View Slide

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

    View Slide

  8. Writing Code
    is…

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  13. Block I:
    How Code Works

    View Slide

  14. Exercise:
    HelloWorld

    View Slide

  15. How Code Executes

    View Slide

  16. DISCLAIMER
    I am not a computer scientist. Some of this
    content may be metaphorically correct but
    technically incorrect.

    View Slide

  17. View Slide

  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

    View Slide

  19. Coding for Non-Coders
    What Humans Need
    Please do what I mean and not what I typed

    View Slide

  20. Coding for Non-Coders
    Interpreted Code
    Source
    Code
    File
    Interpreter

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  25. • camelCasing
    • Common in Java
    • PascalCasing
    • .NET and others
    • behavior_driven_development
    • Ruby, BDD enthusiasts
    Coding for Non-Coders
    Naming Conventions

    View Slide

  26. • Naming
    • Recursion
    • Off-by-one errors
    Coding for Non-Coders
    Two Hardest Things in Programming

    View Slide

  27. Follow your team’s
    conventions

    View Slide

  28. • Classes == A thing
    • Methods == Behaviors
    • Properties == Attributes/Characteristics
    • Inheritance == Share common traits
    • Encapsulation == Hide information
    Coding for Non-Coders
    A Bit on OOP

    View Slide

  29. Animal
    Dog
    Brittany Spaniel

    View Slide

  30. Exercise:
    Create
    Animal, Dog,
    BrittanySpaniel

    View Slide

  31. Namespaces

    View Slide

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

    View Slide

  33. dotnet core
    Command Line
    Interface
    (CLI)

    View Slide

  34. Flow Control
    Loops

    View Slide

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

    View Slide

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

    View Slide

  37. Block III:
    More Tests
    Lean Coffee Topics

    View Slide

  38. Block IV:
    Practice via Code Katas

    View Slide