DEV Community

Discussion on: Personal projects. Do you work on them? Have you finished one?

Collapse
 
webbureaucrat profile image
webbureaucrat • Edited
  1. Do (or did you) you work on personal projects? Why?

Yes, for a number of reasons. In no particular order:

  • I work with a lot of horrible legacy code at work. I want the opportunity to work with newer, better technologies and set my own standard of code quality.
  • Somewhat relatedly, I need to upskill to stay relevant. I don't want to work in VB.NET/C# forever, so I better stay up to date on my own time.
  • I recognize that knowing how to code right now is a privilege, and I want to give back with some public service and nonprofit work.
  • portfolio/resume building.
  • vainglorious feeling of accomplishment.
  1. Are they small or medium/large?

I have a large abandoned project I'd like to return to eventually. I also have a lot of small projects / libraries and a couple medium sized projects.

  1. How many years of experience in development do you have?

A little in high school, a computer science degree, +4 years professional.

  1. Do you tend to start and abandon these projects? Why?

I started a large project a couple years ago and abandoned after about a year. One reason is I built it on a three-month bender and burned myself out. Another is I wasn't quite skilled for what I was doing, so eventually I was just learning too many things at once. A third is that TypeScript strict mode is fine, but still not as aggressive a type system as I like for a large project. If I return to the project, I'll probably convert it to ReScript, which is very strict and so will probably scale better.

  1. Have you completed at least one personal project? Was it successful?

Here's the thing: By and large, you don't "complete" software projects. With a few exceptions, a healthy codebase is continually maintained and improved. Is my COVID-19 tracker complete? I started it and put it production for the first time over a long weekend, but I'm still regularly pushing commits.

I hope it doesn't sound like I'm just being cheeky. Thinking of software projects as never "complete" has some real implications because I have to never say to myself, "I'll start on that new project when I've finished this current one." I have to resign myself to maintaining the projects I'm working on or resign myself to a graveyard full of broken, abandoned projects.

Were they successful? Also kind of hard to answer. I would say yes, all my production-worthy side projects have been successful because I've always built projects I intend to use, so if they do fulfill my purpose, that's a success. If I can send them to my friends and they find them useful, that's even more of a success. I don't set up analytics to find out if anyone else is using them.

  1. What's your process? Do you start with coding or any investigation?

I have a sort of non-process process. If I start with an idea, it's usually a while before I start on it. It's as much as a week of informal, semi-conscious brainstorming sessions in the shower, on the bike trainer, and so on, spaced by absently browsing frameworks, libraries, and tooling options in my spare time. This is mainly in the service of deciding whether something is feasible. After that, it's a day or two deciding what the first feature should be. That's my minimum viable product.

Only after that do I actually consciously set aside time for a project, and I just sit down at the keyboard and start writing, planning screens and databases etc as I go.

Collapse
 
denisveleaev profile image
Denis Veleaev • Edited

Thanks! That's a valuable answer!