SlideShare a Scribd company logo
1 of 38
Foundational Track
Day 2 – Session 1
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
How To Think
Like A Programmer
KASSANDRA KEETON, Passionate Pythonista @ Cisco
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Today’s Intention
To provide you with tools & techniques to
minimize frustration, required time to code,
and code refactoring needs while
inviting opportunities for collaboration.
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
What We Will Cover Today
• Mini Background About Me
• Why You Made A Wise Decision To Be Here
• What To Consider Before Writing Code
• Process For A “Bare Bones” Script
• Additional Resources
• Example Walkthrough:
Rock Paper Scissors Game
• Recap
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
About Me
• May 2008 – Bachelors of Science
(Computer Science) @ TCU
• Jan 2014 – Cisco CUCM TAC
• June 2016 – Collaboration Scripting
Augmentation Lead
• Case Backlog Management Tool
• Global Bi-Weekly Coding Hour
• Trained TAC COL Engineers In Python
• Data Science & Analytics For Metrics
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Why You Made A Wise Decision To Be Here
• Python is the language of tech future (HOT job market)
• Being able to automate the boring has many benefits:
• Minimizes human error
• Provides opportunity to expand abilities & do more with less
• Frees up your time to focus on more important matters
• Enables you to beef up your resume
• Consistent uniform standards improve readability and code maintenance
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Why You Made A Wise
Decision To Be Here
• Habit (settled tendency or practice)
• Skill (ability to do something well)
“Repetition is the mother of skill.”
- Tony Robbins
*original signer of the Agile Manifesto &
creator of the Extreme Programming series
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Bad VS Good Habits
BAD HABITS
• Not cleaning up your code
• Not being “modular”
• Not leaving “breadcrumbs”
GOOD HABITS
• Clear, concise code
• Comments for additional clarification
• Following style and coding guidelines
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
What To Consider
Before Writing Code
• Have you ever been frustrated
because a program didn’t work
in your best interest?
• Ever had code crash for
no apparent reason?
• Who is your target audience?
• What is it they are ultimately
looking for?
• How will their experience
be affected by your code?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
What To Consider
Before Writing Code
• What is your timeframe
and required milestones?
• How can you break it down?
• How can you provide opportunities
for collaboration?
• Who will come behind you?
• How to make it future proof?
• How to make code minimalistic?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Why “Bare Bones”?
• Every big idea or structure
starts with a blueprint
• Lack of vision could lead to
missed deadlines & “death” of projects
• Easier troubleshooting
• Collaboration opportunities
• Code more flexible &
easier to navigate
• Efficiently fix bugs faster
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
What Is The
“Bare Bones” Process?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
The “Bare Bones” Process:
1. Gather Requirements
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1 - Requirements
• Overall intention
• Time constraints
• Immediate iterable deliverables
• Need vs Nice-To-Have
• Additional resources required
• Part of something bigger?
• How often will you meet with
programmers? With BU?
• What’s the user experience look like?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1. Gather Requirements
2. Determine All Required Functions
The “Bare Bones” Process:
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
2 - Determine All Required Functions
• What can be reused later by other programs?
• What might be reused later by this program?
• Breakup into smaller functions (15 lines per function is pythonic)
• Create space for the nice-to-haves
• Think each section through and what it would take to complete
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
2 - Determine All Required Functions
Nice To Have
• What can be reused later by other programs?
• What might be reused later by this program?
• Breakup into smaller functions (15 lines per function is pythonic)
• Create space for the nice-to-haves
• Think each section through and what it would take to complete
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1. Gather Requirements
2. Determine All Required Functions
3. Create “Bare Bones” Infrastructure
Part 1: Create Function Outlines
The “Bare Bones” Process:
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1. Gather Requirements
2. Determine All Required Functions
3. Create “Bare Bones” Infrastructure
Part 1: Create Function Outlines
4. Create “Bare Bones” Infrastructure
Part 2: Tie Functions Into __main__
The “Bare Bones” Process:
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1. Gather Requirements
2. Determine All Required Functions
3. Create “Bare Bones” Infrastructure
Part 1: Create Function Outlines
4. Create “Bare Bones” Infrastructure
Part 2: Tie Functions Into __main__
5. Create “Bare Bones” Infrastructure
Part 3: Test The Logic
The “Bare Bones” Process:
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1. Gather Requirements
2. Determine All Required Functions
3. Create “Bare Bones” Infrastructure
Part 1: Create Function Outlines
4. Create “Bare Bones” Infrastructure
Part 2: Tie Functions Into __main__
5. Create “Bare Bones” Infrastructure
Part 3: Test The Logic
6. Assign Functions To Team
The “Bare Bones” Process:
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Additional Resources
• Utilize Pylint (OpenSource on GitHub) for static code analysis to:
• Enforce coding standards
• Look for programming errors
• Ability to extend this for your own needs (more advanced)
• Utilize pytest (OpenSource on GitHub) to help you write better programs using testing
• Full code & additional information for this speech: http://bit.ly/CiscoLive-HTLAP
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
EXAMPLE:
Rock, Paper, Scissors Game
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 1: Requirements
The business unit has requested that you make a
rock, paper, scissors game that employees' kids
can play when they visit their parents.
And they want it done in a month.
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 1: Requirements / Features
• At least 1 player and 1 computer
• Some number of combinations for a tie and winner
• At minimum 3 choices per player
• Some way to know the winner
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 1: Requirements / Features
• At least 1 player and 1 computer
• Some number of combinations for a tie and winner
• At minimum 3 choices per player
• Some way to know the winner
Nice To Have
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 2:
Determine All
Required Functions
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 3:
Create Function
Outlines
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 4:
Tie Into
__main__
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Quick tip:
update
documentation
as you go
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
STEP 5:
Test it!
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
What We Covered Today
• Mini Background About Me
• Why You Made A Wise Decision To Be Here
• What To Consider Before Writing Any Code
• Process For A “Bare Bones” Script
• Additional Resources
• Example Walkthrough:
Rock Paper Scissors Game
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
How To Think
Like A Programmer
KASSANDRA KEETON, Passionate Pythonista @ Cisco
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
How To Contact
kkeeton@cisco.com
prosperousheart
kkeeton
http://bit.ly/CiscoLive-HTLAP
How To Think Like A Programmer

More Related Content

What's hot

Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Perforce
 
Henrique Dantas - API fuzzing using Swagger
Henrique Dantas - API fuzzing using SwaggerHenrique Dantas - API fuzzing using Swagger
Henrique Dantas - API fuzzing using SwaggerDevSecCon
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)Hui (Henry) Chen
 
Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?M. Scott Ford
 
Important metrics for Measuring Code Health
Important metrics for Measuring Code HealthImportant metrics for Measuring Code Health
Important metrics for Measuring Code HealthM. Scott Ford
 
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer LeviDevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer LeviDevSecCon
 
A Secure DevOps Journey
A Secure DevOps JourneyA Secure DevOps Journey
A Secure DevOps JourneySonatype
 
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...FINOS
 
The Rise of DevSecOps - Fabian Lim - DevSecOpsSg
The Rise of DevSecOps - Fabian Lim - DevSecOpsSgThe Rise of DevSecOps - Fabian Lim - DevSecOpsSg
The Rise of DevSecOps - Fabian Lim - DevSecOpsSgDevSecOpsSg
 
Matt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everMatt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everDevSecCon
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce
 
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepoGit in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepoGina Bustos
 
Ast in CI/CD by Ofer Maor
Ast in CI/CD by Ofer MaorAst in CI/CD by Ofer Maor
Ast in CI/CD by Ofer MaorDevSecCon
 
DevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi Douglen
DevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi DouglenDevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi Douglen
DevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi DouglenDevSecCon
 
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin CollinsStatic Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin CollinsSonatype
 
DevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim MackeyDevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim MackeyDevSecCon
 
Ursula Sarracini - When Old Meets New: Codebases
Ursula Sarracini - When Old Meets New: CodebasesUrsula Sarracini - When Old Meets New: Codebases
Ursula Sarracini - When Old Meets New: CodebasesAnton Caceres
 
How'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision RecordsHow'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision RecordsRafael Dohms
 

What's hot (20)

Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?
 
Henrique Dantas - API fuzzing using Swagger
Henrique Dantas - API fuzzing using SwaggerHenrique Dantas - API fuzzing using Swagger
Henrique Dantas - API fuzzing using Swagger
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
 
Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?
 
Important metrics for Measuring Code Health
Important metrics for Measuring Code HealthImportant metrics for Measuring Code Health
Important metrics for Measuring Code Health
 
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer LeviDevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
 
A Secure DevOps Journey
A Secure DevOps JourneyA Secure DevOps Journey
A Secure DevOps Journey
 
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
 
Software developers as blue team
Software developers as blue teamSoftware developers as blue team
Software developers as blue team
 
The Rise of DevSecOps - Fabian Lim - DevSecOpsSg
The Rise of DevSecOps - Fabian Lim - DevSecOpsSgThe Rise of DevSecOps - Fabian Lim - DevSecOpsSg
The Rise of DevSecOps - Fabian Lim - DevSecOpsSg
 
Matt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everMatt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one ever
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and Economics
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase 
 
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepoGit in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
 
Ast in CI/CD by Ofer Maor
Ast in CI/CD by Ofer MaorAst in CI/CD by Ofer Maor
Ast in CI/CD by Ofer Maor
 
DevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi Douglen
DevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi DouglenDevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi Douglen
DevSecCon Tel Aviv 2018 - Value driven threat modeling by Avi Douglen
 
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin CollinsStatic Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin Collins
 
DevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim MackeyDevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim Mackey
 
Ursula Sarracini - When Old Meets New: Codebases
Ursula Sarracini - When Old Meets New: CodebasesUrsula Sarracini - When Old Meets New: Codebases
Ursula Sarracini - When Old Meets New: Codebases
 
How'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision RecordsHow'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision Records
 

Similar to How To Think Like A Programmer

Static Files in the Modern Web Age
Static Files in the Modern Web AgeStatic Files in the Modern Web Age
Static Files in the Modern Web AgeAlec Gleason
 
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Codemotion
 
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Codemotion
 
Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsCisco DevNet
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Cisco DevNet
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet OverviewCisco Canada
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
Magical meeting experiences
Magical meeting experiences Magical meeting experiences
Magical meeting experiences Cisco Canada
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdfMorooCoffee
 
The process of software engineering
The process of software engineeringThe process of software engineering
The process of software engineeringJohn Lynch
 
How to Have Magical Meeting Experiences
How to Have Magical Meeting ExperiencesHow to Have Magical Meeting Experiences
How to Have Magical Meeting ExperiencesCisco Canada
 
Cisco Connect Vancouver 2017 - How to have magical meeting experiences
Cisco Connect Vancouver 2017 - How to have magical meeting experiencesCisco Connect Vancouver 2017 - How to have magical meeting experiences
Cisco Connect Vancouver 2017 - How to have magical meeting experiencesCisco Canada
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldRogue Wave Software
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsInclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsAnne Gentle
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingDigicomp Academy AG
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopTessa Mero
 

Similar to How To Think Like A Programmer (20)

Static Files in the Modern Web Age
Static Files in the Modern Web AgeStatic Files in the Modern Web Age
Static Files in the Modern Web Age
 
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
 
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
 
Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat bots
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Cisco_RL_talk
Cisco_RL_talkCisco_RL_talk
Cisco_RL_talk
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet Overview
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Magical meeting experiences
Magical meeting experiences Magical meeting experiences
Magical meeting experiences
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdf
 
The process of software engineering
The process of software engineeringThe process of software engineering
The process of software engineering
 
How to Have Magical Meeting Experiences
How to Have Magical Meeting ExperiencesHow to Have Magical Meeting Experiences
How to Have Magical Meeting Experiences
 
Cisco Connect Vancouver 2017 - How to have magical meeting experiences
Cisco Connect Vancouver 2017 - How to have magical meeting experiencesCisco Connect Vancouver 2017 - How to have magical meeting experiences
Cisco Connect Vancouver 2017 - How to have magical meeting experiences
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT world
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsInclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot Workshop
 

Recently uploaded

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Recently uploaded (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

How To Think Like A Programmer

  • 1. Foundational Track Day 2 – Session 1
  • 2. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential How To Think Like A Programmer KASSANDRA KEETON, Passionate Pythonista @ Cisco
  • 3. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Today’s Intention To provide you with tools & techniques to minimize frustration, required time to code, and code refactoring needs while inviting opportunities for collaboration.
  • 4. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential What We Will Cover Today • Mini Background About Me • Why You Made A Wise Decision To Be Here • What To Consider Before Writing Code • Process For A “Bare Bones” Script • Additional Resources • Example Walkthrough: Rock Paper Scissors Game • Recap
  • 5. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential About Me • May 2008 – Bachelors of Science (Computer Science) @ TCU • Jan 2014 – Cisco CUCM TAC • June 2016 – Collaboration Scripting Augmentation Lead • Case Backlog Management Tool • Global Bi-Weekly Coding Hour • Trained TAC COL Engineers In Python • Data Science & Analytics For Metrics
  • 6. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Why You Made A Wise Decision To Be Here • Python is the language of tech future (HOT job market) • Being able to automate the boring has many benefits: • Minimizes human error • Provides opportunity to expand abilities & do more with less • Frees up your time to focus on more important matters • Enables you to beef up your resume • Consistent uniform standards improve readability and code maintenance
  • 7. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Why You Made A Wise Decision To Be Here • Habit (settled tendency or practice) • Skill (ability to do something well) “Repetition is the mother of skill.” - Tony Robbins *original signer of the Agile Manifesto & creator of the Extreme Programming series
  • 8. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Bad VS Good Habits BAD HABITS • Not cleaning up your code • Not being “modular” • Not leaving “breadcrumbs” GOOD HABITS • Clear, concise code • Comments for additional clarification • Following style and coding guidelines
  • 9. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential What To Consider Before Writing Code • Have you ever been frustrated because a program didn’t work in your best interest? • Ever had code crash for no apparent reason? • Who is your target audience? • What is it they are ultimately looking for? • How will their experience be affected by your code?
  • 10. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential What To Consider Before Writing Code • What is your timeframe and required milestones? • How can you break it down? • How can you provide opportunities for collaboration? • Who will come behind you? • How to make it future proof? • How to make code minimalistic?
  • 11. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Why “Bare Bones”? • Every big idea or structure starts with a blueprint • Lack of vision could lead to missed deadlines & “death” of projects • Easier troubleshooting • Collaboration opportunities • Code more flexible & easier to navigate • Efficiently fix bugs faster
  • 12. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential What Is The “Bare Bones” Process?
  • 13. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential The “Bare Bones” Process: 1. Gather Requirements
  • 14. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1 - Requirements • Overall intention • Time constraints • Immediate iterable deliverables • Need vs Nice-To-Have • Additional resources required • Part of something bigger? • How often will you meet with programmers? With BU? • What’s the user experience look like?
  • 15. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1. Gather Requirements 2. Determine All Required Functions The “Bare Bones” Process:
  • 16. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2 - Determine All Required Functions • What can be reused later by other programs? • What might be reused later by this program? • Breakup into smaller functions (15 lines per function is pythonic) • Create space for the nice-to-haves • Think each section through and what it would take to complete
  • 17. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2 - Determine All Required Functions Nice To Have • What can be reused later by other programs? • What might be reused later by this program? • Breakup into smaller functions (15 lines per function is pythonic) • Create space for the nice-to-haves • Think each section through and what it would take to complete
  • 18. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1. Gather Requirements 2. Determine All Required Functions 3. Create “Bare Bones” Infrastructure Part 1: Create Function Outlines The “Bare Bones” Process:
  • 19. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1. Gather Requirements 2. Determine All Required Functions 3. Create “Bare Bones” Infrastructure Part 1: Create Function Outlines 4. Create “Bare Bones” Infrastructure Part 2: Tie Functions Into __main__ The “Bare Bones” Process:
  • 20. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1. Gather Requirements 2. Determine All Required Functions 3. Create “Bare Bones” Infrastructure Part 1: Create Function Outlines 4. Create “Bare Bones” Infrastructure Part 2: Tie Functions Into __main__ 5. Create “Bare Bones” Infrastructure Part 3: Test The Logic The “Bare Bones” Process:
  • 21. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1. Gather Requirements 2. Determine All Required Functions 3. Create “Bare Bones” Infrastructure Part 1: Create Function Outlines 4. Create “Bare Bones” Infrastructure Part 2: Tie Functions Into __main__ 5. Create “Bare Bones” Infrastructure Part 3: Test The Logic 6. Assign Functions To Team The “Bare Bones” Process:
  • 22. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Additional Resources • Utilize Pylint (OpenSource on GitHub) for static code analysis to: • Enforce coding standards • Look for programming errors • Ability to extend this for your own needs (more advanced) • Utilize pytest (OpenSource on GitHub) to help you write better programs using testing • Full code & additional information for this speech: http://bit.ly/CiscoLive-HTLAP
  • 23. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
  • 24. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential EXAMPLE: Rock, Paper, Scissors Game
  • 25. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 1: Requirements The business unit has requested that you make a rock, paper, scissors game that employees' kids can play when they visit their parents. And they want it done in a month.
  • 26. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 1: Requirements / Features • At least 1 player and 1 computer • Some number of combinations for a tie and winner • At minimum 3 choices per player • Some way to know the winner
  • 27. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 1: Requirements / Features • At least 1 player and 1 computer • Some number of combinations for a tie and winner • At minimum 3 choices per player • Some way to know the winner Nice To Have
  • 28. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
  • 29. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 2: Determine All Required Functions
  • 30. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 3: Create Function Outlines
  • 31. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 4: Tie Into __main__
  • 32. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Quick tip: update documentation as you go
  • 33. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential STEP 5: Test it!
  • 34. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
  • 35. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential What We Covered Today • Mini Background About Me • Why You Made A Wise Decision To Be Here • What To Consider Before Writing Any Code • Process For A “Bare Bones” Script • Additional Resources • Example Walkthrough: Rock Paper Scissors Game
  • 36. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential How To Think Like A Programmer KASSANDRA KEETON, Passionate Pythonista @ Cisco
  • 37. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential How To Contact kkeeton@cisco.com prosperousheart kkeeton http://bit.ly/CiscoLive-HTLAP