2

So I've decided to start a personal programming project just to try and to improve my programming skills and improve my abilities to organize myself better.

The problem is I've only worked on small assignments so far, at most a few classes (the files of course) per project in Java. We covered inheritance and basic data structures (linked list & stack) in my previous winter semester and am currently taking Data Structures & Algorithms and Advanced Program Design with C++. I intend to do the project in C++ since it'll help me out with the course.

This means I don't have experience organizing a larger project and all it entails. I would love some general advice related to what I've already discussed. I don't have a project idea yet, which I know would help this out a lot.

One thing in particular I'm concerned about is backup, since it would keep my project safe as well as the ability to access from other machines. I've been using Dropbox for my homework for all my courses for a while, but after hearing about their privacy issues I don't really want to put anything important on it. What's a good service for backing up code privately and securely, but so that I can still work on it without constantly redownloading just to unencrypt. Or should I even bother with that and just make it open source? Either way it would be good if the solution were preferably free or very cheap.

In either case I was thinking about trying some sort of version management, but once again I know very little to nothing about it. I was thinking of using NetBeans since it works with everything I need for school so I may as well use it for this as well, so the version management should work with it. Also my preferred operating system is Windows 7 64-bit.

I've heard good things about Git but apparently NetBeans only works with a local Git repository so I'm not sure how well that would work with an online repository.

Also, a quick question on versioning: should the program be in some sort of working state before even uploading it to the version management system, be it on an open source site or not?

I know I'm asking a lot and I bet there are even more things I could ask. I'm looking for as much advice as I can get because I really feel like I have no idea what I'm doing or getting myself into.

Edit: Of course the code should be able to be worked on while offline, when I take the train home for example.

bmargulies
  • 97,814
  • 39
  • 186
  • 310
Portaljacker
  • 3,102
  • 5
  • 25
  • 33
  • 2
    Two words 'SVN' and 'Google Code' . Okay three words .. and have mercy this is not New York times do not write long articles that no one will read. – Shahzeb Sep 23 '11 at 05:33
  • 1
    simplest/safest(?): just get a USB thumb drive which you carry with you wherever you go. – AndersK Sep 23 '11 at 05:49

2 Answers2

2

You can take a look at Bitbucket (https://bitbucket.org/) on which you can host public and private repositories (with Mercurial). For your concerns about getting something to a working state before uploading, this is not important. If it's a new project, it's totally normal to have nothing working for some times.

Marc Plano-Lesay
  • 6,808
  • 10
  • 44
  • 75
2

Since NetBeans7.0.1 (according to the Plan for Git support), NetBeans supports pull/push operation to/from a remote Git repo.
So you can use it with:

You don't need to have a stable project when you check-in with a DVCS (Git or Mercurial) because you are committing only in your local repo. And if you are publishing on a backup repo (like your USB key), it doesn't matter.
Those intermediate commits are called "checkpoint commits": see "git newbie question - Commit style: Commit all changed files at once or one at a time?"

But if you are publishing on a public repo (than other can clone), then it is best to clean your history of commits first.

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Chose your answer, since it fits my question best. But I did go with @Kernald 's answer for what I'll actually do, it also seems I can post to github with mercurial. – Portaljacker Sep 26 '11 at 18:50