> Using version control, working with others in a group setting, actually making software.
aye, this. in my experience hard part isn't doing the actual coding bits, it's ironing out the Requirements, stuffing them into JIRA, building the Interface document to cover what we're coding, writing documentation, and making sure the new guy doesn't break the version control.
Coding the specification isn't hard once we have them. A lot of that is outsourced in my org, esp. fluff related to a few areas like UX. But the hard part is getting there, and the engineering processes and mentality to do so.