10 Hackathons  What is a hackathon? It actually has nothing to do with the nefarious ”hacking” you see in movies. It is an event where a bunch of people get together, form groups, and try to build something within a certain amount of time (usually 24-48 hours). I’ve been to, and have run, quite a few hackathons over the last four years and I would like to share some of what I have learned and make an argument here for why attending these types of events might be beneficial to you. Every time I attend a hackathon, it feels like I am getting a month’s worth of learning, all crammed into a day or two. Yes, it can be long and tiring but the experience can pay dividends. On top of that, I’ve connected with some amazing people, built some cool projects (most of my portfolio outside of work), and incorporated a company. All of this has really helped to boost my career as a pro- grammer.  Types of Hackathons There are many different types of hackathons, but they all have several things in common: Time limit : usually between 24 and 48 hours Theme : organizers will ask that you build a certain type of application (like Internet-of-Things) or they’ll tell you to use a certain technology Prizes : generally awarded for the best overall applications and for apps that fit into certain categories or use a certain technology In most cases, there is plenty of information online about the rules, judging, technologies, etc. It doesn’t take long to read about the event and avoid surprises when you get there. Quite a few hackathons are only for college students, and in those cases adults can sometimes attend as mentors, but not participants. Several hackathons I have been to have even had a Q&A or panel discussion at the beginning to talk about what they were look- ing for in app submissions. Some also have online boards so you can team up and get to know other participants prior to the event. Meeting staff and participants early on can help ease any social anxiety and give you a confidence boost.  Why should you go? I already mentioned some reasons but here is an overview: 1.Networking : This is a given. I’ve met politicians, business people, developers, designers, and plenty of rockstars (figuratively, of course 😊) at these events. I’m shy, but I force myself to get out and meet at least a few people each time. I’ve never regretted meeting someone at a hack! 2.Portfolio : I have several solid, well-designed portfolio pieces that came out of hackathons. Some companies have talked to me because they liked what I built at one. Make sure you get on a team where you think you will fit in well and try to work on an idea you are passionate about, or at least very interested in. Having a designer on the team is super helpful, but I always try to look at some design inspiration before I go so I can whip up a layout and design doc if necessary. I think it is good to treat every project as a potential portfolio app. 3.Confidence : I have found it surprisingly common that new developers think their skills are sub-par and that they will not be able to make meaningful contributions to a team. Plenty of non-technical people are needed at these events and even people who want to code but only know HTML or CSS can help on a team. 4.Teamwork : The importance of learning to work with other developers when you are new cannot be overstated. You learn to partition tasks, share a codebase, and get along in a stressful environment. Sometimes apps crash and things do not work out, or you or your teammate will feel tired or frustrated by the end of it. Going through this experience together forces you to learn how to work together through the good and the bad as a team. 5.Communication Skills : As a good teammate, you should always be talking to your group. “I just pushed code, can you pull.” “I’m working on this…” “How are you doing with that?” “You seem frustrated, let’s take a walk and get some fresh air.” It forces you be open and explicit about what you are thinking and doing. More importantly, it makes you think about what’s going on around you and how your teammates are doing. Your communication skills will improve! 6.Learning New Tech Skills : It is hard to set aside time to constantly improve your skills and start dreaming up and building new applications. You will most likely be forced to use technologies that you have never used before: because your team will bring different skills and levels of experience to the table, and because the project you end up working on will probably require you to try something new. 7.Experience the Lifecycle of a Project: You will generally be planning, designing, building, and iterating on your app to achieve an MVP (minimum viable product). This can give you a glimpse of what the whole software development cycle will look like on a small scale. Going through this process can give you a head start – and a boost of confidence – at your first job.  What to expect Expect the unexpected. Things will go wrong with your code. Venues will be overly loud or surprisingly cold. You may need to pivot on your idea after you have already started working on it. Whatever the source of stress is, remember to take a deep breath and stay flexible. The best thing you can do is to prepare as much as you can. Most hackathons (if they are 24+ hours) expect some participants stay overnight and they will have some couches to crash on. Even if I live close, I usually do not end up going home to sleep because I know I will sleep longer than intended. If you do want to go home for the night or just need a break, do not feel pressured into staying just because the rest of your team is. You have to take care of your needs first. In preparation for staying up very late (or overnight) it is not a bad idea to bring extra warm clothes, a blanket and pillow (or, bet- ter, a sleeping bag), snacks, and energy beverages (most hackathons will supply sodas, energy drinks, coffee, and snacks – just make sure to find out before you go). Before you leave your house, check and make sure you have extra headphones, chargers, and all the devices you are going to need as well as daily items that you use. With a little planning, I am much more productive and end up hav- ing more fun (and getting more sleep!). To prepare for the technical aspects of the event, make sure you have read the rules and know what technologies are required and/or allowed. If you are new to coding, do not worry too much about knowing everything and do not feel like you are under- qualified to attend. Teams need many different skillsets beyond just writing code – e.g. ideation, business and marketing, research, public speaking, and design, just to name a few. If you want to overprepare for the coding part, knowing how to use generators or starter-kits can be a huge advantage going in. Sometimes it can take a long time to set up an application’s codebase and using these kinds of shortcuts can prevent a lot of headaches and wasted time. It also allows you to do more actual coding without beating your head against a wall getting things set up from scratch. The less complicated your code is, the better: time is at a premium during these events and other people of various skill levels will likely be jumping in and coding with you. Plain old HTML, CSS, and JavaScript files are just fine. As long as your app works, everything else can be improved upon later. Forego anything that isn’t important to demoing the core functionality of your app. Login screens, cool animations, about pages; they can all be added later on if you decide to keep working on the project post-hackathon. A note about building mobile apps: If you want to do an ambitious mobile app, that’s great — as long as you are considering the time that it takes to set up Android Studio or Xcode and get all of the emulators up and running or devices working on whatever wifi they might have at that venue. I’ve done web, mobile, IoT, and cloud projects at hackathons and web apps are by far the fastest for me to set up and start building. If you do want to build a mobile app, it is probably best to use something that can run in a browser (like Cordova) so everyone on the team can easily contribute.  Finding the Right Hackathon The best hackathons in my experience are civic and community-minded ones. If you live in the United States, many states host these types of events to try to come up with solutions to local problems like poverty, pollution, or nutrition. It is amazing to see ran- dom people come together and passionately work on something that could change lives. There are other hackathons that are spon- sored by companies or organizations, and, like many sponsored events, may have a financial interest. Make sure if you go to one of those that you have done your research about the event and know for certain that your team will own the rights to what you worked on or be compensated appropriately for it. Some of my favorite hackathons are Give Camp, Start-up Weekend, and Civic-minded local hacks. Most of these are free, or have a small fee to cover the costs of food and supplies. For more hackathon ideas, please see the resources for this book at gwenfaraday.com/learn-to-code-book.  Conclusion If you can work it into your schedule, it is definitely worth it to attend a hackathon. Remember not to stress about perfection, it is all about learning and creating, with some friendly competition on the side. Action Steps:  1.Research and sign up for a hackathon. 2.Attend the hackathon. 3.Write about your experience. Be sure to let me know by tweeting @faradayacademy.