3 Painful Lessons I've Learnt As A Solo Developer

developers-desk-setup

I’ve flirted with the idea of calling myself a developer for years now. Yet, whenever the words come out of my mouth, it just doesn’t feel right.

I don’t have a computer science background, I’m largely self taught and I don’t work in a team. 

I learnt to code almost exclusively from youtube tutorials, blog posts and stack overflow.

While that’s good, there’s definitely some ‘gotchas’ that I wish I’d known before starting out. This article is written for anyone hacking it on their own, I hope I can save you some time. 

Avoid Tutorial Hell At All Costs

Tutorial hell is the syndrome where you’re perpetually completing tutorials, without ever making any meaningful progress.

“Once I learn React I’ll have more job prospects, and Angular couldn’t hurt!”

In my early days, I felt this insidious loop all too personally. CSS tutorials, Ruby on Rails tutorials, DevOps tutorials, you name it.

The dangerous thing about this is that you’re never actually implementing anything you’re learning.

The likelihood of ANY of this information sticking is next to none. It’s the equivalent of an overweight person reading weight loss book after weight loss book, without ever exercising.

The only time things really started to stick was when I was banging my head against the wall building my own project. This will likely be the case for you, too.

Prioritise development speed over everything.

This is the single biggest source of wasted time for me, and I imagine many others.

I’m a perfectionist at heart. When I launch a website, I want users to be able to reset their passwords, chat with other users in real-time and so much more. 100% test coverage would be nice, too.

As a solo developer, I don’t have the time to implement all these features. Especially when 99% of my projects fail. I’ve now learnt to write remarkably ugly code that ships at least 5 times faster than my prior self.

Does it incur a lot of technical debt? Sure. I’d rather that then spend time building unnecessary features that no one uses.

If a project ever sees traction, then and only then will I go back and clean it all up.

*Side note, there should be a word to describe the hours of wasted time building features that are never used (technical waste?)*

Learn one or two languages, and learn them well.

Have you ever found yourself googling the most basic of things? I have, many times. The amount of google searches I’ve done for “How to find the length of an array in [insert language here]” is embarrassing. These searches are not only a waste of time, but an unnecessary context switch.

By deciding to focus on only one or two languages, you can gain a better grasp of the fundamentals and syntax of said languages, avoiding these costly searches. For example, I only code in Python and Javascript (and some SQL). This decision has improved my overall developer experience and speed greatly.

So there’s the 3 main things I’ve learnt as a solo developer. The hardest point for me to implement was sticking to two languages. It can feel like you’re falling behind when you see all these articles popping up about a language or framework you have never even heard of.

Let me know in the comments the things that you’ve done to improve your experience as a developer, I’d love to hear them.