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

Full Stack Software Engineering for Beginners

Kojo Idrissa
December 20, 2016

Full Stack Software Engineering for Beginners

Kojo Idrissa

December 20, 2016

Transcript

18 slides
  1. Introduction/Premise • Programming vs Software Engineering • Pro Software Development

    vs Personal Projects • Coding with a team vs working solo 2
  2. Version Control (Git) • Why? • Protect yourself from mistakes

    • Enable yourself to take chances & try new things • Learning to work w/ a team 3
  3. Version Control (Git) • When? • 10 or more lines

    of working code that you're scared to change because it might break 4
  4. Version Control (Git) • Reference • Pro Git Chapters 1-3

    • https://git-scm.com/book/ en/v2 6
  5. Documentation • Why? • Help your future self • Help

    your teammates help you • Avoid that form of technical debt 8
  6. Documentation • When? • Writing code using a new technique

    • Writing functions, especially if they call other functions 9
  7. Documentation • How? • Docstrings for functions (minimums) • What

    the function does • What it takes as input (include data type) • What it produces as output (include data type) 10
  8. Testing & TDD • Testing vs "PURE" TDD • Why?

    • Tests protect you from future changes breaking things • TDD: "write tests first" forces you to think before you type 12
  9. Testing & TDD • When? • As soon as possible

    • Art + Science: experience helps 13
  10. Testing & TDD • How? • New coders: Python unittest

    and doctests • Experienced coders: pytest 14
  11. Testing & TDD • Next Step? • New coders: pytest

    • Experienced coders: Continuous Integration 15
  12. Other • Dependency Management & Deployment • Containers • DjangoCon

    2016 Day 2 Lightning Talks Joe Cronyn • VMs • Virtual Env 16

More Decks by Kojo Idrissa

Other Decks in Programming