Slide 1

Slide 1 text

Coding for Non- Coders

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Hello World

Slide 7

Slide 7 text

What’s Writing Code Look Like to You?

Slide 8

Slide 8 text

Writing Code is…

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Block I: How Code Works

Slide 14

Slide 14 text

Exercise: HelloWorld

Slide 15

Slide 15 text

How Code Executes

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Coding for Non-Coders What The CPU Needs 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1101

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Coding for Non-Coders Interpreted Code Source Code File Interpreter

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

• 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

Slide 24

Slide 24 text

• 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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Follow your team’s conventions

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

Animal Dog Brittany Spaniel

Slide 30

Slide 30 text

Exercise: Create Animal, Dog, BrittanySpaniel

Slide 31

Slide 31 text

Namespaces

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

dotnet core Command Line Interface (CLI)

Slide 34

Slide 34 text

Flow Control Loops

Slide 35

Slide 35 text

Block II: Libraries, Code, Writing Tests!

Slide 36

Slide 36 text

Evaluation: http://Sli.do C236

Slide 37

Slide 37 text

Block III: More Tests Lean Coffee Topics

Slide 38

Slide 38 text

Block IV: Practice via Code Katas