Software development is so much more than writing code

Most education focuses on how to code, but this is only a small part of becoming a productive software developer.

A common frustration I hear (and feel) is that traditional (and even less traditional) education doesn’t do a very good job of preparing people for a software development career. Most education focuses fairly narrowly on how to code.

The problem is that learning to code is only a small part of learning to be a productive software developer.

Software development usually involves writing code, and other closely related tasks:

  • Writing code
  • Debugging code
  • Writing and executing automated tests

Many or most of these one might assume are covered in a typical bootcamp.

But software development also involves many non-coding activities:

  • Talking to customers/end users, to understand their needs and desires
  • Designing software and other computer systems (both before, and during the act of coding)
  • Prioritizing tasks
  • Communicating the intent of your code (both in the code itself, as well as in documentation and other artefacts)
  • For many: Shipping, deploying, maintaining code once it’s written
  • Branch and feature management (in git or some other VCS)
  • Proper/best for generating and reading logs
  • Monitoring and alerting
  • Considering the security implications of code and systems

What else would you put on this list?

Share this