Git, for all that, cares not one whit about what your directory structure looks like. It can be infinitely nested, one flat broad file space in a single directory, or whatever. It doesn't care if you have symlinks pointing at files between directories, it doesn't even particularly care if you have symlinks pointing outside the project tree.
It also doesn't care at all what language the files are written in, or whether they are programs, data, images, etc.
GIT DON'T CARE. Git is a honey badger in that regard.
The only caveat here, if a directory is empty, Git won't pick it up to add to the repo. This is why you see so many bare directories except for a .gitkeep file. The name of this file matters not to Git, it's just a convention adopted by us Gits. :)
So, organize your project however makes sense to you. The only major conventions that seem to go across the board are having a readme and license file in the project root. Your project's particular environment may require more, but then we're getting into more specifics.
Again, GIT DON'T CARE.
Now, to address your specific question: Just make a repo for each project; Git, nor Github, care:
YOUR MACHINE:
/Code
/Python
/pycoolstuff
/.git/
/.gitignore
/pymorecoolstuff
/.git/
/.gitignore
/Java
/enterpriseTiddlyWinks
/.git/
/.gitignore
/Ruby
/Rails
/RecipeApp
/.git/
/.gitignore
/Sinatra
/comicservice
/.git/
/.gitignore
Meanwhile, over on github, you just have these projects as individual repo depots:
github.com/imacoder/comicservice
github.com/imacoder/pycoolstuff
github.com/imacoder/pymorecoolstuff
github.com/imacoder/enterpriseTiddlyWinks
github.com/imacoder/RecipeApp
The instructions for dealing with existing local repo after you make your Github repo are right there on the post-creation page you get from Github:
On local machine:
$ cd /Code/Python/new_project
$ git add --all -v # assuming you do know you want everything checked in
$ git commit -m 'some message'
$ git remote add origin [email protected]:imacoder/new_project
(If you had Github create the README and/or .gitignore (I never do this))
$ git pull origin master
(Fix any merge conflicts)
$ git push origin master
Boom-de-yada! Everything is up on Github.
/Code/Python/project_1
,/Code/Python/project_2
, and/Code/Java/project_3
all existing in the repository checked out at/Code
... – Izkata Jun 12 '13 at 2:32