this post was submitted on 27 Apr 2024
74 points (97.4% liked)

Ask Experienced Devs

1235 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

I am professionally a software developer for 8 years and I simply don't have ideas for personal projects (Can't find any problem that I can fix with programming). At times I feel like that's natural and I shouldn't worry about it. But on the other hand, I do like to imagine having something personal that I can work on so that even if some days on my main job are not satisfying, I can always work on my hobby project and find that missing satisfaction.

End goal here is obviously to get better sleep as sometimes my mind feels dissatisfied with the day's work.

Funnily, I day-dream about the idea of already having done the boring parts (simply manifesting a project that already exists) of some personal project and only solving exciting problems in relation to adding a new feature or exciting aspects.

This creates a problem as I hate staring at a blank file not knowing what to write.

top 35 comments
sorted by: hot top controversial new old
[–] [email protected] 47 points 6 months ago* (last edited 6 months ago) (1 children)

Not having any personal projects is perfectly fine. Don't worry about it. Not everyone has to have their job as their hobby. Try other things (music, hiking, cooking, etc.). Try to find a hobby that makes you happy (if you don't already have one). That's way more important than having a public GitHub profile. And if a company decided not to hire you because of that, you basically dodged a bullet.

[–] [email protected] 3 points 6 months ago (1 children)

I guess it makes sense. Not doing anything is good in and of itself. Boredom needs embracing. I still remember getting entertained in my childhood seeing some ants move around and react to dead insects and carrying leaves.

I am not concerned about not having anything to show for my free time. I am just not finding interest doing stuff which could indicate something worse.

[–] [email protected] 4 points 6 months ago* (last edited 6 months ago)

I am not concerned about not having anything to show for my free time. I am just not finding interest doing stuff which could indicate something worse.

You are not alone. It's not easy to find an engaging free time activity. And even if you do, you may get bored of it after some time. The only thing I can say is: even if something doesn't seem very interesting at first, give it a try anyway (as long as it doesn't require a huge upfront investment). You may end up liking the activity or you may end up with like-minded people. And the worst case scenario is, you have wasted some time.

I think majority of people suffer from not having a meaningful free time activity (amplified by the possibilities of internet). And I'm saying this without any data to back it up, so don't quote me on that.

[–] [email protected] 16 points 6 months ago* (last edited 6 months ago)

Creative people consistently say that they don't spend a lot of time thinking about what they want to create. They just work on something. Often something nonsensical and useless. Sometimes something that's meant to practice something they want to improve upon. Sometimes it's half of an idea. Almost always it's something that won't ever be finished. In the process of working on whatever it is they're engaged in, they get ideas for the next thing they want to work on. That's how ideas come. Not from thinking about what the next idea will be, but by being engaged with an existing idea.

An easy way to start is to start journaling. Write down something good that happed during your day. Elaborate on it. Write your thoughts. Don't edit them or care about spelling or grammar. Just engage with your existing thoughts.

[–] [email protected] 14 points 6 months ago (2 children)

Why do we devs have this weird need to do our jobs in our free time. We put this weird career specific cultural pressure for some reason.

Do other careers have this need to do work in your free time? You don't see brick layers itching to work on building a little house on the side, or lawyers just looking for a case to practice on.

Why is it just devs?

[–] [email protected] 10 points 6 months ago (1 children)

Why is it just devs?

Because, (and not sure about your upbringing, speaking for myself and possibly those who agree) we entered the field because of our dream to get paid for what is effectively hours of our favourite activity: tinkering with our home computer (that dad forbade us from touching as we often broke something) and building cool stuff. I still remember the day I used Turbo C compiler to compile the "Hello, World!" program and the feeling of seeing the result made me happy and excited. My immediate thought was "what else can I do with this!".

I often tried implementing graphics in turbo C. The horrors of trying to find the cause of out of bound scribbling mess that my drawing code produced is quite nostalgic to this day.

I guess most of the current struggle is to just reproduce that joy that we got once.

[–] [email protected] 3 points 6 months ago

You're not wrong, and I can't believe how spot on you are. I do enjoy dev, and it is something I do in my spare time, I did break the family computer by tinkering and Dad did tell me not to do it again, and I'm still chasing that excitement of the "Mr. T" calculator app I wrote in Haskell 15 years ago.

I think I just want my job to be just a job the days, instead of this pressure to keep growing, learning the latest tech and keeping up with changes, and then needing to have a portfolio or personal projects to show that I'm still capable.

Maybe I'm just feeling this way at the moment because I'm job searching and it's so disparaging to be asked what favourite blogs are or the link to my portfolio website or github, or my favourite new feature of language X, and I just think I'm not that person. I've tried reading the books in my spare time and setting up an AWS dev account, but I just don't care.

Sorry, I just think your post set something off in me about how weird it is that we make this expectation of ourselves only in this industry it seems, and I think the pressure might be a bit unproductive at times.

[–] [email protected] 3 points 6 months ago

Plenty of people who work in construction trades do projects at home for their own benefit. They might even go to a workshop and learn about new techniques, materials, and tools.

Plenty of professions have practitioners learn and read on their own time to increase their knowledge and value in the labor market.

It's not unique to software development. But there is a lower barrier in software development to being able to use one's free time to work on skills and projects in terms of physical materials and social coordination.

[–] [email protected] 10 points 6 months ago

Try doing literally anything else but your job

[–] [email protected] 9 points 6 months ago

Live your life and if you encounter a problem that can be solved with programming, great.

If not, then you’ll live a good life.

Zero downsides

[–] [email protected] 8 points 6 months ago

If your dissatisfaction is rooted on your current job, try looking into the market. Maybe it's a good time to jump to another ship.

As for hobbies, I agreed with everyone. Try activities away from the keyboard, it would probable be the most healthy for both body and mind (and they correlate)

[–] [email protected] 7 points 6 months ago

If you want to build stuff but are struggling to motivate yourself, take a walk or go exercise and stop thinking about it for a bit. Sometimes that helps me. I'm in the same boat. I tend to work on a lot of things but I have a treasure trove of 10%-50% completed projects.

Lately, I've used ChatGPT 3.5 to help me figure out ideas or work through places I'm stuck.

I've gone to 4 conferences in the past 6 months. Most of the open source devs there that made big waves in the community are actually doing their jobs and their company open sourced their work. React, by way of example, is a Meta project that was open sourced.

So, sometimes, the intimidating projects have someone working full-time on them. So don't feel like you should try to accomplish that.

As other people said, if you end up not being interested in doing development in your free time, don't worry about it. It's normal and fine to just go home and enjoy your life.

[–] [email protected] 7 points 6 months ago

Get a notepad, logseq, send yourself messages in Signal, or record audio of whatever idea you have at that moment.

  • "Just browsed an interesting repo on $sourceforge and they are missing linting, maybe I should create a PR"
  • "What if this thing happened automatically when I logged in / opened the website / this even happened?"
  • "The kids have been complaining about slow $something, I'm sure it's because of $cause, gotta check that out"

Hell, maybe write a website where people can send ideas of things they'd like implemented. Others could add tags and emojis, indicate that they're working on it, or share existing implementations, or whatever other feature you can think. Then people looking for stuff to do could filter by stuff like "most popular", "most $emoji", by tag(s), by number of people implementing, etc.
Maybe even build in a system where people can vote on the implementation and have a leaderboard for the people with most reacted to ideas, people with highest rated implementations, etc.

Then you'll have to think about how not to game the system, maybe allow people to put a bounty on ideas, and so on and so forth.

Anti Commercial-AI license

[–] [email protected] 7 points 6 months ago (1 children)

I had a similar issue, and I started volunteering. Turns out I just needed to fix the feeling of not doing enough, rather than actually increasing the amount of things I do in a day.

[–] [email protected] 2 points 6 months ago

fair point. Sometimes I feel satisfied not doing much

[–] [email protected] 6 points 6 months ago (1 children)

Well, you’re posting on Lemmy, so that’s something. And it seems to have fostered an interesting discussion, so that’s even better.

[–] [email protected] 2 points 6 months ago

I am a monster lurker for stuff that hits close to home. So I guess it became too much so I just threw it out here.

[–] [email protected] 5 points 6 months ago

Try a sauna at the end of the day. Helps me sleep.

[–] [email protected] 4 points 6 months ago

What are you passionate about outside programming? Reading? Writing? Hiking? Tv or movie watching? Connecting with friends? Gossiping about the neighborhood?

What ever it is… do that. Focus on that. Then, if you still want to build personal projects, see if the tools around those hobbies are adequate and to your liking. If not, there you have it. Your next project.

If everything is good and you enjoy your hobbies, please understand that software engineering is a job. You don’t need to do it outside work as well. It’s like asking brick layers if they have personal taj mahals that they’re building brick by brick outside of their daily work of building other people’s houses. They’ll look at you like you’ve lost it.

[–] [email protected] 4 points 6 months ago

Go for a hike.

[–] [email protected] 4 points 6 months ago (2 children)
[–] [email protected] 2 points 6 months ago

This is what I went with too! The toys and materials can get expensive though.

[–] [email protected] 1 points 6 months ago* (last edited 6 months ago)

it was fun when we had this 1st year of college. Unfortunately I don't yet have the space needed for it and buying a space is out of the question for me right now

[–] [email protected] 4 points 6 months ago (1 children)

What campolat said. But also, if you're really feeling an itch to do open source development on your free time but don't have a project, why not contribute to some existing open source project? You won't have to do annoying steps like starting or maintaining your own project, and you can just pick some software you already use and add a feature or fix a bug that you'd actually benefit from.

[–] [email protected] 2 points 6 months ago

Yeah I should try that. I guess my problem would be I start spending hours on a problem. Instead I should just learn to do stuff outside of the digital space for a while.

[–] [email protected] 3 points 6 months ago

I should probably say that I’m more of a product manager these days so I don’t think I feel quite the pressure you feel to have an impressive git backlog but at one point I did feel that way

I’ll get asked by fresh college grads all the time what I’m working on at home and It’ll take me a second to realize what they’re talking about bc I haven’t worked on a real non-work related project at home in years

If anything I’ll get new devs who I’ll invite to lunch and they’ll be nervous so I try to break the ice by asking what have they been up to or what their hobbies are. They’ll start speed running through their list of pretty obviously pointless github projects that remind me of the fluff ones I did when I first started. It’s adorable

The only personal projects that ever get my attention are the ones that the person describing them is obviously passionate about. You’ll see them grinning ear to ear when telling you how many hours it took to fix a bug.

This is a very ranty way of saying that you shouldn’t stress about projects at home. I was told early on that social skills carry you further than technical skills which is probably bullshit but I was never going to be an amazing coder so let me have this one

[–] [email protected] 3 points 6 months ago

Are you physically active? If no, then I'd suggest taking up a sport. Whether alone or with others, physical activity is extremely important, and it can be a rewarding hobby.

If that's already covered, then I'd ask: would you prefer to have a hobby that you do alone, or with a group?

For group hobbies, you can browse meetup.com, that's how I found my table-top RPG group, and we've been having loads of fun together for...about 15 years now.

(TTRPGs are my favorite, pathfinder 2e is the best ever)

For alone hobbies, I'd say the most important aspect is stay away from the screen. Music is a common one, or another type of art. Painting can be extremely rewarding, even if you have no talent.

I like to do MOC lego projects. (basically, use legos to make your own creations) I build mecha out of lego technic and bionicle/star wars parts.

[–] [email protected] 2 points 6 months ago (3 children)

Whatever you do, don't start down the path of customizing a Linux distro.

Started messing with NixOS in December and it has been the bittersweet curse of a never ending things to do.

  • More and more of my config now tracks 0 day releases with custom bug fixes.
  • Started writing my own Gnome Shell.
  • Started adding support to my favorite TypeScript framework for GJS (Gnome JS) for my shell.
  • Started writing a a parser combinator to parse GJS stack traces.
  • Started writing custom source map library for GJS so I know where my errors are.
  • Started writing a custom test runner because none of the modern ones work on GJS.
  • Started writing widgets for my new shell.
  • My veovim config is now its own software suite.
  • Started writing syntax tree parsers for poorly supported query languages we use at work.
  • Coding style is enforced with huge linter rule configs and custom plugins.
  • Sleep is now at 75% of what it was.
  • My wife is now working double what she did because I'm always busy.
  • My kids think I'm crazy.
  • My work has doubled their expectations because they think I'm some inhuman wizard.
  • The walls of reality are crumbling down.
  • Brb my morning NixOS update is failing to build (again).
[–] [email protected] 2 points 6 months ago (1 children)

Brb my morning NixOS update is failing to build (again).

When nixos-rebuild switch suddenly starts compiling GHC, firefox, CEF, or some other large package and you have to find the damn package that caused that rebuild. Always a good time.

Anti Commercial-AI license

[–] [email protected] 2 points 6 months ago

The horrors of compiling stuff take me back to my corporate job where I had to compile linux 2.x because a certain hardware vendor only had their driver tested on that.

[–] [email protected] 2 points 6 months ago* (last edited 6 months ago)

Whatever you do, don’t start down the path of […] Started messing with […] in December and it has been the bittersweet curse of a never ending things to do.

Sounds like… any and every project? 😅

[–] [email protected] 1 points 6 months ago (1 children)

Whatever you do, don’t start down the path of customizing a Linux distro.

Welp, I am already done with that one in my 20s. I guess I should have specified, I had at one point a running arch install that I used as a daily driver. My main session was xfce and I was tinkering with some openbox stuff. Long story short, an update bricked my arch install. Being a noob and also not having the power of nix back then, I basically lost all my configs and dotfiles.

Thankfully I never tinkered in Gentoo ever. I might try it out this year just as a bucket-list thing.

Nowadays, If I want to run arch I am running Endeavor OS.

(PS: I will try to one up you a more dangerous habit: Mechanical Keyboards. Thankfully my cheapskate-ass won't let me fall into this trap as much as I want to buy one... did I tell you I already have 2 of those in the house?)

[–] [email protected] 1 points 6 months ago

I guess we are in reverse timelines. I've built about 10 keyboards, but its been about 5 years since I built my last one.

The Iris is my favorite.

[–] [email protected] 2 points 6 months ago

Think about what you wish existed, then make it exist/make sure it exists.

[–] [email protected] 1 points 6 months ago

I've recently gotten into codewars.com a bit. (Not for a lack of personal projects.) I can recommend you try it.

The kind of projects that could fit depends on various things. What kind of projects would be of interest to you? Visual? 3D rendering? Algorithms? Utilities? Desktop software? Web? Known or new technologies? Which ones?

  • Implement a binary data serializer - for example for CBOR or BSON
  • Implement fractal rendering
  • Implement a checksum utility
  • Implement a personal website