okgr

Diversify your interests

  • stage

Last Saturday, I had the opportunity to speak at the first React Ghana meetup.

Though I could have spoken about something more technical, I felt it was an opportunity to share with the community how I come up with great ideas for my [side] projects.

The venue could only take a few people; some people also missed the talk for various reasons. So I decided to write a blog post about it.

A quick intro about myself

I like to identify as a fulltime freestyler. This means I design, I code, I draw, I game and I do these in no particular order or proportion any day. I enjoy working on developer tools. I’m avid about productivity — I like to optimize my workflows.

Now, a lot of people ask me these common questions:

  • How do I come up with ideas for my projects?
  • What should they work on to improve their skill level?

This was the basis of my talk.

Notable people

Legends like Leonardo da Vinci had a very diverse list of interest. He in particular was an artist, an engineer and also studied human anatomy. We can draw some connection with his understanding of human anatomy with the result of his paintings.

Steve Jobs was an engineer but also cared so much about design/aesthetics. He also took a caligraphy course in college. Combining all these qualities, we can understand why the Apple brand is just beautiful, from the inside out.

Elon Musk: built games as a kid, invested in space exploration, heads a self-driving and electric vehicle company, founder of the Boring Company… He also thinks he can run Twitter.

The list of remarkably successful people with diverse interests goes on and on, including myself 😊.

Ways to diversify

I thought it was necessary to categorize ways you can diversify. This is to provide some bounds for people to explore and how to start exploring:

Horizontal diversity

This is exploring ideas horizontal to your current interests. As a software developer, interests horizontal to your skill include music making, graphics design, fashion, interior design, etc.

Noticeably, these fields have little to do with software development1. These kind of interests offer some break away from the IDE.

Vertical diversity

I bet you saw that coming.

Here you explore the depths of your current interests. For example, as a frontend developer using React, you can start learning how React and React-DOM works internally2. Doing this will allow to find ways to improve the API or build a better alternative; maybe this time useEffect doesn’t require dependencies.

After conquering the React/React-DOM, you can explore how HTML DOM rendering works, attempt to build a renderer that accepts DOM markup and builds UIs. This introduces you to the world of computer graphics; which is huge.

The previous examples are about going deep down. But you can go up. If you’re used to writing your own React components, you can start exploring component libraries like MUI, Mantine, etc. Learn from how they organize their APIs and implementations. This will help you improve how you write yours or even share better suggestions to these libraries.

This kind of diversity is about building deep knowledge about a field.


Note that, you can explore both ways; horizontal and vertical.

How to diversify

  • Follow people who have diverse interests or follow different people of diverse interests. Interact with their posts. Read more on what they talk about.

  • Be open-minded about any topic.

  • Be sensitive to problems. For example, if the build time for your project takes too long, you can start investigating why. This will introduce you to so many aspect of a bundler pipeline, like compiling, module resolution, caching, etc.

Why you should diversify

  • It improves your intuition. You know the right questions to ask; they help you develop clues.

  • Exposes you to new opportunities. In 2019 I had just learned Blender and used to post my work (I encourage you to post your work all the time) and I got recommended for a gig. Twice. But I was a broke software developer then. I made about 2500 cedis from Blender; cashout!

  • Allows you to come up with original ideas.

  • When we have knowledge of other fields, it becomes easy to communicate how tech (the tech you know) can impact those sectors. We end up opening other people’s eyes to what’s possible.

  • It gives ideas on how to integrate two different ideas.

  • We increase odds of success generally. Since a number of those interests can succeed and then we can focus on them.

  • You get ideas on projects to work on.


That was it.

React or leave a comment. See next time!

Here are the slides, if you will: Figma: Diversify your interests

Footnotes

  1. This does not imply these other fields don’t use software

  2. Another example is understanding how bundling frontend code works. Or react-router