I don't have a CS degree. When I was first learning to code, but also even today: The most frustrating things are all the bullshit that goes along with writing code but isn't actually writing code...
* Setting up environments and auxiliary tools: Should I use rvm or rbenv? What's bundler? Why do I need a rake? Where's my Gemfile? Ooops, I meant my Gemfile.lock.
* Understanding the sysadmin/architecture things: So I need an HTTP server and an app server? Wait, but some app servers are HTTP servers? But you need a proxy for static content? And a load balancer? (To be fair, in the modern world these tasks are vastly simplified by services like Heroku)
* Databases: Choosing a DB, choosing a library to connect to the DB, do you use an ORM or write SQL? Nowadays, I follow the "Always use Postgres unless you have a damn good reason" rule.
* Testing. Writing unit tests is incredibly tedious. Learning how to mock/stub/fake out critical libraries is a giant pain that I still commonly goof up today. Writing good tests easily takes 2-3X the amount of time it takes me to write working code.
* Deploying. Ugh.