Software Engineering For Beginners: A Jr. Developer's Guide
By Kojo Idrissa

Speaking English alone won't make you a journalist or author. The same is true of Python and becoming a professional developer or open source contributor. Many people are 'learning to code' to switch careers, but overlooking the other skills they'll need. New developers will learn the when, why, and how of those other skills, while experienced devs can use this as a roadmap for mentoring.

Saturday 2 p.m.–2:45 p.m. in Cartoon 1

An Outline of the Talk

Version Control (Git)

  • Why
    • Protect yourself from mistakes
    • Enable yourself to take chances & try new things
    • Learning to work w/ a team


  • 10 or more lines of working code that you're scared to change because it might break


  • Basic feature branch/merge workflow

Reference: Pro Git Chapters 1-3


In Code vs About Code: Start w/ In Code


  • Help your future self
  • Help your teammates help you
  • Avoid that form of technical debt


  • Writing code using a new technique
  • Writing functions, especially if they call other functions


  • Docstrings for functions (minimums)
    • What the function does
    • What it takes as input (include data type)
    • What it produces as output (include data type)

Next Step: Learn about ReStructured Text and/or Sphinx for general documentation

Testing & TDD

Testing vs "PURE" TDD


  • Tests protect you from future changes breaking things
  • TDD: "write tests first" forces you to think before you type


  • As soon as possible
  • Art + Science: experience helps


  • New coders: Python unittest and doctests
  • Experienced coders: pytest

Next Step

  • New coders: pytest
  • Experienced coders: Continuous Integration


Dependency Management/Deployment

  • VMs
  • Containers
  • Virtual Env

Development Environment

  • CLI vs. GUI
  • Linux/Unix/Windows/OS X

Kojo Idrissa

Kojo Idrissa was an accountant who got an MBA and taught at university in two different countries. He's now a new(ish) software engineer who likes, helping new contributors join tech communities. He also likes, inclusion, Python, Django, and many aspects of east Asian culture (武俠小說, 漫画, 한류). He's spoken at (mostly Python) tech conferences about a LOT of stuff (ask him!) and helps organize DjangoCon US. You can find him online at or as @transition on Twitter.