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?
If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.