Hackathon - a usually competitive event in which people work in groups on software or hardware projects, with the goal of creating a functioning product by the end of the event.
In my first year at university, I participated in my first hackathon. My team and I created Fracfik, a game that will help children learn fraction operations. We didn't win but at that hackathon, I finished a project that I could add to my resume when applying to internships/jobs. I was mentored by experienced people, collected feedback, listen to advice and explored people's behavior. I learned some good practices about coding and software engineering. In the end I gained a lot of friends and connections in software engineering community.
I enjoyed the experience at that hackathon and understood that hackathons will boost my hard and soft skills, will open new opportunities and will make me a better software engineer and person.
In 4.5 years I participated at 35 Hackathons (I wish it was more). I developed front-end/back-end/mobile apps and games. Wrote code in 6+ programming languages. Pitched ideas, led teams, mentored people. Collected 20+ t-shirts, won tech gears, and startup investments.
Not all hackathons are the same. Some are organized for programming geeks other for businesspeople mostly. From my experience, I divide hackathons into 3 types.
Traditional competitive programming events defer from hackathons because at former you work alone and at latter, you work in a team. This type of hackathons is usually based on some problems that need to be solved by implementing an algorithm. Usually, no user interface needed, everything is based on input/output files. The team that gained most points win. Points may be based on performance, used memory, passed tests. Prices may be internships at big tech companies, or university stipends.
Usually, this type of hackathons is organized by universities, companies, programming communities. The primary goal is to have fun, create connections, learn new skills, teach newbies, explore new technologies. Even if there is some competition, usually teams are helping each other. The secondary goal is to create something useful, like UI for visualization of complex data, or solving day to day problems, like automating some simple processes. For this kind of hackathons not only programmers are involved but also graphic designers, data analytics, and others. Someone can work on code implementation, others on data collection, others on presentation/pitching. This is my favorite because of (see the primary goal).
Events like "Startup Weekend" are the most stressful type of hackathons. Teams are brainstorming ideas that may have a potential success. The goal is to prepare and present a 5-minute pitch/presentation with a prototype or a MVP.
At Startup hackathons, there is no need for a team full of programmers. 1-2 programmers per team are sufficient, the rest should be salespeople, designers, public speakers and people that are professionals in the domain of startup ideas. The winning price is usually the first investment in the startup and also mentorship from accelerators. If you are a programmer looking to improve your technical skills at Startup hackathons, be ready to lose a lot because while you will spend 20+ hours trying to learn and debug a new technology (or a CSS layout bug), The team with no programmers and only public speakers will blow judges' minds with a mockup on some slides.
Good parts of Startup hackathons for programmers (and not only) are the possibility to increase your soft skills. After 3+ failed hackathons you understand that you should start preparing the pitch not 2 hours before the final presentation, but even before writing any code.
At the beginning, you are scared because there are a lot of people around that are talking about unknown things. You are looking for guidance and trying to learn new things quickly. Hackathons motivate you to do more work in 24 hours that in the last month at home. When winning you are enthusiastic and feel like a superhero. When losing you are desperate and feel like shit.
Soon you understand that it's an opportunity to create new connections. Reunite with other hackathon enthusiasts. Enjoy the free presentations, free food, gifts. You don't care so much about winning and enjoy the hackathon as a whole. You start changing your roles in the team. Last time you were coding, this time you are preparing and pitching the idea. Make fun/stupid/quick projects that can be delivered in 24 hours like Spacebook.
Later you are more motivated in mentoring newbies and showing them the value of the hackathons. Maybe become a mentor or a judge. Or join a team to help them promote their idea or learn new stuff. Speak with organizers, give feedback, propose ideas for future events.
Hackathons are not mandatory to become a successful programmer, but they help you to achieve this goal faster. Why wouldn't you accept the opportunity to bust all your skills for free? Don't give up if you didn't like your first hackathon experience. Participate in another one, learn from mistakes from previous. Feel and enjoy the spirit of competition.
See you at the next hackathon😉.