DEV Community

Cover image for Pet projects, the secret to keep yourself updated
Yaser Adel Mehraban
Yaser Adel Mehraban

Posted on

Pet projects, the secret to keep yourself updated

For us (developers) the most irritating and cumbersome process is to keep ourselves up to date, since every 2 second a new language/tool/technology is born out of nowhere. We know that we have to keep up with them if we want to stay in the loop and don't feel outdated during conversations.

This is awfully worst for consultants since they will spend some time on different engagements and they have to know a bit of everything they will face and also more if they want to lead the client in that area.

Most people, however, have family/personal stuff to do and usually don't have enough time to read about everything they face everyday, and they shouldn't since it is proven to reduce productivity in the long run. So the question is what are we supposed to do?

The answer to this is to make a habit for ourselves to spend some short but fixed time everyday on a side project (usually known as pet project) to keep our hands dirty and learn by example.

Pet projects are a great way for developers to learn and grow, both personally and professionally. They let you get out of your comfort zone, learn new skills, and exercise your creative muscles. But it can be hard to get anything done while juggling a day job, kids, friends, family, and countless other commitments.

In the past, I’ve tried to cram side project work into the cracks between other items in my calendar. It was frustrating at best; completely ineffective at worst. I constantly felt like I was shortchanging the projects I was most passionate about. So what next?

Start with something small but keep doing it

It is definitely hard to start a project, harder to get back to it after some time and re-start it when you've been working on something completely different.

So working on it a bit everyday keeps you on track while not bored or tired. If you keep doing it everyday it will be very easy to pick it where you left off since it is still in your mind.

No deadlines or pressure

Don't put deadlines or pressure on yourself for a side project. It is not a client engagement and you don't want to loose your excitement about it really soon. Keep focusing on one or two task a week and finish it in a relaxed atmosphere.

Take your time, have a juice (not coffee 😁) or fresh fruit handy and let the feeling of small holiday overcome the daily agile mindset. Close the Facebook, stop scrolling your Twitter feed and focus on what you promised yourself to do everyday.

Once the habit is formed, the pressure is off and you start feeling joy about doing something you feel passionate about. If you feel weak about forming a habit read something like this. These point are not from me, but from proven scientific articles and resources I've red in the past.

Track your progress and praise yourself

Keep track of what is achieved and what is to be done. This way you will have a sense of how you're doing in terms of your milestones.

Don't put extra effort if you feel you're behind, but focus on maintaining your daily habit. This will automatically fix the issue by keeping your energy focused on the project and creating that great feeling of the fact that you're spending sometime for yourself doing what you love.

I myself had the issue of working on a client for a long time and not learning any new stuff, but after I got the habit, I felt great learning new stuff and having that man cave feeling. Furthermore, I started to eat fruits instead of dinner and that helped me a lot by fixing my insomnia issue.

I got used to go to Bunnings and buy something for my other pet project (I love woodworking).

Shift the project time to time

Don't work on something for too long. as we see new languages and technologies introduced everyday, we should shift our pet project to use different languages/technologies accordingly.

I love front end specifically, however try to keep track of security (web and other areas), azure, IoT, Hololens, and etc. to keep my excite level up.

My approach to this is to complete a project I start working on and then create a new one using the new tech I want to get familiar with.

If  I want to learn a new language in the save space, I will rewrite my last one with the language, which helps me face different challenges to implement something in different languages.

Talk about your pet project somewhere

This one doesn't have to do anything with your pet project, but helps you find the weakness points and new challenges since it is exposed to people who love asking questions and learn new things.

Even if it is an internal brown bag session, or presentation, or you are talking on an external event like meetups or conferences that project helps you gather the contents easily and demo something which even demo gods can't prevent (since you've played with it enough previously).

Summary

Have something to play with for learning new things. It will help you massively and brings your confidence up if you're just started (I hate to say Juniors).

Hope this helps you keep yourself updated and if you find something that can be added to this please keep your comments coming 🙏🏼.

Top comments (14)

Collapse
 
niorad profile image
Antonio Radovcic

It’s good to have projects that need both deeper work (coding new features, logic) and half-brain work (graphics, css etc). So you can work on it even when you’re not in the zone.

I‘m working half seriously on a web-based game, and it has all this, plus learning Elixir on the side. Also on this project I did unit-testing for the first time, which turns out to be very useful for picking up the work and remembering where you left off. Just write a failing test before you stop 😈

My other project devlids.com is also good in
that regard, because updating is very quick with a simple CMS, and there‘s no JS to worry about. And once I have more time I can work on new features.

Collapse
 
yashints profile image
Yaser Adel Mehraban

That's awesome

Collapse
 
prahladyeri profile image
Prahlad Yeri • Edited

Check out my side project gar-cron. Its a python program to send you reminders about your github commit activity. By default, it shoots a mail when there is no commit activity for 3 or more days. Read this DEV.to article to understand more about this tool:

Collapse
 
yashints profile image
Yaser Adel Mehraban

Oh, that sounds very interesting

Collapse
 
joeattardi profile image
Joe Attardi

I have many pet projects, the trouble is no one uses them. I still don't consider it wasted effort (I blogged about this at joeattardi.codes/your-side-project...

Still, though, it would be awesome to get people using some of my projects - especially my latest one.

Do you have any tips on how to publicize your project so people might actually discover and use it?

Collapse
 
yashints profile image
Yaser Adel Mehraban

Hmmm, I would be causious about making my pet projects open source unless I've been working on the as open source from beginning or so long that they're clean, stable and reusable.

At that point I stop calling then pet project 😉

Collapse
 
maheshkale profile image
Mahesh K

I'm working on React based dashboard project and kept the authorization and user management part pending and it's been 1 year since last commit. I have done other cosmetic things but not the things I needed. I agree about your point on starting small and doing one thing at a time. Trying to do everything in one shot keeps such projects pending.

Collapse
 
yashints profile image
Yaser Adel Mehraban

Exactly

Collapse
 
kyleadrian91 profile image
kyleadrian91

This is really really great and easily actionable advice, Yaser. Thanks for sharing!

Collapse
 
yashints profile image
Yaser Adel Mehraban

👍🏽

Collapse
 
txe_bert profile image
Albert

I've also had problems with starting pet projects, largely because I don't know what projects to start. Where does one find small projects to try out?

Collapse
 
yashints profile image
Yaser Adel Mehraban

I wouldn't say I look for projects to do, more so to find ideas I want to explore or technology I want to learn, if you answered that question, you've found your next pet project 💪🏽

Collapse
 
charlesschneider profile image
Charles Schneider

Great!

Collapse
 
snifhex profile image
Sachin Tripathi

Thanks, Great Advice.