My Development Folder Structure
This document contains my personal opinions and preferences. Everyone sets up their development environment differently, and this is how I setup the folders in mine. If you have any suggestions feel free to email me (bottom of page) or hunt me down and stalk me (please don't unless you're a rich attractive smart female, then by all means stalk me. Ps: oxford comma girls only. Pps: I'm INTJ)
I believe it is important to keep your projects, code samples, notes, pdfs, books, etc organized. This structure will make everything easier to find, and with most folders only being 4-5 characters long the folder paths don't get too long and unruly. The way I have organized everything makes it convenient to copy info on a certain subject to someone, and you can easily exclude your projects or learning materials.
With a simple to remember and short folder,
code at the root of your home folder, or C: drive, it is easy to access from the terminal and from editors.
I have tried other organizational structures and found this to suit me well. Organizing first by type (books, code, proj) then by language was an absolute disaster for me, never will I do that again. I can only tell you what works for me, and maybe it will work for you or maybe it will inspire you to make a system that works better for you.
The first thing I do is setup my folder structure. I usually place this in
~/code/ for linux and
c:\code for Windows. In this code folder I create folders for each language I frequently develop in, and a generic
tech folder for misc items. A folder for unsorted items can come in handy when you are frequently downloading material from the internet.
For languages (create each when needed):
- books - for storing ebooks
- code - code samples
- docs - documentation, pdf's, websites
- learn - a folder to keep notes and projects related to learning a new language, sometimes this is not needed but can be very useful to separate learning material from good reference material
- notes - your own personal notes, usually text documents
- proj - where all of your projects for that language are stored
- tools - useful tooling, either downloaded or executables from your own projects
code coding - misc tech/coding stuff db - database related documents organized by database datasets - collections of various datasets, passwords, corpi, and other useful collections of information mysql books code docs notes nosql couchdb books code docs notes mongodb books code docs notes postgresql books code docs notes haskell books code docs learn notes proj js books code docs notes proj python books code docs notes proj rust books code docs notes proj tools scala books code docs notes proj ts books code docs learn notes proj unsorted