+36  A: 


/home/me/code/project for me (no home folder namespace pollution).
~/src/$lang/$project here
You get to write projects that are *all in one language*? Cuh-razy.
+143  A: 


Anton Gogolev
Same here, although I also have subdirectories for the repository type, as we currently use a mix of vss and svn.
R. Bemrose
D:\src\ for me, but close enough. +1
d:\ - it is a separate drive and i store each repository in separate folders.
Tom Anderson
D:\Projects at work, C:\Projects at home. This after not liking My Projects at the My Documents level.
D:\Projects at work, x:\Projects at home
Now you make me want to use X:\Files for my projects!
c:\dev. Why 8 why you can do it in 3.
E:\Projects here. One-ups-manship!
C:\Clients\ClientA, C:\Clients\ClientB, etc.
Euro Micelli
Same here be with the E: disk being named PROJECTS.
C:\Documents and Settings\joep\My Documents\Visual Studio 2005\projects\
Joe Philllips
D:\Workspace\[Checked out repository name]I also use D:\Workjunk for muck around projects not under source countrol
D:\Plane\boss\D\Plane !
D:\Day\yymmdd\ would be a nice path for project backups. :)
Alix Axel
C:\<Language name>
Loren Pechtel
Noon Silk
d:\SVN\{RepositoryName} on windows, /home/osama/SVN/{RepositoryName} on Linux.
Shouldn't a _working_ directory ideally be called "sandbox" rather than "projects"?
Ates Goral
haha that's my exact path, what an awesome answer
BlueRaja - Danny Pflughoeft
X:\Files\Projects\ (to make the comment long enough).
D:\Things I do\Things I like to do\Things that make me money\Things that execute\...
Travis Heseman


it's foo! 8[ .....................................
+18  A: 



Also store it in my SVN

Berek Bryan
+4  A: 


Addendum: Technically speaking, your projects are what's in source control. Your sandbox on the other hand is a local copy of the projects that you're currently working on. Your sandbox doesn't need to be an up-to-date clone of your entire project repository. Therefore one could say that it makes more sense to call your local directory "sandbox" rather than "projects", since your local disk is not the best place to store your projects in the first place.

Patrick Cuff
Mine is prefixed with a @ to stand out from other data folders: D:\@Sandbox :)
Ates Goral
@Ates, I like your idea :)
Patrick Cuff
+48  A: 

What's wrong with My Documents? Code files are documents, aren't they?

I keep a Projects folder inside My Documents, which then branches out into the various working copies I might have checked out.

"What's wrong with My Documents?" - Some older compilers still have odd limits for path lengths, and "C:\Documents and Settings\username\My Documents\Projects\projectX\Source\filename.c" is too long. Rare, shouldn't be an issue, but there's one reason why my documents might not be best.
Adam Davis
Additionally it just makes life easier with a lot of accessory code tools (source control, analysis...) to keep the code on a dedicated drive. Nothing wrong with MyDocuments though.
So does creating a path variable to your projects folder. Place your files wherever you want. Don't forget you have tools for stuff like this.
Orion Adrian
Both good points. For me, it's convenient to keep everything together, since I might have Projects\projectX\Source\, Art\, Documentation\, etc.
all the "My Stuff" things in windows are wroooong!! They're wrong in so many ways! Well, at least in vista it has a less evil path: C:\users\me\documents, but who cares, just create your own folder under C:\ directly. e.g. C:\code
hasen j
This is what I do now as well. Since I have a couple of versions of VS installed (SSRS is a harsh mistress) I consolidated the individual folders like this.
I put everything in "My Documents" too, but it does bug me that when I open up a command line, it already wraps an entire line just by cd'ing to my project's build directory.
Nik Reiman
If you are debugging on a different machine, it looks for the source file in C:\documents and settings\yourname\my document\etc and since yourname is only on your machine, it can't find the files. Better to have a standard locale used by the team like d:\groupname\project or something.
@hasen j: FYI, Microsoft fixed the "My Stuff" in Vista. The default "My Documents" folder is now C:\Users\[username]\Documents.
Mr Fooz
As long as "My documents" is not located in the default location. I have all my work located in e:\Documents\Projects
Arve Systad
Another reason is that sometimes you are developíng stuff that will be accessed by a service, and service accounts don't normally have access to %USERPROFILE%\Username stuff. I really feel that mucking with permissions in %USERPROFILE% folders is asking for trouble.
Euro Micelli
In Windows, I've had problems with paths that use spaces. Maybe it's just an old problem I never forgot.
I don't use My docs because at my work we have a roaming profile (which place doesn't) and it will sync everytime. SVN all the way and checkout to sperate partition
Ugh. What's wrong is that the path is long and annoying.
Dave Markle
c:\documents and settings\[name]\my documents\projects\
I have seen windows doing horrible things to My... folders... like... deleting the whole thing because it failed to move it to a new profile (think changing domain or other such delightful surprises IT can have in store for you). So forgive me but no... as a programmer myself I do not trust programs to "just work" and windows still has a long wy to go to gain my trust in this regard. Dedicated partition or drive for all my stuff is it for me with the regular check-ins to keep paranoia at a bearable level
some of us have to deal with code written by terrible vendors that chokes on spaces in file names, so my documents is right out for me.
Peter Recore
I've always hated My Documents. I made a point never to use it.
@Nosredna a workaround for directory names with spaces is to use the short directory name instead. e.g. MyDocu~1 instead of "My Documents".
Sometimes you also need to type paths to your files. I program in alot of things, and not having to type long paths is generally a boon, since I rarely have the luxury of a solid IDE, and barely have an intepreter.
I have written some device drivers on XP, and the Windows Driver Kit environment that is used to compile them, dissallows spaces in the build path. Therefore any path under "c:\Documents and Settings" cannot be used, and so at least, there are some instances, where a standard "projects" folder under "My Documents" will not work.
+2  A: 


which is then hard linked to


So I can access it easily, but the data is stored in the 'correct' directory - useful for backups, data transfers, computer upgrades. I don't have to search for everything.

junction is the linking program for windows. This is much easier and nicer in unix, though.

Adam Davis

For c#, just the default location For eclipse c:\users\tom\eclipse\ For python c:\users\tom\python\

No structure whatsoever, but my structure lies in source control, and not my machine.

+31  A: 


Shawn Miller
This allows continuity between the development and build machines, and also makes sure every developer uses the same folder. Makes references WAY easier.
If you have to do something like this to make references easier, you're doing something wrong. There isn't a good reason to hard code any path in development.
I actually use c:\_projects as it makes it a bit faster to find.
@rmanau doesn't play well with Vista though since you keep getting nagged for permissions. I use a second drive.
And ~/Projects/ on Mac and Linux machines.

I use the Fossil VCS for personal projects. I keep Fossil executable, my repository, and my in development code on a thumb/flash drive. I also have SharpDevelop installed and running from the thumb drive. This gives me a fully portable dev environment. SharpDevelop is a free .NET IDE if you did not know.

+2  A: 

C:\InetPub\wwwroot\ [project name]

I keep notes in My Documents though... things like progress logs, code snippets, backups.

+3  A: 

I mimic our source control on my local system. I have a folder with the name of the source control server, and then subfolders for each database.


C:\SourceControlServer\Database1\ C:\SourceControlServer\Database2\

It makes it clean for me to keep all our projects organized, especially since we have several databases and have had to change servers in the past.

Jay S
+6  A: 
My Documents\Work\[Client Name]\[Project Name]\Working Code
what if you can reuse a project for multiple clients?
Berek Bryan
In my particular work, that rarely happens, but even if it does, I either make a copy so that I can customize it for that client, or, if the project is never customized, then I drop the Client Name level from the hierarchy.
I wouldn't put it in a folder that has "space"
hasen j

For personal projects, I keep them in 'Documents\Source Code\'. I already have a strategy for keeping my Documents folder backed up, so this keeps my source code backed up the same way.

On very large projects, the file paths approach MAX_PATH, and so it becomes important that the first part of the path be kept very short, e.g. 'd:\src\'.

Back in the "old days", hard drives where never big enough, so source had to go on a separate drive from everything else. Today everything lives on C:.

Jay Bazuzi
+40  A: 

Never in the C:\ drive on windows. I usually leave that for the OS and programs, as it can easily be replaced/re-formatted if something goes wrong (eg. viruses).

Stuff usually goes in X:\work.

Really, Never ever save anything sensible on the C: drive while using Windows.
Remember folks, c: is for cruft you can replace, d: is for data :)
Jim OHalloran
Since he specified that "Your code is of course checked into a repository" then code falls under the category of "cruft you can replace"
So C:\ is only for Windows and viruses? got it.
That only holds if you have multiple Hard drives (or at least partitions). Not all of us are so lucky.
You should rename \work to \files
@seanhodges the difference being??
C: is for OS, D: is for personal data, E: is for warez, mp3, movies and porn.
Ates Goral
+3  A: 


+9  A: 

In Vista

C:\Users\James\Projects (same level as Documents)

James Curran
never store your personal things on C in windows.
+3  A: 


In fact I've made it a point since the Amiga times to always keep my "documents", things I create myself that are hard to replace, on a separate logical volume. On the Amiga i kept them on the work: partition.

This makes it easy to separate operating system from actual files I care about and do stuff like reinstall and add other operating systems into the mix with ease.

Windows and installed apps tend to drivel crap all over the old "My Documents" root so I've basically stopped using that. "My Images" and some other subfolders however I've redirected to D:\Images and so forth - not that it really matters.

My backup solution backs the entire D: using shadow copy, no exceptions, easy peasy.

It's not perfect for shared computers of course, but I don't think the question was about those. If so, the network home directory would be preferable - or in a non-roaming part of the user profile it the network isn't up to it.

At work it's D:\ companyname.

Also, any windows-specific folders except for your own user profile should not be writeable at all if you're running as a standard user - and if you're not, shame on you! ^^

Oskar Duveborn
yep... pretty much it for me
+29  A: 

More often than not, mine ends up in the recycle bin.

I keep it on an external HD and pull it over to the PC when working.

recycle bin .. hehe good one
hasen j
+1 You made a funny!
Lucas McCoy

Somewhere in version control system (VCS). D:\Projects\PRJNAME will have local checkout of code for developers (well, if they are using Windows!)

Kartik Mistry
+1  A: 

/home/sean/Documents/[Project Name]/src/

I suppose the equivalent in Windows would be:

C:\Documents and Settings\Sean\My Documents\[Project Name]\Source\

+5  A: 

I keep it safe. In a password-protected RAR.

I keep it secret.
i keep it secure
No one knows it's here, do they? Do they?
Christopher Mahan
My precioussssssSSss
Ric Tokyo
One directory to rule them all!
Augusto Radtke
Safe and sound on Sourceforge
don't need password protection, I just code it extremly unreadable :)
Tim Büthe
Perl is my security
Charlie Somerville
Really ?
I accidentally 93mb of your source?
+47  A: 


Robert Grant
+1. Short and easy to type at the command prompt, or in the address bar of an Explorer window.
Jon Schneider
me, too, although dev is used as device in linux.
I also like c:\d\, it's even shorter
Scott Weinstein
@Haoest - then you get a fun time of it when you make a project called null :)
Robert Grant
On windows, I use c:\dev, but on Linux/Unix, I usually use ~/dev.
+2  A: 

~/Documents/projects/lib/various folders

My co-worker keeps his in /Source/lib/various folders

Eitherway various project folders can then be parallel to lib under projects orSource...

Brian Postow
+2  A: 

Default location for Visual Studio which is %UserProfile%\Visual Studio 2008\Projects.

Orion Adrian
Agreed, I only access source through AnkhSVN anyway.

Ideally it should be placed in a path without spaces, so anything under "Documents and Settings" on XP is out, as certain build scripts can have trouble with spaces.

It should be close to the drive root for easy access via command windows.

it might help to create an environment variable containing your workspace root that way you can type cd %work%

Martin OConnor
+11  A: 

My personal source is in "~/src/", and has been for a long time. Under Cygwin I put it in "~/tmp/" if it's temporary or "My Documents\temp\" if it's Windows related. Long term projects go in "c:\opt\" which is linked to from "/opt/" under Cygwin. Using "c:\opt\" makes it much easier when it comes to Eclipse, backups and Windows Explorer.

`~/src/` here, too.
Dave Sherohman
I use ~/src for downloaded source code and ~/prog for my own source code.
too bad Windows didn't set a clean shortcut for "my documents" as convenient as ~
Emmanuel Caradec
+2  A: 


(since we use SubVersion...)

Richard Ev

G:\projectname\ I too save C: for OS and programs

+1  A: 

C:\dev\projects for project directories


C:\dev\workspaces for Eclipse workspaces


To keep things consistent across my team, we all create the same working folders on our local drive.

C:/WorkProjects, with a subfolder for each project. It's simple and makes sure that we always mean the same thing when we talk to each other.


I usually place code either in my home folder, or on the root of some non-OS drive. Allows for easy access from the terminal.

Donnie H


It's quick to access and makes sense to me.

Ryan Smith
Wouldn't that make a better place to put your repository? Why would you put your working copy there?
Well, C:\SVN on the source control server holds the repository.C:\SVN on my local machine holds my working copy.
Ryan Smith



on Windows Xp box: C:\development

on Vista box: C:\Users\gldm\development

on Linux box: /home/gldm/development

(...where gldm is my username ;-)


I work on a server via RDP with another developer, we use c:\CKDev and C:\SSHDev respectively. Makes life easy, and allows us to find each otehrs code when necessary (Read permissions only).

+2  A: 

C:\Users\max\devel, now that they finally adopted a halfway sane directory structure with Vista.

Max Strini

Projects are stored by client and project:


Dependencies shared across multiple clients are stored in:


Dependencies specific to one client only are stored in:


The _Shared folder (at both the global and client levels) can also contain other things, such as installers, documentation, etc.

+5  A: 



Lucas Cardoso
go *nix!
Why did I see that as "bikinis"?

C:\Users\priyank\Documents\Visual Studio 2008\Projects\

Now as USB memory drives are becoming cheaper, I am planning to move my development codebase to a usb flash drive. The advantage would be when I need to format the system, don't have to worry about backups, as it would be already there. Also I can work in office or at home using the same code base. It also helps to protect the important data, as the data would be always separate.

Priyank Bolia

i am using c: for windows.


Separate partition. That way I can always access it with two clicks, one on My computer, then F, in comparison with clicking away to get to it somewhere on disc hidden in the directory maze. And it makes life easier with directory structure, when backing up stuff etc. Probably has some other advantages, but I remember them at the moment :)


Never the c: drive

[My Documents]\My DropBox

It's so much easier than source control. No need for tedious commits and updates. ;)

But seriously, for home stuff and quick test projects I don't use SVN any more. I keep it all synced and backed up (including revisions) just by keeping it on my DropBox. If it graduates into a real project, then I add it to SVN.

Assaf Lavie
+2  A: 

Anywhere were i need the working copy to be. (dev web root, flash drive, etc.) I check it out, work on it, then (when needed) delete it.

Gary Willoughby
The question was where do you keep your working copies. I presume you're already storing your source code in version control.
Why do you delete it when you need it ? :-)
Bill Forster
i meant i can checkout a copy and work on it anywhere such as my girlfriends laptop. When im finished i check it in and delete the local copy or she'd kill me for cluttering her desktop. :)
Gary Willoughby
+8  A: 

Source Control. As long as it is there it doesn't matter where else it is.

Read the question. :) Where are your working copies?
+1  A: 

I don't see a problem with using "My Documents", as long as you don't let it get too cluttered, but I also agree with some of the other comments that it's best to keep important stuff on a different drive, in case you ever need to re-format or your Windows install crashes. You can still use "My Documents", but map the target location to a separate drive, such as "Z:\My Documents", so it's easy to access inside of Windows, but still isolated.

With that said, I create a dedicated "My Documents" folder in my separate drive, and try to not to let it get too cluttered with development work. For work, I have a folder with the company name, and in that folder, I have a dedicated folder for items checked out from the repository, and a different folder for my own tinkerings.

It ends up looking something like this...

  • C:\
    • Windows
    • Program Files
  • Z:\
    • My Documents
      • My Music
      • My Pictures
      • etc.
    • Company
      • Repository
        • checked out items...
      • Development
        • Playground/Sandbox
        • other tinkerings...
    • Other stuff...


+1  A: 

Mine is X:\Dev.

Joan Venge

C:\Users\Daniel\Documents\Visual Studio 2008\Projects


My local SVN working copies are at


(Which, depending on disk partitioning issues, might actually be a symlink to somewhere else than /home, like /opt/devel.)


In a directory under ~/, if it's a major project. For small test programs and prototypes, I use ~/sandbox/.

Scottie T
+1  A: 

CVS, I don't consider local copies real to motivate myself to commit often.

+1  A: 

I lost all mine this weekend because it was on C: and I screwed the partition because of a damn vista OEM cd on which I was searching for the repair option but ended reformatting with a simple "next" without any warning..... So i'm keeping it on D: now.


C:\Source\Project Name

+1  A: 

D:\Work I don't keep much in My Documents (not event documents.. ;-)

Someone earlier said:

what's wrong with My Documents

I would say, everything is wrong with my documents. It would really be fine if it wouldn't be so damn integrated into the operating system. Maybe I'm a little paranoid and little bit of a control freak but I really don't like the OS and other random applications organize my work/documents folder, or dump random stuff in my folders (think: saved IM conversations, downloaded files & many hidden goodies).

Plus it offers an easy way out when the Windoze partition needs a remake ;) (Not that you couldn't set My Documents' mount point on a different partition)

Miky Dinescu

T:/Trash/ (no kidding)

+1  A: 

I set it up to mirror SVN:

e:[repositoryname]\trunk\ to match up with svn://[respoitoryname]/trunk/


I never save any documents on the OS's partition - seems to be more reliable elsewere.




C:\Development contains a large number of checked out subversion repositories. If I'm working on a main version and an experimental one, I'll check both out to the same root, but give them appropriate names.


Paul W Homer

c:/dev for me.



When using cygwin on windows, it's equivalent to c:\cygwin\home\myusername
(depending on how you set up your mount point)


D:\DEVEL\[Project Name]

Esko Luontola
  • \myfileserver\i$\projects\
  • \myfileserver\i$\docs\
  • \myfileserver\i$\work\company\projects\
  • c:\projects\ (when working on the laptop)

plus backups to my backup file server.


DevStudio rules as an IDE and a debug environment when I can get away with pure, system agnostic code, so I do most of my actual work on Windows. However, most of the code I write is multi-platform: Windows, Linux (x868 & ppc) and Solaris.

I am frequently sharing a folder to a Linux box. It's actually more likely that I am exporting a directory from a Linux or Solaris box to other Linux and Solaris systems using NFS and also to Windows using CIFS/Samba.

Two of the most important things to me are that paths are short, and contain no spaces. Developing on Unix systems typically means a lot of typing, so short paths are really nice. Spaces can cause some real problems in things like makefiles and other scripts. It is usually easy enough to quote or escape a space once, but each time you pass a variable of path names with spaces, they get harder and harder to deal with.

I also like to keep paths that are as close to the same as these systems will allow. Something like /space/ws/ on the Unix boxes. The can be a real directory, a link to another local directory, or a mount point to something I'm importing from another system. On Windows, I can usually map this to something like L:\space\ws\.

+1  A: 

All over the place.

At the bare minimum I keep 1 git repo clone each on my desktop, server and laptop.

Ant P.



I like to have my projects on a separate drive to my system one, so normally I keep it on D:\projects. This way I get better system performance, plus I save space on C drive which is normally a faster smaller drive (10,000 rpm).

Regards Lee


I keep my code in three places.

1) I keep it on a development server. I avoid developing on the local machine. I want all the development to happen on another machine that I connect to remotely via ssh. This is especially useful with web programming.

2) I use git, so it is very easy to keep code on a thumb drive. I do this so that I have a copy of the code handy if something is up with the dev server. Mostly I do it so I can code with my laptop while on the train, and don't have any connectivity.

3) I keep a backup of my code on Amazon S3 via JungleDisk. You never know.

I don't put code on hard drives on client desktops/laptops. They are extremely prone to failure. I am prepared to erase them and re-image/re-install them at a moment's notice. That means not keeping any actual data on there.

+1  A: 


The only programs I use in windows are ie and chrome. (even though I have 2k, xp, 2003, and 7 set up as virtual machines.)

+1  A: 

I keep my stuff all over, its messy.



It's a samba mount to a server that gets backed up every night along with every other developer's workspaces. The same server is also used as a development box and hosts our source control system. The network latency for edits is low enough that it's negligible for our small team, and it means we have instantly deployed code on a server for testing instead of running development environments on each desktop.


Since I am a consultant, I might need a subfolder with the name of the client..

D:\Projects\[Company Name]\[Project Name]


c:\source\ [mirror source control tree]


I just checkout from SVN from within VS2008, so my code gets stored in My Documents\Visual Studio 2008\Projects.

But I wouldn't care if I lost that folder, because I commit my changes back to SVN regularly.

+17  A: 

What a thoroughly pointless question. -1.

What a brave answer. +1.
Tim Matthews
Its hardly an answer...
Luke Lowrey
@Ctrl Alt D-1337What a nice username. +1

I have a projects folder on a seperate partition. This partition is also backed up on my external hard drive.

John T


Thomas Müller

I generally keep my stuff in ~/src/{projectname}. If I'm in Windows (and not using MSYS/MinGW), I'll throw it in My Documents\src\{projectname}.

+1  A: 

~/dev/and so on

Jace Jung
+4  A: 


Ash Kim


I find it the fastest way to access my stuff. I also have a Websites/Backups/ Folder where I back everything up.


how about in:


I use the same structure for each company (doc, src, www):


Its very organized and easy to work with. Generally though, I don't have to dig through any of these folders that much because I wrote a system tray menu to give me quick access to all my solutions.

David Anderson

In a memory-mapped partition, that's way better than dying with I/O, if you want it secure, commit it!

Augusto Radtke

I use SourceGear Vault for my work projects:


The Development directory is my "trunk" (for those SVN users out there) while Branches holds separate source trees for releases.

Personal projects just go in C:\Users\David\Documents\Visual Studio 2008\Projects... but I'm hoping to clean that up later. Perhaps even put everything under a personal Vault server.

David Brown


+1  A: 


With various subdirs depending on the language I'm currently using.

Also, I usually create a directory in my home called "backup".. And I usually create an executable bash script that I put in /bin called "bup". What it does is copy files to ~/backup. In so doing, it renames them with 'date +%s' which returns epoch time.... This way, the files all have unique names... Occasionally, I go in and whack ~/backup/*... And if I ever have to recover something from here, i will have to grep and manually rename... but its better than losing the file forever!

+1  A: 

c:\work, cvs, git.

Complete encrypted copies of source code control archives are sent to a remote location each night. Private keys for decryption are kept in few places, plus in a vault. Printed on paper.


/home/username/progs/(language name)/(project name)/ Also with backup copies on two usb keys and sometimes a backup on my windows machine.

I tend to be a bit of a neat freak when it comes to organizing my files...

+3  A: 

I put mine in c:\src


In my $HOME I keep a $HOME/svn and $HOME/git directory that is sorted by areas of work. E.g.

$HOME/svn/$employer/ has all of my professional projects $HOME/svn/googlecode/ has all of my googlecode projects

I don't keep any code not in external revision control UNLESS it is very trivial.


At work, at C:\Projects to prevent the anoying 'can't run programs from networkshare errors' At home, same as work but trying to setup a SVN on my NAS (CH3SNAS)

+1  A: 

In linux:


In windows in lazier and my code ends up on my desktop or wherevere my IDE puts code in by default.



for PHP projects

Click Upvote


Andrea Ambu

i have in on D:\perl* but also in SVN and copy on USB sticks


usb stick :>


I Keep mine in a drawer beside my desk. Next to the type writer.

What the hell sort of question is this LoL

Dave The Ninja






This allows for multiple projects, and keeps things much more organized.

Organization creates efficiency in the long-run.

+1  A: 


And D:\data is the only directory which needs backing up.

Pascal Sartoretti
+1  A: 

remote git + local git + backup drive.



%USERPROFILE% in my enviroment is set to D:\Users\*UserName*. We have several sets of software tools that are based off of one product, so this keeps them organized, backed up (by CorporateIT who pull that directory), and mirrors our repository.



(along with subversion on NAS)

Alec Smart





Unix ( when I have one : ( )


+103  A: 

Wow. All these people who trust their code on these "hard drives". Please.

I have a batch process. It utilizes the latest Microsoft(R) Windows(R) .NET(R) FIleSystemWatcher technology. When I save, it kicks off my batch file.

My batch file then walks my directory to find all changes. It copies the modified files to my second hardrive, my USB Drive, and a floppy disk - just in case. It then scps them to a secure offsite location, and then to my home network.

Both my secure offsite location and home network monitor the incoming files. When they detect new ones, they make true hard copies - they print the suckers. At each location, I've set up an automated mover which is basically a Lego(R) MindStorms(R) arm that grabs the fresh-off-the-printer source code. At the facility, it then passes it to a second arm, which files the document in a secure, fireproof safe - indexing it by filename, date and time. At home, I just have it put it in a box under my bed, so I feel all warm and fuzzy at night.

This process has saved me so many times. For example, just the other day my customer decided that the thing he told me to delete that I swore to him he would need and pleaded not to delete because we surely would just need to restore it later on, needed to be restored, because he was wrong about us deleting it, and he actually did need it. So I kicked off my restore process, which pulls in the copies from my other partition, my USB drive, and then contacts my offsite facility, which retrieves the version, OCRs it, and sends it back down my reverse-tunneled SSH connection. It then compares all three versions, and, finding them all in agreement, restores the file just like new.

Sure, keeping up with all that can be expensive, but you know, you just can't be too careful. Luckily, with this process, I can have my batch script automatically monitor all of my drives, so it doesn't really matter where I keep it at - it does the right thing.

Of course, that's all for my work stuff. For personal projects, I just keep them in C:. Why bother with folders, ya know?

Cory Foy
Pure gold right there!
I won't ask what you do with the Original Packaging!
Adam Liss
But what if the printer runs out of paper or toner/ink?
Adam Rosenfield
You say this batch file copies all changes to this off-site locations? What does it do when the change is a complete deletion of the files? Can it even detect this? I'm asking because I am very much reminded of a certain web journal company who did the same thing and lost all their data beyond retrieval this way.
Just because we are naming the directory we work from doesn't mean there aren't backup systems also.
Loren Pechtel
Oh man, this is classic! =]]
Nathan Kleyn
I like the robot arms, but if you were really serious about your code you would have ninjas involved. I saw no mention of ninjas.
OMG...Clearly I'm a bit slow today. It actually took me until the Lego comment to realize what I was reading. Absolute CLASSIC! :)
Steve Brouillard
Makes you come out of your blues ;-)
HAHA :), a classic.
Man, you can go through all of this, or you can just use git.
@LoveMeSomeCode: that's the whole point of ninjas: you can't see them!
Martinho Fernandes
@Tchalvak: but this is easier!
Tikhon Jelvis
@Cory: Tell me you did this when we were working together!
Travis Heseman

Where I have c:\[company_name] mapped to a separate physical hard drive.


On my dev box, C:\ holds OS and all installed apps. D:\Source is where all my projects live, D:\Mine is where my docs/pictures/music/etc are.

D: is different physical disk than C: -- that helps with overall performance of the system.

Srdjan Jovcic
+14  A: 

I have everything under source control, so I'm not really worried about losing the source. Therefor, I have it all under My Documents\My Code\Projects.

However, what I don't like about it, is the fact, that whenever I need an absolute path - it's a lot of typing. Or some tools don't even support paths that are this long... Therefor, I have this line executed, whenever windows boots:

subst P: C:\Users\username\Documents\My Code\Projects

So, all of my projects are accessible from paths: P:\ProjectName.

I think more people should know about this subst command. Then we'd rarely hear anything about paths being too long... ;)

Paulius Maruška
Agreed. Mine is E: Short is so useful. Often a separate drive, sometimes just mapped with subst. Check out: http://serverfault.com/questions/2690/how-do-you-map-a-virtual-drive-letter-to-a-local-path-on-windows
Christopher Galpin
N:\ here (globally) due to source control brain damage. The source control admin pinned a few folders to absolute paths.
This is perfect, best of both worlds. you don't have to account for any weird UAC issues because it's in your profile folder, and you still get to have the nice succinct "short path"
Joel Martinez
Yup, using the subst too.
Sorin Comanescu
Yup, using same letter too! Unfortunately there exist tools out there (cough, MSSQL, cough) that are too smart to handle substed drives :/ I don't like my data files on C: though, so they reside on a separate HDD.
+1  A: 


I modified the Group Policy which applies to our development machines to automatically create that folder and assign full control to the Developers group. It's also excluded from anti-virus scanning.

If you're working with several developers, standardise on one folder for your admin's sake! :)

Keith Williams

/git/ -(which is a symlink to)-> /var/local/git/ (/var has its own partition)

For information about git (which is the perhaps the best VCS on the planet!) see http://git-scm.com/ Don't know why this is rated down. Is using Windows a requirement?

Now that I seem to be able to use Cygwin's tools to do my building, source control access, etc., I think I will be using:


This is an Eclipse workspace directory. Each project directory inside will be a git working tree.

Yay! The most down-voted answer is the accepted answer!
Ates Goral
It's the one I decided to use. :)

On a backed up network folder, which is mapped as my H:\ drive. That way I don't have to worry about backups.

+1  A: 

I keep mine on SVN/Git, Dropbox as a backup and on C:\Mingw\Projects\



Found out there's an unpublished exclusion to the Virus Checker that skips that directory :)


Short and easy to reach.

+1  A: 


I prefer to keep it short to make commandline tasks easier. Folders without spaces saves worrying about wrapping paths in quotes, etc.

Mads Hansen




And on BitBucket.

Why the Users directory? Is that instead of Documents and Settings?Also, specify more.
Vista/Windows 7 use the C:\Users instead of C:\Documents and Settings. What more would you like me to specify, seems pretty straightforward, no?

~/projects and then I push it up to http://bitbucket.org

Boiler Bill

I have a few disks so its on a separate disk to most stuff, and of course in perforce on a server.



which is shared on my virtualbox installation of linuxmint, and happens to map to


hasen j
Jorge Israel Peña


*nix is all about the TLAs ;-)

Jonas Kölker

After years of Windows development I've refined my approach to the following, which works for me:

I have at least two logical volumes: one is C:, and the other is mounted under C:\Work (Windows can do mountpoints not unlike Unix; many people are not aware of this).

Under C:\Work I have folders like:

  • C:\Work\Docs - Windows is configured to use c:\work\docs as the location for the 'My Documents' special folder
  • C:\Work\Downloads - Same as above but for the Downloads folder
  • C:\Work\Sourcecode - Whenever I download source tarballs I extract them here
  • C:\Work\Projects - This is where my actual projects go

Projects is broken up thusly:

  • C:\Work\Projects\Scap - Whenever I need to create a throwaway project to try out an API call (or test a StackOverflow solution) it gets created here
  • C:\Work\Projects\Personal - All my personal self-edification projects go here
  • C:\Work\Projects\(CompanyName) - Projects for a company employing me

Under each company the content varies depending upon what I'm doing. At my current company this consists of working copies for SVN trunk and various release branches of our product.

On my dev workstation at work I use another mount point to store the working copies of my company's source code on a hardware RAID 0 volume consisting of a couple 10K RPM SAS drives for maximal I/O performance during builds.

The advantages of my approach are: * Don't have a proliferation of drive letters; UNIX got this right with a single-root file system * Can easily carve off a branch of the file system to a separate volume (see my example above with the separate RAID 0 volume) without changing any paths * Can repave my OS partition and still have all of my files and documents just where I left them

This is probably an excessively verbose answer to your question, but it kind of got away from me.


/root/play or /root/work, depending on which type it is - not that I'd ever code as root cough.



Might I add that iDisk is not very good for keeping code in, because there are often merge conflicts which can be rather disastrous if you click the wrong button accidentally :) But it is useful because I tend to randomly code things at random times at various locations.


I put mine in c:\source. I had it there for the past eight or so years. I started out with Visual Source Safe as a repository, but as for the past several years I've been using TFS, which works great.

I do also keep some source in My Documents\Visual Studio [version]\Projects\ In there are simple try out projects that are usually build to troubleshoot some problem or to explain something in a presentation or on my blog. The reason it's over there is, that it takes no effort to use it, at all. Visual Studio (my preferred IDE) puts it there by default and I'm fine with that for these particular projects.

Jonathan van de Veen

All my code lives in ~/development/, this means it will be backed up with the rest of my home directory.

Git is used for version control, and often code gets synced with an external server.


  • < category > would be things like a company or language, some kind of collection.
  • < project > is the project name.


Luke Antins





I use windows for my workstation, but serve my files from a local FreeBDS development server that mimics the live server as much as possible.

Then I have a shared drive w:\ (w for webdev) in windows that points to /var/www/ on the server.

Local path: W:\apps\appname\

Server Path: /var/www/apps/appname/

And then I use Backup Genie to back up any changes each night to my backup HD like:



~/Development (also my Eclipse workspace)



Putting an underscore in front of it makes it easy to tab-complete in the terminal. My build directory, similarly, is ~/_code/_build/PROJECT

Seth Johnson

I always setup a ten gigabyte partition when I install Windows the first time. This is dedicated to all my source code, and is in turn on a 10,000 RPM hard disk. I have several folders which are structured:

D:\doc\ (Documents that may be relavent to all of my source code)

D:\iis\ (I wrote a tool to move the entire root IIS Directory, I use this for local testing of Web Applications.

D:\ref\ (This is used for release builds of libraries that are used across multiple products as references)

D:\src\ (This is where my actual code goes)

I then structure all my code as follows:





In my code directory of the project, it would of course actually contain all the projects in that solution. As well as the solution file itself. I have found that by organizing code this way, I have very quick access to everything I need. Everything is in the same structure, so I never have to search for something either. This is also how I was taught to organize projects at my first (and only :\ ) job as a developer.

I could not even imagine storing code anywhere else in the system... I hate long path names for one, and code doesn't really belong anywhere else in the system. Code is just that special.

David Anderson

Since on OS X Apache by default runs of this directory,

~/Sites/<project name>/

for websites. For other stuff, it usually starts out in

~/Desktop/<project name>/

for quick mockups/experiments, but may eventually be moved into


if useful, otherwise Trash.

All types of projects are checked into a company repository for work stuff or local /svn for personal projects.


Projects. Working copies.


Repositories. Local repositories.


Wikis. Personal TiddlyWiki for each project.


I keep working copies in ~/projects within category folders (eg. ~/projects/web or ~/projects/graphics).


I love this we are all just typing absolute paths from our hard drives. Genious.

I suggest you put them in a folder that relates to the sourcesafe database name.

So if you have 3 different repositories.

One for VB6, one if SVN and one is .NET you would end up with d:/VB6, d:/SVN and ..... D:/Net

+6  A: 


Michael Stum

I have special partition named P: with source files in directory P:\SVN and it is repository mirror in fact. Object files places in special partition O: to solve fragmentation problem (it is safe to format it when fragmentation too high).

Kirill V. Lyadvinsky
+13  A: 

I'm amazed at how much data that directory can hold!

Aaron F.
Yes, I'm joking.
Aaron F.
hahaha love it.
Nick Bedford


I'm a bit paranoid..


Since most of my developing is done professionally where we need to protect our code I use a truecrypt volume which I mount to let's say e:

If I change computer I can simply move one big file and I am done.

Daniel Persson
  • L:\Projects\
  • L:\Projects\Personal\
  • L:\Projects\Work\Job1\
  • ...

L: being mapped to my server.

+1  A: 

Naturally I store my code in a repository (I use SVN).

I tend to avoid using My Documents folders and the like after many "accidents" with roaming profiles. Instead, I have a separate hard drive partition for all my data. Since most files are small I run it in FAT32 so that other OSes on the machine can access these same files too.

My coding files are stored on D:\Projects\[Client Name]\[Project Name]\

Keeping everything stored on a partition also allows me to make quick copies for backup. XCOPY D:\*.* //backup/ couldn't be any easier.


C:\Work\ - for main project work (and then into SVN)

c:\Work\EXTERNALS - for opensource stuff downloaded from SVN repo's that I dont have write access to

Always been a habit from work to store stuff in a Work folder in the C drive, that way everyone knows exactly where it gets stored and what its about.


C:\dev on windows - the whole team (3) does this - it's useful if someone goes on holiday and forgets to check some stuff in - C:\dev is accessible from any logged in user but a users personal area (such as "My Documents") isn't. And before anyone bitches, I know people should strive not to miss out files when checking stuff in, but we are all human.




[root]\dev works for me.

If I have a D drive, that's where it goes. Otherwise, it's the C drive.


I put it in "My Documents \ Sources" and always keep two copies: one in the pendrive, another in my site / gmail. These last ones I do about once a week: use 7zip to make it smaller, put a password on it, and I'm done.


I flush the whole program from my brain to a single source file in a fell swoop of hysterical typing. I used to use butterflies, but found that process a tad too granola.


What is up with these colons in your file paths?

Unix/Linux/OS X users file paths could have been mentioned in your question.

/Users/josh/Development/(python,web,javascript,ruby,games)/(project name)/(project files)

It's way more convenient than a My Documents folder.

Josh Patton
Windows paths use colons: C:/somthing D:/somthing etc.
Just pointing out that *inx was not mentioned.
Josh Patton

D:\Projects and sometimes when i need to access it somewhere else i use skydrive


If you are on Windows, it's best to place your project in a folder which has a name of at most one word. Two words or more named folders can cause some issues if you are running a lot of open source languages and tools.

On Windows:


On Linux:


On Mac:


I use python_dev because I prototype a lot of scripts in Python. I use dev mostly for desktop applications. web_dev for any web applications across different languages and platforms.

Thierry Lam

D:\Work works for me.

That folder has individual sub-folders for each project I am working on. Projects involving multiple build targets (e.g., 4 x .dll, 1 x .exe, 1 x web) get a solution folder and then individual project folders.

I have been known to organize the Solution folder hierarchy as well. In fact, I once wrote a tool in .NET to generate solution folder hierarchies based on solution types.

One of my biggest pet peeves with Visual Studio is the damned \obj folder it keeps creating. I would like to give it a custom path so it matches the rest of the folder names.

I realize most of you would probably not care about folder names, but it helps me keep things organized.

Umar Farooq Khawaja
On a non-programming note, I recently used Tweak UI on Windows XP and removed the "My " from all items so that "My Computer" because "Computer", "My Documents" became "Documents" and so on.I think it looks much nicer :)
Umar Farooq Khawaja
+1  A: 

Here's my folder structure:

  • D:\Work\Dev\ - for projects
  • D:\Work\Docs - for various documents, documentation etc. not beloging inside projects
  • D:\Work\Tools\ - for programming tools and utilities
  • D:\Work\Kits\ - installer kits used for projects or tools
  • D:\Work\Samples - sample projects etc.
  • D:\Work\DataBases - database folder for sql server databases
Pop Catalin


+1  A: 

On Mac


On Windows


On Linux


(where reponame is the name of the source repository)


I used to use "My Documents", but it sometimes caused me problems because of the space in the directory name. I then switched to C:\dev\projects (for my code) and C:\dev\repository (for my maven repo).

Also note that a workaround for directory names with spaces is to use the short directory name instead. e.g. MyDocu~1 instead of "My Documents".

+1  A: 
  1. We all agree (well, almost), that storing your code on C: or in "My Documents" folder has some disadvantages. But... why not try to move the whole "My Documents" to D:\MD? This way you achieve two things: you are not storing your documents on system partition (it is crucial if you want to quickly restore system partition in case of some problems) and second is that path to all folders inside "My Documents" is now a little bit shorter (in case you need it yet shorter - try the "subst" command mentioned by someone in this thread.
  2. Repository - yup, this is very important. I personally have a locally set-up SVN repository (but recently I am using Git and Mercurial), but there is nothing that should stop you from using some online free service to host your code. My personal choice is projectlocker.com - just take a look and decide. There are many others, but this one offers private projects for free.
  3. If you do not want to store your files using some source-code hosting service: try to use some file storing service for it. The way Syncplicity.com is working seem to be ideal for such a task. Just select the folders which content should be automatically synchronized... and voila! There are many more similar service, just pick up one that fits your needs best (File synchronization services).
+1  A: 

Certainly not: C:\Documents and Settings\Administrator\Desktop\New Folder (3)\test

Ates Goral
haha- hope your not downloading anything malicious...1st your administrator.2nd, it's probably cluttered as anything.

Code working directory is c:\code\

Yeah, I know the C drive is controversial, but wait, theres more.......

Source control system is on the raid array in the box, which is R:\Subversion\Repositories\

Nick Haslam

I throw everything in a Code folder inside my Dropbox folder. That way as soon as the files are dropped they get uploaded to the cloud. That way I can resume working later from home without transporting anything.

I can't believe i just used the phrase 'the cloud'. Someone downvote this.


More interesting for linux users (Windows maybe as well) might be the question how many partitions you use and what filesystem you use. I've seen people use a separate partition for source code. Especially BSD users seem to can't get enough partitions. /home /swap /usr /boot you name it. So if you have many users on one PC but want to share projects a dedicated source code partition wouldn't be such a bad idea at all... But who shares a computer anyway...


Depends on the project, and the system I'm on. Source code is always checked into Subversion, which is hosted on my Dreamhost account so it's offsite.

If I'm working in Windows my web projects are checked out to:


In Linux, which is what I work with mostly these days, web projects are checked out to:


For non web based stuff it goes in:


  • /home/{username}/workspace/{projectname}/

  • /home/{username}/webapps/{projectname}/

  • /home/{username}/utilities/{type}/

  • /home/{username}/Desktop/ -> (yes, I know... it's a large scratchpad for solving quick stackoverflow questions, tempted to put a cron job on it to clear it every night.).

Using a linux system... all personal files are in my home folder. I don't usually keep stuff any lower than that.

For apache, I've created a virtualhost and a hostname that redirects cj.dev to it... inside a directory listing script... for previews.

On Windows:

C:/Documents and Settings/{username}/My Documents

  • /Programming (for experiments)
  • /workspace (for aptana projects)
  • /codejoust (for records... or notes, no code though).
+1  A: 

On a stack of punch cards.

C:\[project name]

I don't keep data on C at home, but I don't keep it in SVN at home either. My point being that there's never that much data to lose that I'd be worried at it. Everything that matters is also in SVN or on network drive. Besides, my work computer has no other drives.



(it's a subst)

Roman Plášil

git push everything to a nightly backed up server

Jim Zajkowski

I have MediaDrive:/dev/source/trunk for everything that isnt released MediaDrive:/dev/source/prv for anything that i want to keep but dont want it to be release just yet. (it should be called skr3tPrjs but i though prv is good enough) and finally MediaDrive:/dev/source/online for projects that has a repository that isnt my local pc.

I also have MediaDrive:/dev/external/<OSname or common> for external libs. And MediaDrive:/dev/repofor my repository. I also find MediaDrive:/dev/prjFiles/prjName to be useful to keep out bins from my svn folder. Its easier to archive code that way.

Yeah i code a lot lol.

Bonus: For permission reasons i sometimes need SomePath to exit so i make it point to a folder in my dev folder. I use Junction Points in that case. There is a very useful MS app i link to in a comment to this post. http://stackoverflow.com/questions/1315042/consistent-dev-path-on-windows/1315346#1315346


I keep projects under:

  • d:\[username]\proj1
  • d:\[username]\proj2
  • d:\[username]\...

with jonctions in d:\_ for projects on which I'm currently working e.g.

d:\_\proj1 links to d:\[username]\proj1

I maintain d:\_ for shortcuts and for projects having issues with some path patterns or length


i mostly do web projects, so:


this helps distinguish between my hobby projects and html mockups


D:\Workspaces\[client or uberproject]\[project]

and on MacOsx

/Users/MyUser/Workspaces/[client or uberproject]/[project]

all properly git'ed or svn'ed


I organize my local working copies by where they are kept under revision control:


etc. etc.


I use external Disc with TrueCrypt partition (mirrored with rsync after every commit) , and mount in ~/dev or x:\dev on windows like.



Using Visual Studio 2005/2008/2010 and TFS running on Windows XP (host) and Server 2008 (dev VM)

Dan Harris

I have mine on a server with source control (Mercurial). There I have them in C:/MyRepo/Projects. On my desktop computer I often use My Documents/Work or something for cloning the repos.

Karl Trumstedt