Working toward a goal is easy if you’re just starting out and everything is fresh and new. For short-term goals such as learning a new programming language, reading a book or completing a course, it’s not hard to see it through if it really matters to you. You just need to follow the process and you can reach the end relatively quickly without losing steam. You’ll have many of those goals over the years and they’re essential if you want to keep improving as a software developer and keep up with technology.

On the other hand, you also have long-term goals that shape your path as a software developer such as:

Choosing to study and work as a software developer.

Committing to writing blog posts or giving conference talks.

Starting an open source project or getting involved with an existing one.

Moving to a brand-new technology stack to keep up with the industry.

It’s motivating to have such an ambitious goal when you’re just getting started. You’re growing fast as a newbie, and nobody is expecting you to be an expert the first day: everything you do is an occasion to learn. But after a while, those big goals gets harder to manage. You’re on your own and you’ve reached what seems like an endless plateau, making you wonder if it’s still worth it.

Plan for the long-term

When you commit to a large goal, you need to be aware that results won’t come quickly and that you must keep working regularly to reach your goal. You won’t become a star blogger or a recognized open source contributor in a few months. You can see good progress in a year, but if you really want to see strong results that have an impact on your life, a five-year commitment is a good timeframe to aim for. Think back on your career and hobbies up until now: did you really master anything worth it after only a few months of effort?

Looking at what you’re going to do in the next five years may seem like a very long time in our fast-moving world, but you need to give yourself the time to grow and learn. In your first year, you’re just going to start seeing some results. Once you’ve mastered the basics your progress is going to slow down, but you must keep working. After you’ve accumulated a few years of experience, it’ll start snowballing faster and everything will click. Voilà, you’ve finally reached your overnight success!

Give yourself time

If you stick with a job, a career path or a project for only a year or two, give up, and start all over again, you’re not giving yourself enough time to see where it could take you. Reaching a large goal is like growing a tree: at first, you’re laying down your roots and strengthening yourself without any visible results on the outside. You need to give it time to grow, instead of complaining that this tree is taking too long, yanking it out and trying again.

You also need to be flexible if you want to keep growing. If your goal is too restrictive, you won’t be able to adapt when it doesn’t work as planned. For example, if you’ve committed to increasing your number of open source contributions, you don’t want to force yourself to work on a specific project. Things can change and it may not be the best project for you after a few years. You also need to stay alert so you keep growing and don’t repeat the same year of experience 5 times.

This blog was started as a five-year project, and I’m at the start of year three. There are a lot of people with larger blogs, but I’ve improved my writing a lot in the last two years. If I gave up after only six months, I would have missed on a lot of growth, speaking with interesting people and even giving a conference talk. I’ve not been doing the exact same thing since day 1: I’ve tried writing very technical posts (such as my series on Android storage), and posts about being a software developer such as this one. I’ll surely explore other kinds of writing before the 5 years are up to keep learning.

What are you going to work on during the next five years?