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?