What I learned from 35 Hackathons

on Dragoș Străinu's blog

Update: Now count is at 54 Hackathons

What is a Hackathon

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.

My story

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.

Types of Hackathons

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.

1. Competitive programming hackathons

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.

2. Community hackathons (my favorite)

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).

3. Startup hackathons

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.

Main points:

  • The Problem (some problem that you and preferably a lot of people faces)
  • The Solution (your innovative solution that will change people lives)
  • Competitors
  • Business plan (v0 of your path to success)

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.

From 0 to 30+ Hackathons

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.

Conclusion

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😉.