A hackathon is a gathering where programmers collaboratively code in an extreme manner over a short period of time. While working on a particular project, the idea is for each developer to have the ability and freedom to work on whatever he/she wants.
The goal of a hackathon is to create usable software or hardware with the goal of creating a functioning product by the end of the event. Hackathons tend to have a specific focus, which can include the programming language used, the operating system, an application, an API, or the subject and the demographic group of the programmers. In other cases, there is no restriction on the type of software being created.
A hackathon is also known as a hackfest or hack day.