As a creative person, it's impossible to not want to create all types of things. Since I started freelancing, I've been a:
- Web Developer
- Web Designer
- Print Graphic Designer
- Digital Graphic Designer
- Print Proof checker
- SEO expert
- Game developer
- Music Producer
- Studio Engineer
- DJ
- Tutor
- Content creator
And!!! There are secondary roles:
- Client Relations
- Proposal writer
- Tender writer
- Project manager
- Accounts receivable
- Accounts payable
- Admin man
- marketing
- decision maker
- whipping boy
- cleaner
All in the space of 9 years. From the opportunities I've had, I found it hard not to want to do and learn these things (bar a few in the 2nd list).
Sometimes, you need to take things on too. Work runs dry, you take on work that isn't ideal... I'm sure it happens to the best of us.
The main thing is to keep the main thing the main thing
I could make a really crude analogy here but I won't. I'll tone it down a little. Here we go:
Sticking the tip in isn't doing anything for anyone.
I think it's good to have a surface knowledge on concepts that surround your Main Thing.
A problem of my freelance journey is that I have a shallow knowledge of a lot of concepts. I know enough to know how they work and how to do them, but not a deep enough knowledge to do them well.
This amounts to a lot of wasted time that could been spent getting better at my Main Thing.
In certain situations, it's useful to be a jack of all trades, but ask yourself: Do you want to be a Jack of All Trades? Or do you want to truly master something valuable to the marketplace (or your family, community, etc)?
When I say master, I'm not talking about being a world leader at something. In the world of software development, people throw around the 10X, Rock Star Developer moniker, who writes code 69 hours a day and CEO's bow to their magnificence.
I'm not talking about this at all.
I'm talking about someone who has seen a lot of different scenarios and situations where they know a solution to the specific issue being faced. Issues that are introduced by different people, team members, clients or unexpected new requirements in project that no one could foresee.
This is what happens when you go really deep in your Main Thing.
You see the edge cases in a project that might be one in a million and you know what to do. You know when to make something simple or build something complex. You know what is a waste of time and whats not.
To do this though, takes courage and discipline.
Shiny new thing to learn - you might have to say no. Cash running low and get offered a project that's not a great fit - That should be a no too.
The great thing about being an expert in something as a freelancer or small business is that you should be able to walk into a job if times get tough. Going deep into mastery is the safer option.
Had I have taken this advice in 2017, I might be the python developer I am today in 2020 or 2021.
I know it now though.