Yesterday (25.10.2014) I have attended a local NoSQL Hackathon. The event was hosted by PGS Software. It started at 9:00 and took a bit less then 9 hours to program a sample version if a twitter-like website.
What was my goal?
I'm considering attending is such an event if I can benefit from it. This time my goal was to understand how NoSQL databases work in the .NET world. We used DynamoDB and it turned out that there is a nice database provided to utilize it. The biggest problem for our (and not only our) team was to change how we think about data modelling in NoSQL databases. After a while of learning and playing with DynamoDB it turned out to be really handy stuff. Of course, applied to a certain type of problems.
I'm glad and happy that our team (3 members of WrocNET group) had complementary skills to make a twitter-like app prototype. We didn't prepare as such to the Hackathon and I was not aware that any other WrocNET member will actually participate in this event. Additionally, none of us had used NoSQL databases before (as far as I know) and we managed to use .NET Low-Level API to use DynamoDB.
We used Visual Studio, C#, nancyfx, DynamoDB and GIT. The code does not look that bad. It's probably obvious that the GUI part sucks :), but that was not the goal here. I wouldn't take commit messages to serious or trustworthy either :) But according to hackathon definition we had exactly a hackathon :)
Here few words about the event's organizers. There was a tutorial prepared by them for the event and I have to admit it was really useful. Smooth introduction what to install, run locally and use DynamoDB. for the first 30 min. we had a brief presentation about NoSQL. HashKeys, RangeKeys and so on. There were snacks and coffee available all the time. Pizza-lunch during the break.
But, the crucial thing was that there was always a NoSQL specialist around, so we could ask if we were not sure if we do particular things right in NoSQL database.
I think that attending hackathons can boost your development skills in a short time. Some can say that sacrificing a whole day to program yet another app is a waste of time. It may be true, but more important is to sharpen the saw continuously. Especially if this is not only your work but passion, hobby and fanaticism.