Advice from Rasmus Andersson
Rasmus Andersson designed the Inter typeface, co-created Spotify and GraphQL, and shaped Figma as their lead designer. His mastery of design and proficiency with computer science, makes him an industry titan and one of my personal heroes.
It's important to underline his work ethic, as well as his prolificacy. He spends his free time tinkering and working on passion projects. Besides the most well-known work, there are a thousand of other projects, which include multiple programming languages.
Some time ago, I decided to reach out and ask for advice. He was kind enough to share his thoughts on a tweetstorm I'm compiling here.
Rasmus's advice echoes what other people I admire have told me in the past. Working hard and showing up every day probably matters more than any other thing. Sometimes, it can be discouraging to not see results right away but we have to trust the process.
Rasmus Andersson
Every person is different and we all have a unique perspective, so it's hard to give general advice, but anyhow:
Do! Make! Do a lot of work, do A LOT of work. The saying that in order to be great at something, you have to do it 10 000 times is true (in most cases.)
You can read all the books in the world about playing soccer but the only way you can be a great soccer player is (obviously) by playing a lot of soccer (and maybe reading a few books.) The same is true for any path to mastery — you have to practice, a lot.
Now, about software design vs engineering. Think about software the way you'd think about furniture: To build a good chair you need to consider everything from reason and personality to materials and maintenance.
There are of course people specialized in many aspects of furniture: materials, types of furniture, part of the process (ie. concepts, development, production etc.) and so on. But as a designer of a chair you can'd do a good job without considering and prototyping the whole.
It is important to find your specialization of course, otherwise you will have a hard time selling yourself (ie. what—concretely—do you bring to the table?)
What I often see in the software industry is people putting themselves into silos (which is different from specialization.) For example someone who only does motion design but would never imagine actually implementing an animation in e.g. an iOS app (for prototyping purposes.)
A furniture designer doing that would be pretty terrible at designing chairs;
"I design the most exquisite legs"
Very pretty! But they break if you put the chair on a carpet and apply lateral force, so we can't ship that.
I think it’s REALLY hard to take this advice to heart in the insanely-fast paced software industry. The idea that you might have to work hard for 5-10 years to get to where you want to be might seem crazy when the software people build only lasts for a fraction of that time.