Advice from Rasmus Andersson
Rasmus Andersson, known for designing the Inter typeface, co-creating Spotify and GraphQL, and shaping Figma as lead designer, is one of my personal heroes. I look up to him for his proficiency in both design and computer science. Something I too aspire to achieve. Besides the work everyone knows about, he spends his time tinkering and creating other projects. Among them multiple programming languages.
Mastering both design and software is no small feat. And since I'm graduating soon, I decided to reach out and ask for advice. He was kind enough to share his thoughts on a tweetstorm I'm sharing here in a compiled format.
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.
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 not see results right away but we have to have faith. Trust the process.
And regarding bold goals and achieving mastery: Only we can know who we can be. — Never forget that.