Once in a while as a programmer, you have to change the color of the button, give your thought about the user experience, or design your own application.
Most of the time, we will hammer our head out just to pick a very awkward color, or design an application that nobody would understand.
Your client will think they talk to an idiot, and you hope you never do it in the first place.
Of course, this should not be done by you. You are a programmer. Your designer or creative team was hired for this task. But as a programmer, there are benefits to at least know certain design philosophy and skill, whether as a team member or trying to create everything by your own.
** A programmer can be a hardcore enterprise Java programmer, PHP Web Developer or who basically type code most of the time instead of working on a graphic tool
** Design can be from sketching initial screen design, figuring out color balance, CSS styling, building a UI mock or creating a user experience centered application. It’s the way the application works
1. You Begin to Appreciate Creative Work
Often as a programmer, we code base on the requirement and specification that is ready and hand to us.
When we start to code, we already have a picture in our head how the UI is going to look like, how each UI element interact together, what data to store to which table and column. We can start right away.
When you begin to design an application, you have little to zero reference. Your client might tell you what they want the ‘feel’ of the product, the color direction, and that’s it. You will work on a few draft to get client approval, and start work on the detail like font, color, content strategy etc. After you have nail down most of the details, your client decided to change the ‘feel’ of the product, and you will have to start over.
It’s very hard to get it right. Though in design, there’s no right or wrong.
After you started to design, you will understand why sometime programmer will blame the creative team for the impossible deadline. I’m not saying project delay is expected, but it can be managed and minimized, more on below.
2. You Design Product that People Will Actually Use
When you code, most of the time you don’t care how the user interact with the application. Your focus is how the back end system interact with each other. Your main goal is performance, security, clean code etc.
But, no matter how good is your code, if your user have no idea how to use it, then it is failed.
If you are a programmer and started to create application all by yourself, then you should learn to design to make product that people will actually use.
3. You Contribute More as a Developer + Designer
Have you experience waiting for an image asset or CSS style from a designer, only to get it the next day or over the weekend?
They might be working on other project, or out for lunch, or on holiday.
That’s where you can contribute more as a team member if you learn to design. You can style the CSS, generate image asset from PSD file, or even create an extra icon.
You get the job done quicker and get to home earlier.
4. You Communicate Better with Your Team
When your boss invite you to join in a product discussion, it will help if you know one or two design philosophy.
Keep it stupid and simple (KISS), Call To Action, Color Theory. These are just some key points that keep on emphasize from time to time in product design.
Only when you know some of the design philosophy you will able to connect the dots and communicate any new ideas with your team.
5. You Become One Stop Product Creating Machine
Once you have mastered basic design skill, you can start creating your own application, starting from sketch, design, development to release.
This is particularly useful in today’s mobile app development, especially if you are doing freelance. Often you will have a great idea but lack of design skill and have no budget to hire a designer to design icon, button and UX will eventually stop you.
Having the adequate design skill will speed up the product creation process, cut down the cost and deliver faster.
6. You Become Competitive in Job Market
If future employer have two candidates with equal technical skill and experience, being the one who have the extra design skill will put you on the advantage side.
You can become a extra designer resources in the company when the designer resources are limited.
You can work as both designer and programmer on a single project, cutting down delivery time by reducing task switching.
You can become project lead to lead both programmer and designer. No one in the team know how the visual and technical element works together better than you.
7. You Will Dress Better
It may sound very stereotypical, but many programmer or geek look like this.
But don’t you worry, once you get into design for sometime, your color taste will become better, and you sense of style will be record high. You started to dress more colorful, more daring, and your female co-worker begin asking you out for dinner and party.
You’ll look like below.
OK. This is obviously a joke. There’s no proof that design can help you to dress better, but there’s really no harm to dress nicely once in a while, right?
How to Get Started?
To get you started to learn design, you can check out my beginner tutorial on how to design app in Photoshop.
Below are some resources I found very useful.
- What Is User Experience Design? Overview, Tools And Resources
- 10 User Interface Design Fundamentals
- User Experience (UX) Principles and Best Practices
- An Introduction to Color Theory for Web Designers
- Color Theory for Designers, Part 1: The Meaning of Color
On last note, you must enjoy what you are doing. If you do not enjoy design, then you might as well focus on building your programming skill instead.
But if you begin to love design like I do, then you have to keep doing it. Like most of the skill, design is like muscle. You have to build it.
Let me know if you have other thought why a programmer should learn to design.