DEV Community

Herb Wolfe
Herb Wolfe

Posted on

1 1

How to organize programming projects?

I'm slowly working on getting my assortment of code organized, so I can put some of it on github. I have stuff scattered all over, most in a code directory, but some in other directories I've copied over from various other sources.

I read

and several other articles that came up in a google search, so I'm starting fresh with a ~/dev/ directory, and giving each project their own directory. However, I have some projects I've done in multiple languages, for a example, a guess the number game in Java, and bash. I also did a few of the problems on Project Euler, and at least one I solved in more than one programming language.

I'm wondering what the best or recommended practice is for naming projects done in multiple languages. For example, should I create separate directories for the number guessing game, named guess-java, guess-shell, etc, or should I nest them, for example guess\java & guess\shell even though a lot of the advice I read was to not group projects by language

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (1)

Collapse
 
joellau profile image
Joel Lau

I've been struggling with this as well, and re-organize my directories every year or two, or when its starting to get out of hand.

The best solution I came up with was to first put every project in a repository - this way, you can track changes, and add documentation where required. On my local machine, I also split projects by where the repositories are hosted (github, bitbucket, etc..) so that I can use a .gitconfig file to control what credentials are being used when a project is open in my text editor and / or IDE.

I also delete local copies of my code when I'm not using them any more, just to reduce the clutter and free up some mental load.

However, you'll still face the issue of having to give a unique name for each of your projects - one of the hardest things to do in our field 😂😂

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay