I have been working with Sitecore for about a year now, and I have got this list of annoyances that I just have to speak my mind with.
From the beginning
When you first get Sitecore, its blank, it does nothing, you have to build every feature from scratch. In this regards you have to create everything. However when you download the latest version of the code to work with, you get a blank website. So everytime you have to create a new visual studio solution. On SDN, the document to describe creating a visual studio solution is a page long. Why not just supply a solution to begin with?
There is no developer license file. Want to do anything on your own, you will need to borrow a licence file from your work. Oops probably just broken the terms of your Sitecore license.
Static & Testing
Everything in Sitecore is static. Makes it extremely hard to do any form of unit testing. You have to create interface wrappers around all the Sitecore classes so that you can test.
Sitecore is based around classic asp.net web forms. While Sitecore are implementing MVC, it is not ASP.NET MVC but their own implementation. So all the functionality you expect that comes with ASP.NET MVC is not yet available/implemented. However on the plus side, they do support Razor syntax.
In my simple opinion, there is not enough examples. Even reviewing Sitecore’s site they admit that they don’t supply any examples. There are some example sites built using Sitecore, but they are only available to Sitecore Partners, and you have to know where to look for them.
Which leads into documentation. There does appear to be a lot of documentation on the SDN site, but when you start reviewing what is actually threre, it is the absolute minimum. There is a new site for Sitecore 8, but when you look for anything on the new site, you cannot find anything and have to resolve to the documentation for version 6/7.