This book is written for anyone who is interested in programming even if he/she does not intend to take up programming as a career or study computer science. It is a first step towards understanding the foundations of programming, writing your own code, and creating your own media without the bonds of existing software tools. The book is designed to provide the person new to programming solid information and to give direction as to what routes that person should pursue. If a person has questions about programming and does not know who to ask, this book is answer to all his/her questions. Most books about programming assume that readers already know what they want to do, what language they want to use, and why they are doing it. This book only assumes that readers have an interest in programming, and need direction. After reading the material presented in this book, readers should have a much better grasp of what direction they need to go to do and what it is they want to do.