"Let's just make something we can deploy." This was our goal going into DevelopHer, our first hackathon. By Laura Kelly & Andrée Brazeau (Students, Hackstar Academy)
We're new to programming - we're both currently students at Hackbright Academy, a 10-week full-time, intensive web development program for women. We heard about DevelopHer through our instructor, so when Andree came up with the idea to build MuniMobile, an application that would send you scheduled, real-time notifications when a bus is approaching your stop, we hesitantly decided to go for it.
Despite being beginners and completely new to hackathons, we ended up winning 2nd place at DevelopHer hackathon.
- We picked a reachable goal for our skillsets but found a task that would require enough new knowledge to keep us interested. Since our goal was to build a fully functional app that we could deploy, we picked an idea that actually benefitted from simplicity.No one wants to use a complicated application loaded with features to schedule reminders for their bus - they want something that's easy to understand and reliable. We didn't know exactly how we'd implement everything, but we knew that the main goal of the application was within our grasp. We didn't bite off more than we could chew.
- We thought out what we would need to learn to build the application and made sure we could learn those new things within the hackathon timeframe. We knew we'd have to learn more about Twilio, databases, deploying on Heroku, and how to keep an application constantly querying a database. The latter was the thing we knew absolutely nothing about, so after a hot tip from our instructor we did some research on cron jobs.
We learned that every Unix-based computer has something called a crontab, a place where you can specify that your computer do something at a scheduled time (like doing a backup every month or emptying your trash bin once a week). We learned that we could have a computer hit a specific URL every minute with a cron job, so we made a function that would query our database for users to text every time the crontab hit a specific URL.
- We identified what we didn’t have time to learn and found a team member to fill in the gaps. Although we were both confident that our knowledge of Python, Django, and databases was enough to figure out how to build the back-end of the application, neither of us had much prior experience with front-end so we decided early on to try and find a third person to join our team, which touches on our next point...
Since Muni busses aren't always on time, we first searched for an API that would allow us to access real-time information - NextBus. When we discovered NextBus used XML - a language we had no experience with, we found a Python wrapper for the API on Github so we wouldn't have to waste time learning a totally new language. Using Twilio, Django, and Heroku - tools that have a reputation for ease of use - also helped us complete our project by our hackathon deadline.
When we signed up for DevelopHer, we both felt intimidated at the thought of attending a hackathon as people who are new to programming, but we ended up leaving the hackathon with a functional, deployed app and the realization that it’s completely within a beginner programmer’s grasp to win a hackathon. We had a great time building the app and we learned a ton about programming, so we hope our experience will encourage more beginners to go to hackathons (and win!).
Editor's note: Got a question for our guest blogger? Leave a message in the comments below.
About the guest blogger: Laura Kelly is a student at Hackbright Academy. After graduating from Washington University in St. Louis with a degree in philosophy-neuroscience-psychology, she worked as a neuroscience researcher at UC Davis. She discovered she had a passion for programming after learning Python for data analysis, and is currently pursuing a career in web development. Follow her on Twitter at @heylaurakelly.
About the guest blogger: Andrée Brazeau is a student at Hackbright Academy. She graduated from Laval University (Québec, Canada) with a bachelor degree in mechanical engineering. She moved to San Francisco to jump in the software industry and to learn programming. When she is not busy working on her website or on any other projects, she goes at meetup to learn new things and meet peoples or she stays at home and cooks. Follow her on Twitter at @ddbraz.