No experience in writing apps for elementary OS is assumed, but basic programming knowledge is. A little experience with Vala (or at least similarly syntaxed languages) will be valuable. If you're not familiar with Vala, there are great resources (text and video) available for learning Vala on Valadoc.org.
Design is covered in the Human Interface Guidelines (HIG). We reference the HIG throughout this guide and it's important you grasp the concepts proposed there, but this guide is focused primarily on code.
This guide details:
Building apps using GTK, Granite, and other technology available in elementary OS
Setting up a build system
Hosting your code for collaborative development
Working with translations
Packaging and distributing your new app on AppCenter
Working with Platform APIs
You may feel confident enough to jump straight into writing your first app:
However, we strongly recommend to at least skim "The Basic Setup" first. Having the right setup is going to help you reach your goals faster, and a solid foundation is going to help you throughout the rest of this book.