Each person has a certain level of skill in the designer and/or developer subject areas, where many of the skills and habits that would make you excel in either area would help in both. People may have a tendency to lean towards one area over the other, but no one has a “type” that would prevent them from learning and improving as a designer or a developer. What matters is the time and effort put into learning. World class designers and developers have put in lots and lots of dedicated practice: their (proverbial) 10,000 hours.
I wanted to write about this because as I attempt to distill my professional experience into teachable morsels for my students, I have realized that the one of biggest barrier is mental. People who have categorized themselves as an engineering (or math and science) type will shy away from and avoid areas of knowledge considered to be in the realm of a designer (or “creative”) type. At Stanford this took the form of the great divide between engineering major “techies” and humanities major “fuzzies.” I believe this prevented many would-be “ninjas” and “unicorns” from ever reaching their potential. The effect is similar to having a fixed mindset instead of a growth mindset. Deciding you will never be good at design because you are a “developer type” is a sure way to never become a good designer. You have set up a self fulfilling prophecy.
Being a great designer and a great developer is not an impossibility. With enough time and effort, you can become a designer or developer or both, no forehead horn required.