This page exists as my soapbox for listing various resources I recommend (along with some I don’t, but I believe in options, so…)
Take everything with a grain of salt and understand that there are other tools out there, this is just a starting point for these things
Version control
Tracks versions of your code, and facilitates development in teams. Check here for why you should use this.
There are several version control systems out there, pick one, and stick with it.
Git
A distributed source code management system.
- The official site
- Git for compsci - a quick explanation about how git works internally
- Git GUI Clients a good list of GUI clients for all platforms
SVN
SVN is a centralized source code management system. I wouldn’t recommend using SVN, but there are enough OSS projects that use it that it’s worth mentioning
- TortoiseSVN - really good gui for windows
- Subclipse - eclipse plugin
Build automation
anything that automates building your software. Check here for why you should use this.
Apache Ant
Comes built-in to Eclipse. Fairly powerful, but extremely verbose at times.
- Official Site - Ant Official Site
Maven
Dependency management
When you start to build more complicated projects, you’ll start using 3rd party libraries. These tools are used to automatically download and set up those dependencies, so a new developer can join your team quickly (or if you get a new computer…)
- Maven Repository - Search for dependencies
Ivy
From the Apache Ant team. Ivy is fairly powerful, but by the point you’re using this, it’s usually a small step to migrate to Maven.
- Official Site
- IvyDE - Eclipse plugin
Maven
Maven does a lot more than just dependency management, but you’ll pick up on those differences quickly enough.
Hosting
Everyone needs hosting at some point. The good news is that there are literally thousands of hosting services out there. The bad news is that most of them are horrible.
Shared Hosting
Shared hosting is where you share a server with other customers. This is the cheapest form of hosting, but also the most restrictive. Often, you won’t have access to recent versions of software, if at all.
- Green Geeks - They offer dirt cheap shared hosting with good support. I use them.
- A2Hosting - Extremely similar to GreenGeeks. I use them.
SaaS
SaaS services offer a specific application and only that application for you. For example, a hosting service that offers Git repository hosting is SaaS.
SCM
- Git Enterprise - a free place to host git repos. I use them.
- GitHub - free git repo hosting for open source projects. I use this, and share several projects.
- Assembla - free hosting for repos. I haven’t used them.
- Unfuddle - another place offering free hosting for repos. I haven’t used them
- Project Locker - Free hosting for small projects (3 users tops)