This was a textbook for my CS course that covered, essentially, how to write non-trivial software. This book is full of tips to help you do just that.