The NASA Hackathon
So, this weekend was the “NASA SpaceApp hackathon”, and we won the first round. But I see you coming with your questions, so let me attempt to explain?.
What is a hackathon ?
A Hackathon is a “code contest”. The idea is that you are given an amount of time (most of the time 1-2 days), and themes/challenges. From that, you make teams with the people you can find, and you have to build something. At the end of the timer, a panel of judge selects the winner/winners.What is NASA Spaceapp?
The NASA is … NASA, the National Aeronautics and Space Administration, or in easier words : The American government department that manages Space research. They put Mr Armstrong on the moon in 1969, they helped a lot sending the International Space Station in space, they are the one that give you these images of Mars, and are one of the only agency in the world that, when they miscalculate, end up having a robot battery and communication lasting much longer than expected! (It’s usually the opposite… isn’t it?)
SpaceApp is a part of a program to encourage innovation in that domain. It is an incubator, so a center for innovators to build new projects, and it was hosting this hackathon this weekend. This one was organized in 90 cities in the world!What was the theme?
Space of course! If you check the SpaceApp website, you can see a list of challenges. One group had to pick one, and make something to complete it. In every location, they added small local challenges too. So we went for one of them.What about your team? Your challenge?
Our team was : Anne, Harry, Matthew and me from the Banana Slugs 2014, Matt Higgins from the Sea Lions (the previous cohort), and Roman, a web developer.
We chose to work on the Alert! Alert! challenge. Basically, we had to build a way to monitor some space events from the ground.
We also went for a local challenge with Pebble, a smart watch. If we were to be the best implementation of the Pebble app in our challenge, we were to all win a Pebble watch!So what did you decide to do?
Our project is an alert system, on the Pebble and on a site, that warns you when one of the 40 biggest space objects we could find is around you. It tells you which one is, and if visible, gives you a direction to look at.How did you do it?
Well, first, the Pebble has a whole interface in C. None of us knew C. They are pushing a Javascript part of the SDK(Development Kit), which is a language we actually know, but definitely not in this context, getting info about space objects, using them, and making things happen on a watch with that data…
In the end, we have a (more or less) clear code, 2 versions on the Pebble store, and a working app. We discovered C, I spent a good amount of time on Sunday having “fun”(C Coder will understand) with Strings, Static variables, … Good fun.And so… in the end… ?
In the end, we f*cking won! The judges from famous companies around here like Twitter or Pivotal voted for us, and you can see there : SpaceApp SF that we were selected for “Best Use of Hardware”.
We won Pebble watches, we have our app, and judges from NASA will actually compare us with other groups in the world.And your thoughts?
I think we really rocked. We had never touched the watch, never coded for hardware, never coded Javascript like that, or played with such strong limitations as those of smart watches… And yet, we had a fully working app on the given hour, released on the store even, we won, and we did not feel stuck at any time during the whole thing. And all that almost only with DBC grads! For me, it is a HUGE win.
I have close to no hope about the next step, seeing that people we’re competing against teams built augmented reality but at least, we got this done and I’m happy about it.
Languages
So, with this hackathon, one of the things I realized was that… I almost don’t care about languages anymore. We did not know C, I still don’t know it, but I coded in this language, refactored, and will keep on doing it, after a 2 days stretch.
People tend to think that languages are REALLY different and that if you know one, learning another is going to be a real pain… Well, guess what, it is not!
If I had to picture it I would say:
Ok, you are mandated to compile data about a city, as much as you could. You would do it, it would take a lot of time to figure out what data to get, where to get it, how to compile it, etc…
Then when you’re done, you’re asked to do that with the next town. You don’t have to learn how to compile it, what data to get is still a bit tricky, and you are having less trouble with where to get it.
Now they give you a new one to do. You know where to go, you will probably have a list of pieces of data you want to look for, because you got used to it, and things are most likely kind of where they were in the other towns, right?
Well, learning coding languages is pretty much the same. The first one is painful and you have no clue what you’re doing. And the next one may be the furthest “city in the country”, to take that example again, but you know a bit about what to look for, where to go, what to get. And the more you do it, the more you realize that it’s actually pretty easy!
That was probably a bad example but I hope you got it ;)
Now, I do feel comfortable in Java, still, Ruby, Rails, Javascript, Python, and am getting used to some C. How cool is that!!
Job searching again
Well, I don’t have a job. I find it funny that big company do not really care much about you unless they can see either a huge professional experience, or a very good school degree…
And the small companies do value the stuff you build, but then they don’t have the resources to hire many foreigners.
In a way, I do understand all of them… But then, I am exactly the one stat slips through the cracks of that system. And now, I am looking for companies that would actually look at me, but then could also hire me…
That, people, is hard.
So far, nothing really interesting happened on that… I hope I can end up getting some info before I have to go back, at least on what I can join, when, and what I would need to do to be sure to be hirable.
I am not afraid of going back, or that I might not get anything. But sometimes, you just want to be told something. You want to be told you’re going the right way, or the wrong way.
You will eventually find out, but if you could find out before… things would be much easier.
Anyway, back to job searching, while trying to do fun stuff with code… See you guys next week! (or maybe earlier if I find things to talk about…)