Welcome to the Design mini-course!
Your first question might be, "Why do I need to learn design if I want to be a developer?". You probably can't draw worth a damn and I bet "graphic design" inspires a twinge of fear and paranoia. The idea of building the front end to your websites may sound a lot like "somebody else's problem".
And that's exactly why it's so important that you get a good grounding in the fundamentals of design. We're not trying to turn you into an illustrator or Johnny Ive but we want to give you the tools to effectively apply design principles to build more useful and usable web applications.
You're guaranteed to encounter issues surrounding site layout, user experience, color selection, font selection and creating mockups in every single project you do. Without a basic understanding of the principles and tools to tackle these challenges, you'll spend a lot more time agonizing over choices and fighting with tools than you ever would have if you put in some time up front to get up to speed.
Not only that, but understanding user experience will help you create better websites from the very beginning -- sites that actually send your users towards their goal instead of bouncing them along whatever path feels good to you (the engineer).
Understanding visual design will make you comfortable with laying out information on the page and directing your user's eye and actions to the proper spot. It will help you avoid hours spent agonizing over layout decisions and color selection.
Finally, being able to build mockups with a professional tool will allow you to get your thoughts out much earlier in the process and iterate on your ideas before you get pulled down a particular path using code. You'll find that it will make you not just faster in the long run but also help you communicate your thoughts better to your clients and yourself.
Our goal here isn't to turn you into a designer overnight and we'll be avoiding more traditional design areas like producing illustrations and using Adobe Photoshop. The point is for you to learn the things that are truly important to you as a developer or technical entrepreneur and avoid the ones that don't matter as much in the beginning.
We'll give you the theoretical underpinnings of design that you need but will focus on how to apply them to building the kinds of websites you'll actually be working on.
Most importantly, we want you to become comfortable with the basics of design. You can always take your education further on your own, but at least you'll know what you don't know and that's the most important part. It will make you a better developer, product engineer or entrepreneur.
Let's get started.