Virtually all existing resources aimed at teaching people about or how-to code introduce the code itself way too soon. In doing so, many fundamental, insightful, and empowering concepts remain uncovered, hidden, and out of reach. Often these same resources lack explanations of why a coding concept exists as it does. Additionally, these same resources rarely consider designers directly. Coding for Designers is a response to this unfortunate reality.
If you author content and self-identify as a graphic, visual, UI, UX, motion, or game designer, then this is for you. Other non-coders wanting to learn about or how-to code will greatly benefit too, but self-identifying designers are the focus. This book, the one I wish existed when I began coding, is also for an earlier time-slice of myself. He will not reap the benefits of its existence, but you will.
Though I don't believe designers need to learn to code, those who do will undoubtedly have a valuable and powerful tool added to their toolbox. After reading this book, should you pursue coding further or not, you will have acquired a mental model and knowledge that will inform future code-related conversations at the least and future coding pursuits at the most.
Designer or not, this book isn't for you if you want to jump straight into code. We cover many ideas, topics, and concepts before truly diving into actual programming code. This intentionality helps frame why certain programming concepts exist as they do. The primary goal of this book is to instill a mental model that helps designers learn coding concepts faster, more deeply, and more intuitively. The secondary goal is to lower the barrier of entry by instilling confidence in those new(er) to coding. Neither goal is efficiently achievable by taking the traditional approach.
The plan of attack is simple. In chapter one, Breaking Barriers, we will explore and demystify a series of concepts that fundamentally intimidate most designers and non-coders about how computers and code work. From the seemingly magical ones and zeros to the code you will soon write, we will see simple, basic, repetitive, and reusable concepts at play.
In chapter two, Structure, Style, and Behavior, we will cover the three codeable concepts that enable computers to render our interactive creations. We will do so from both a 2D context with the web platform and a 3D context with the Unity® platform. These perspectives will help solidify the distinct role that structure, style, and behavior each play regardless of dimensionality.
Chapter three, Coding and Visual Design, will cover the elements, principles, and constructs of visual design. We will explore them relative to programming’s counterparts. This work will help shape a mental model tuned specifically for designers.
In chapter four, Coding and Concept, we will introduce language agnostic concepts that are invaluable when authoring dynamic and interactive creations. In coding, the terminology and often the code words themselves are reused exactly or with subtle variation across languages. Spoken languages lack this luxury. We will also visually explore how our code actually runs in real-time.
Finally in chapter six, Deconstructing Designs, we will put everything we have learned to practice. We will do so by analyzing and deconstructing the user interfaces of a few impactful applications. We will then selectively reconstruct portions of the UI relative to the previously introduced concepts.
Let’s do this.