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

When?

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

What/How

  • Basic feature branch/merge workflow

Reference: Pro Git Chapters 1-3

Documentation

In Code vs About Code: Start w/ In Code

Why

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

When

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

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)

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

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

When

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

How

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

Next Step

  • New coders: pytest
  • Experienced coders: Continuous Integration

Other

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 kojoidrissa.com or as @transition on Twitter.

Twitter
Sponsors