GoCode is a hackathon/app competition put on by the State of Colorado. The challenge this year is for teams to build an app that helps “businesses build a competitive strategy” while also using a Colorado open dataset. Rather than limiting the dev time to the traditional all-nighter weekend, teams have many months to build their apps/businesses.
Our speciality lies in the technology training and learning space. In addition to our mentoring day, we want to provide some resources GoCode participants or other hackathon participants could use to build their apps.
Which technologies get used most at hackathons?
For this, we turn to the awesome Devpost Student Hacker Report. They gathered data on the different technologies used across 160 hackathons. This is a fairly solid proxy for technologies people use to build apps quickly.
Learning the Tools Quickly
As much as we’d like to make a 10000 word mega-post on every technology on there, we’re going to stick with these:
- Top 3 Languages
- Top 3 Frameworks
- Top 3 Databases
- Top 3 Backends as a service (BaaS)
- Top 5 Skeletons and Boilerplates
These are arguably the core to building apps quickly. We’ll cover backends as a service because they are much faster to prototype with.
Top 3 languages
HTML and CSS
HTML and CSS are the foundation of every webpage and many mobile apps They are actually markup languages vs. programming languages. Knowing how to use them is key for building apps.
There is no shortage of excellent HTML/CSS tutorials out there. These are the best for quickly picking up things quickly:
This is the resource on most web languages, including HTML/CSS. Mozilla’s doc are thorough but still easy to read.
Shay Howe’s tone of voice, design, and layout/design make his tutorials easy to read or skim for picking up the basics.
Tip: Few developers are going to write much HTML/CSS from scratch. For prototyping quickly, use a framework like Bootstrap or Foundation. They come loaded with ready made components and styles for building the majority of app features. UIkit is another front-end framework for mobile apps that has gained a lot of traction quickly.
The resource for diving deep into anything the previous resources can’t cover well enough.
Python is an object-oriented language that came out in the mid-90s. Python is one of the most beloved languages in wide use today. Python is used in everything from web application development to astronomy to data crunching and many other industries and fields. Flask and Django are the two most popular frame works for web application building with Python.
Free eBook that covers nearly all parts of Python syntax. Has books for 2.x and 3.x.
Recipes for common Python tasks.
Top 3 frameworks
A github repo that covers all the essentials of Node in one long page.
Flask is a web framework written in Python. Flask started out in Django’s Shadow but has quickly become a very well-regarded and commonly used framework both for hackathons and production apps.
Massive tutorial that covers all the essentials of the Flask framework.
Best practices (and example code) for building Flask apps.
AngularJS gained popularity rapidly in 2013 and is still gaining as of 2016. Angular is going to undergo some major changes with Angular 2 but Angular 1 will still be maintained. There are tons of powerful libraries, projects, and example code that developers can use to prototype and build apps quickly. Angular might not be as sexy as it once was but it’s still an awesome tool for many use cases.
Simple and clear examples of Angular in action.
A well-curated curriculum on free resources for learning Angular.
Developer Dan Wahlin is easy to listen to and understand in this well-done short video on Angular basics.
A very nicely condensed tutorial.
Top 3 Backends as a Service (BaaS)
Parse was a mobile backend as a tutorial that Facebook acquired and later shutdown. In an effort to be kind to their users, they created the open-source Parse Server that does what Parse did.
Parse allows you to have a backend with a lot less work. You can save user data, preferences, and state of an application without having to know so much about servers and middleware. Parse’s speciality was push notifications. Mozilla offers an open source parse alternative called Kinto.
Firebase is a BaaS that is now owned by Google. Firebase is a json storage database that syncs with the state of your app. Think of it as a json file that syncs in real-time. This allows developers to easily store and retrieve data by calling simple methods (via a REST api). Firebase has libraries to allow developers to incorporate it easily with Angular or similar frameworks.
Firebase’ own tutorials/docs are well done for starting out.
Long free tutorial covers all the basic operations of Firebase.
Most popular Meteor tutorials end up getting put here by the awesome Eric Douglas.
Top 5 Skeletons and Boilerplate Projects
230+ Github stars and still being maintained (as of early 2016).
Mongo-Express-Angular-Node boilerplate for building apps. 8500+ Github stars and still being maintained (as of early 2016).
Angular + Firebase. Angular directives and methods designed specifically to work with Firebase. This allows for much of the functionality of the MEAN stack but with just the A (Angular) part plus Firebase. This is a very quick way to add a backend to an Angular app.
Django skeleton project that allows for easy plug and play of various popular APIs (e.g. Yelp, Instagram).
A boilerplate for Node.js web applications. Features easy installation and use of APIs, font awesome, bootstrap, and many other powerful/popular libraries used in prototyping.
There’s a ton of information in here and a ton of different learning resources. We hope this helps you build your prototype more quickly and win code GoCode or another hackathon.