Myth: Programmers get to write code all day.
Truth: Most programmers spend a ton of time (in no particular order):
- Carefully composing e-mails to other programmers/mailing lists/non-technical folks
- Sitting in on meetings, working on mockups and DB schemas, worrying about performance implications of proposed features
- Writing bug reports and searching through bug DBs
- Supporting Production environment, scrambling to figure out why systems with numerous opaque layers are failing, digging through multi-GB log files with command line tools
- Explaining downtime to users/higher ups
- Contributing solutions to strangers’ problems
- Reading documentation/books/programming blogs/release notes/vulnerability announcements
- Searching for existing code that does what you want, maybe without knowing what that’s called
- Installing, configuring, and testing a codebase then finding it won’t work for you
- Googling error messages
- Learning source control tools, bash, GNU utilities, and Linux file permissions (and/or the Windows equivalents)
- Configuring IDEs, virtual machines, web servers, databases
- Determining which tasks to prioritize from an endless supply