DEV Community

Cover image for How you can stay motivated to work on personal projects
Afonso Pacifer
Afonso Pacifer

Posted on • Updated on

How you can stay motivated to work on personal projects

After my last post (How I became a senior javascript developer with personal projects), I received a good question that got me thinking:

What keeps you motivated?

I believe this is a simple but deep question. Many people start new side projects and get very excited at the beginning, but after a few days, the energy is gone. WTF happen?

Recently I’ve read an excellent book called 14 Habits of Highly Productive Developers (by my friend Zeno Rocha) which has a complete discussion about the side projects’ topic. I recommend all developers to read the entire book. But, in this blog post, I’ll try to explain how I’m still motivated by my personal projects in the last years. Starting by demystifying an idea.

I don't complete all of my side projects!

Yes, you read correctly. I have many unfinished side projects in my Github account and everything is fine.

The process is the same:

  • First: I have an awesome idea (in my mind).
  • Second: I create a repository and start the project in my code editor.
  • Third: I abandon the project.

Tips to complete your side project

I have a list of private empty repositories, but I also have a list of projects that are done. If you have more drafts (or ideas) than finished projects, I have some tips that may help you.

Think hard if you really want to do a project

During the first moments after an idea, you are full of motivation, but how do you know if this motivation will exist tomorrow? Simple, wait for tomorrow! If you still want to work on the new project, just START.

Pomodoro timer

I create a Meditation Timer to keep calm before important decision moments (and learning Vue.js better).

Tip: If you have energy and time, enjoy the moment and do it. Only wait for tomorrow if the project scope is large!

Create a checklist and follow it

Don't spend time/energy thinking or trying to remember common things for all projects.

  • If your project needs a Readme, take note.
  • If your project needs to publish in npm (or similar package registry), take note.
  • If your project needs a .gitignore file, take note. And etc...

checklist for open source projects

My checklist for open source projects.

Tip: If your project needs a cool name, use a beta name, and rename when you decide it, don't spend time overthinking the name instead of starting the project.

Have a generic boilerplate

Don't spend time/energy creating the same files all time.

Tip: Get ideas from your old projects or ask your friends: how files are commons in all projects.

Yes, creating a boilerplate is a cool first project for you to start.

My boilerplate to open source projects

My generic boilerplate.

Don't try to learn more than one new technology at the same time

Starting a new project for learning a new technology is the best decision you can make. But you need to consider the learning curve for any new thing you want to implement. If you add multiple learning curves in your project, you’ll probably spend more time on the project and increase your chances to be demotivated due to all problems related to the learning process.

My incomplete calendar project

I don't conclude this calendar project because I try to learn (and implement) a lot of new technologies at the same time.

Dedicate time (with quality) to your project

Don't wait for the inspiration moment, organize your time to work in your project as if it was your main job. Turn off all notifications and previously select an inspirational playlist to help you focus.

Pomodoro timer

I created a Pomodoro Timer for you to focus on your tasks (and learning React.js better).

Define a scope for the project and follow it

In my previous blog post, I shared big projects, but this project was created for one year. Within this period, I worked in a lot of small projects and the most powerful trick for all size projects is to determine a scope of features and follow them.

Kanban board

During the working, if you have a new incredible idea, take note and get back to the scope. Believe me, big companies have problems when spending more energy than necessary on their MVPs.

Share

Post your project on twitter, Instagram, Facebook, write a blog post about the process or share with a friend.

Afonso Pacifer Github profile

My personal Github profile.

Don't worry about possible critics about your code, serious developers will help you, not attack you. Share your project and grow with the comments.

Conclusion

To be exposed to new challenges is scary, but great rewards await for people who can take great steps. Creating and sharing your side projects are one of the greatest steps in a developer career.

I'm from Brazil and in my country only 5% of the population speak English (The official Brazilian language is Portuguese), and I was always part of the 95%.

Afonso Pacifer studying with your cat

Writing in English is hard for me, but this is my new side project: to improve my English skills to meet new people and friends around the world!

Now, I'll share some of the places where people were reached by my first English blog post a week ago:

World map

I received many responses, I couldn't compile all the places on this map! Thanks a lot 💛.

I cannot express my emotion when I see this result after my effort to learn English.

Remember, open source is not only about sharing code but is also about sharing experiences and solutions for different people regardless of the nationality or the background!

Thanks a lot for reading my second English blog post.

If you liked this content, follow me on Github and/or Twitter 💜.

Cheers.

Latest comments (41)

Collapse
 
sandordargo profile image
Sandor Dargo

Great post, it's such an important topic!

I'm convinced that the key is to be able to work without motivation. It doesn't mean that you don't need motivation in general, it means that there will be days when you simply don't feel motivated.

Consistency is the key.

You have to show up.

Every. Single. Day.

You have to create the right environment for it. Some would call it a transformative environment.

You have to organize your days, your environment in a way so that you don't need the motivation to work on your side project. You simply fall into the right place to do so.

How to achieve this?

One way is creating a daily routine. I know exactly that Monday, Wednesday, and Friday morning at 8:30 I write for 25 minutes for my blog. No matter what. If I don't feel like it? Who cares? I just start writing and then keep writing. I have been posting for more than two years every single week. I apply this technique to many things.

Another way to do so is to have an accountability partner. Every night I decide on 3 important things I'll do the next day and send it to my accountability partner. Then the next evening before sending the new 3 things, I also report on how I performed. It is motivating, not to fail to do what I committed to. I also share weekly and monthly goals.

In the beginning, I tended to share goals that were not stretching, things that I would have done anyway. Like on Tuesday evening, I wrote that well, I'm gonna work on my next post. Of course, because Wednesday is coming and on Wednesday morning, I write! So, I started to write more specific goals, like finishing this and that part of the post or to make the necessary registrations for my side project. To figure out an integration between my mailing list provider and AWS, etc.

These things helped me so much to become a finisher. End of July, I decided to go live with Daily C++ Interview by the end of next month and I did. Well, I published the article about it on 2nd September, but that's only because that's my habit. To post on every Wednesday.

After all, we are people of habit.

Collapse
 
danielcosta profile image
Daniel Costa

Afonso, congratulations for your post and greetings from São Paulo. For me it's hard to follow the next steps of my "great ideas" due to an always present procrastination over my shoulders. I'll try to do some of your sugestions to get the things done.

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Procrastination is difficult for all of us...
Try to start "slowly"... and try to get better little by little <3

Collapse
 
borindragon profile image
Mohamed jinas

This is awesome..good read

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thanks <3

Collapse
 
dgrosenblatt profile image
Danny Rosenblatt

If I could add one thing, especially if you're working on it during your nights/weekends/free time, always always always end your working session with writing out the first Todo item to get yourself started next time. I personally manage this with a Trello board but even a simple sticky note could work.

One of the biggest killers of my personal projects has been simple loss of momentum and not remembering how to jump back in.

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Awesome tips <3

Collapse
 
camilomejia profile image
Camilo Mejía

Nice tips, I'm following similar approaches for my personal projects, but how do you manage to find time for it? it's hard while working full time.

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thanks! I try to do a little after or before my "full-time work"..
And a few on the weekends..

Spend 30m ou 1h a day is awesome for start and improve your projects <3

Collapse
 
toastsgithub profile image
Duanzm

Great works dude! I really like your ideas :)

After reading your post, im planing to grab my side projects which suspended because of my working plan 😂

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Awesome!
Let's go (and share)!

Collapse
 
jgdclima profile image
jgdclima

Afonso, teu Ingles ta otimo! Couldn't even tell it was just your second English article.

Thank you for writing this! I'm someone who struggles to get my own projects up and running, but this was incredibly motivating.

Out of curiosity, what makes you a "Former full-time CSS evangelist"?

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thanks <3

what makes you a "Former full-time CSS evangelist"?

Basically I focused 100% of my time with CSS content creation (to help the Brazilan community). Writing articles, record videos, etc...

Collapse
 
ernestotrujillo profile image
Ernesto Trujillo

This awesome! I've been feeling the same in terms of side projects (I have 1) and also I want to push myself to write an article in english about serverless and some other cool stuff I've seen in re:invent for the last 4 years but the point is to include a project where people can put hands on.

Muchas gracias Alfonso (asumiendo hablas español y no portugues)

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Gracias <3
Writing in English is very awesome!
Send me the article when you publish :)

Collapse
 
mallsjr profile image
Michael Alls

Great Post saving for later to try some of that tips you suggested! Thanks for sharing

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thaanks <3

Collapse
 
brnbrgs profile image
brnbrgs

Thanks for the tips, they're really useful!
I'm facing problems to start my side projects but I'm going to consider these points in the next time :)

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Wow...
Awesome <3

Collapse
 
billernet profile image
Bill💡

I must say, your English is excellent

Collapse
 
afonsopacifer profile image
Afonso Pacifer

heheh... Thanks!
I'm still studying <3

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hi Afonso, That's amazing
Loving to see how you motivate yourself, and I do myself practice many of the elements discussed here!

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thaaankkkss <3

Collapse
 
jesse1981 profile image
Jesse Bryant

Nice article! What I find really helps my motivation is a Trello board, with only a few things in a Sprint Backlog loss list - 3, tops. Have only 1 item in the In Progress list at a time and give yourself discussion notes as you go.

Finally moved it to a Complete list. So satisfying when you always have a short to-do list and a long completed list!

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Wow... Awesome tips <3

Collapse
 
helderberto profile image
Helder Burato Berto

I really appreciate the way you share your opinions and put yourself outside of comfort zone, it's a non-return path to grow as a person and professional.

Thanks for this amazing second post! Keep growing.

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thanks bro! <3

Collapse
 
harrisgeo88 profile image
Harris Geo 👨🏻‍💻

Very decent post and really good advice! By the way, your projects look fantastic and they’re amazing inspiration on what you can do with simple ideas! Keep up the good work.

Collapse
 
afonsopacifer profile image
Afonso Pacifer

Thanks <3