This article is intended to be an introductory guide to the fundamentals of software engineering. I have written it with the assumption that you, dear reader, may not know much about the basics of the field, why they are important, and when you should bother to learn them.