--
Hackathons may or may not be for you. Try it once. Don't stay the whole time if you don't want. If they aren't for you, don't go again. If they are, great, have an awesome time.
--
For some reason, they're touted as this end-all be-all social event that if you don't go to YOU ARE MISSING OUT AND YOU WILL NEVER RECOVER. As many people posted here, the situation's combination of adrenaline and seratonin depletion gets people into some pretty seriously fucked mental states that causes odd group dynamics. Some will thrive on this. Some hate it.
Case in point: I grew up in the rural midwest, but had computers. So computers are something I deal best with in situations with little to no people around. Hackathons are the opposite of that. Took me like, 2 attendances to realize that, and now I just avoid them. Hell, I even avoid career situations that put me in that environment, because I don't work well there.
Not to say I haven't pulled some insanely stupid hours in my time, but I still even did most of those alone, and I'll continue to do so.
Sounds familiar. I think there's basically two types of developers (and people): extroverts and introverts. Hackathons, 'social' coding, pair programming and whatnots are for the extroverted category; external stimulation (in the form of other people, the ability to bounce ideas off of them) is what stimulates them, while introverts don't need that to become stimulated; they can, in fact, be overstimulated and end up trying to filter out the excess of impulses, which is draining to them, not to mention distracting.
I've attended two hackathons. The first was for Open Government projects, and it was well-organized and low-pressure. I didn't pull an all-nighter, but I doubt anyone did. I attended the whole thing and really enjoyed myself.
The other was a much bigger affair with at least as many biz folk and designers as programmers. I was pitched on all kinds of half-baked ambitious ideas. It seemed like a big scheme to get programmers to build MVPs on spec. After the first night I didn't go back.
Something I like a lot that is much more sustainable is weekly "hack nights." Here in Portland we have many of these. Generally they meet at a pub, and there are maybe 10 people who show up, work on the side projects, and socialize. I've found those to be great: you meet people, you catch up, and you get a little done. And around 10 or 11 you go home.
That said, being able to prototype quickly is an awesome skill, and it completely exercises different parts of my skillset than my normal job. Going from coding a large C application, to hacking together a Ruby app is a very refreshing experience. Maybe if you spend your whole day working on the same stack in the same domain, it's less fun.
Finally, it's a good way to get something you've had in mind done. If your whole life isn't made of crunches, the occasional high-stress, urgent deadline situation is (once again) a welcome change. For people who work under these conditions all the time, yeah, it's probably not fun.
What surprised me the most is how much time I needed alone. A lot of my best design decisions come to me when I'm holed up in the shower, and the hustle and bustle of a hackathon isn't anything close to that. I couldn't make any sound design decisions while really "at" the hackathon. I ended up repeating the same pattern: I'd hole up in a corner for a bit, or wander off for a walk. Then with a little focus, I could figure out what I was actually coding!
Coming "back" to the hackathon, however, was really important, as it kept my work ethic honest. I have a problem with premature optimization (not to just mention laziness), and the environment made me want to get back to work. You don't want to be the odd kid out just staring at browser tabs all day!
Sometimes, you gotta churn out code after you've made all the sexy design decisions, where the work is really just laborious idea-to-code elaboration. That's usually really hard for me to do, but a hackathon is a really good place for that sort of work.
Having peers and friends that you can share your experiences with has some health benefit even if the thing you’re doing is scientifically proven to end your life http://scholar.google.co.uk/scholar?q=social+benefits+of+smo....
edit: format
The op is absolutely right - we are constrained by our physical bodies and they require the proper fuel and rest in order to operate at peak efficiency. Just because you're using your brain instead of certain muscles, doesn't mean you can consume garbage. This isn't a bad on your comment as much as is it a comment on society as a whole. The whole Zuck bs legend has really damaged programming on multiple levels and it completely reject that ethos.
I've worked with devs that ate garbage all day, couldn't sleep, always came in late (they were non-drinkers too) and their job performance sucked. Their attention sucked. Their attitude sucked. Their code sucked. Needless to say they were all fired. But alas, this is a tale not about the voices of reason, but of bs movies and news headlines and even tho the op is critical (realistic?) of this, that opinion I'm sure is in the minority.
It's a bonding experience.
The best companies find a way to build the spirit of hackathons into the daily culture and provide scheduled, dedicated time to do this during normal business hours.
That being said, if you're young and have no kids then hackathons are probably a lot of fun. After you have other commitments in life, it just doesn't work.
If you don't follow up, event may backfire and will remain an example how a company merely pays lip service to ideas coming from developers.
Yes. The internal hackathons I've been involved with have taught me a lot about a) problems developers face that they're motivated to fix, and b) areas developers are personally interested in and motivated to put forth some effort. (I suppose those are sort of the same thing, although what I meant by the first was fixing problems, and the second was introducing new features or products.)
From what I saw, hackday was used to pretend the organisation cared about the ideas of it's engineers and web developers, but at a safe enough distance not to affect their product roadmap. When push came to shove we were all enthusiastically encouraged to patent our ideas, because it protects us from evil people stealing all our ideas. Naturally I refused.
The Yahoo Open Hackdays also, was an exercise in futility. Yahoo didn't do anything with ideas generated, or encouraged the people who attended and built something. It was just a two day event over a weekend where a venue was populated by groups of people who may be building something, or not. Esssentially it was just a marketing ploy to get developers using the Yahoo APIs for a weekend.
Looking at that, these hackdays offered no value. I don't need a hackday / hack-weekend to work on ideas I consider interesting. I don't need to be in a noisy drafty building where the roof opens up during a thunderstorm ( http://developer.yahoo.com/blogs/ydn/posts/2007/06/hack_day_... ).
I gave up on the internal hackdays, after participating in two: winning one, and getting a notable mention for the second. Ideas are no good gathering dust on the shelf. And all hackdays accomplished was for the company to have an inkling on the ideas I was working on in my own time, so they could decide to claim ownership if they liked.
Open Hackdays are only useful to meet up with people you haven't seen for a long time. So having free beer and pizza is useful, I guess.
To be honest, the things I did gain from being at an open hackday:
* Watching James Aylett build a social network from scratch, and fully unit-tested. That demolished most of my reservations of unit-testing and development agility.
* Meeting some of fine Yahoo US folk during that time: Ryan Kennedy and Dav Glass.
* The internal hackday win led me to meeting David Filo to give him a quick demo. Not often I meet people who are also Wikipedia entries.
We worked normal hours, spent evenings relaxing, and still got a huge amount done in the week because we weren't in the usual environment of having distractions and other things popping up. A great time was had, and because we hadn't spent a weekend coding for 36 hours straight we were fresh and ready to go on Monday morning.
The point is, you probably will write really bad code if you are under a lot of time pressure. Hackathons seem like they are probably useful for some things like bouncing around ideas and quickly fleshing stuff out but please, for the love of god, if you decide to take your hackathon idea and run with it DELETE ALL OF YOUR CODE. Just do it. Then take some time and think through your overall design because trying to make major modifications when there are paying customers relying on your site every day really sucks.
Regarding unfamiliar technologies, choose a stack you're used to (that way, you don't waste time debugging/googling how to do something) and use whatever helps you get things done fast. If anything, have one unknown thing in the mix so you can take advantage of the learning opportunity. Just make sure that thing is necessary for the product you're working on of course - for example, use mongodb's geospatial indexes for that geo-aware app, or try out d3 for those nifty interactive charts, or use websockets/zeromq for a real-time system.
I only ever entered one hackathon and it wasn't as great as some would tell you. The peer pressure you feel to keep going even when you feel like you're going to pass out from exhaustion is immense. Not a great feeling and I wouldn't recommend it, the fun part is overrated.
I have never been to a hackathon where anyone else got to keep the IP, and I have been to about 30.
I am not sure what pressure you are talking about, I always found them great fun.
We did this by ourselves, for ourselves. For fun.
What I personally strongly dislike are the 'company hackatons', in which developers from a company are basically tricked to do some unpaid work for the company. In my opinion, it's dishonest. You can feel the difference in the air - events that are created by the dev community for themselves to play and improve just smell different than the ones started by managers.
So for me, the problem with hackatons boils down to the problem of "fun" vs. "work". Things started as fun, but they seem to be turning more and more into work. Just like in case of SEO and the Web, it's all great until someone from outside comes who wants to profit on this, and this is why we can't have nice things.
It seems to mesh well with another part of the developers lifestyle though: a severe lack of free time.
"But in the end, I really feel that Hackathons are beneficial less as a place and time to code out your next big idea, but more of a time to mingle and bond with the community. It’s like a gathering of the tribe. And personally, there is more value in that than actually developing anything."
Perhaps in the future I will focus on hackathon projects that are technically unstressful and allow me real time to bond and discuss with the community.
However! I actually don't think that occasional hackathons (everything in moderation) is harmful to hacker culture. People do not model their lives around hackathons. As a participant, I can tell you that I do not want to feel that crappy on a regular basis under any circumstances. Rather, hackathons are a reflection of a culture that already exists. Fix the culture, not the results, because I'm sure that lack of good sleep, diet, and exercise are far more pervasive and prevelant problems outside of hackathons.
An exception were the Food + Tech hackathons I went to when I lived in NYC. They took place during the day and there was a variety of good food to eat no matter what your food preferences were. I'd love to organize something like that in Chicago.
I did try to organize a gourmet hack night but it didn't go so well. I got duck confit on my keyboard.
"Contrary to popular belief, caffeine does not act as a diuretic when consumed in moderation (less than five cups a day or 500 to 600 milligrams), and does not lead to dehydration or to a water-electrolyte imbalance; current evidence suggests that caffeinated beverages contribute to the body's daily fluid requirements no differently from pure water."
This particular misconception is kind of a pet peeve of mine, and it drives me nuts how widespread it is.
[1]: http://en.wikipedia.org/wiki/Health_effects_of_coffee#Laxati...
I don't remember when I first heard the Bay Area usage of the word "hackathon", but it sounded decidedly less cool.
Its hard to find a better environment for learning than one in which you are building something you are passionate about and overcoming obstacles like nobodys business with a hard external deadline and plenty of incentive without having to even worry about getting food/drinks/anything at all.
> And leaving long-term health out of the equation, lack of sleep hasn’t been known to improve your focus or the ability to be logical or creative, all of which are critical skills for developers.
For me personally, I code late at night because it's the only time during the day when I can truly be distraction-free. No incoming emails, no meetings, no phone calls, no running into people. Coding happens best when you can concentrate for long periods of time [1], and the best time to concentrate is when the rest of the world is asleep. YMMV.
I just wish I didn't have to get up again in the morning.
If you aren't, then recognize that occasional deviations from an otherwise healthy schedule and lifestyle aren't lethal or actually bad.
I enjoy doing these things in moderation though, do we need more nanny stating to tell me what I can enjoy doing?
I was part of the 'startup weekend' in raleigh last april. Our team came in 2nd out of 20 (actually, there was a 3 way tie for 2nd).
Most other teams had somewhere between 4 and 8 developers or related technical folks. Our team had 1 - me. I know other teams got mired in arguments about what version of Rails to use, which gems, and various other technical trivia, I had just me to answer to, and I got quite a lot done. Other teams got a lot done too, no doubt, but one person just hacking with some non-dev minds to bounce ideas off of was just as effective - perhaps moreso - than a team of developers.
At the halfway point we chatted with another team. I showed what we'd (I) had done, and one guy smirked some. He then showed their system - a mobile app that did XYZ, had some neat features, and was pretty far along. Someone on my team said "but we've only got one developer", and the guy changed his tune, and became visibly impressed in what I'd been able to build in... at that time, around 12 hours. They'd had a team of, I think, 6 devs.
The point is not that I'm some super coder, but that focused concentration and time blocks with a handful of people can get a lot done quickly.
Usualy a hackfest meant bunch of coders interested in a project sitting in a room for ~5 hours and doing bug fixing, new features, or just discussing. Everything is good in moderation, I guess.
And the hackathons weren't a distraction. Yes, some people ran around and talked a lot and there was definitely socializing going on (if you're not a people person, a hackathon may not be for you), but really: a lot of the talk was with people who were experts in the problem area we were gathered to deal with and this made us so much more productive. I've been to five or six hackathons now and generally just about everyone turns out plenty of great stuff there.
We got a lot of great stuff done, had some fun, caught up with old friends and got to visit a new country (well, not me. The hackathon was here in Paris).
That said, I simply don't think it's something people do every day, or every week, or frequently enough so that can severely alter one's lifestyle.
The author makes some good points, but they really apply to a more general day-to-day lifestyle.
There is nothing inherently damaging in a hackaton if you normally get enough sleep, eat healtily etc...
A few can build a great prototype; an even smaller miniscule few can build a product. But most hackathon participants produce either no code at all or terrible code.
This is fine if all you want is to make friends or build working relationships or make a throwaway prototype.
But, if you want to make a lasting code contribution, it's almost certainly got to be a small feature or bugfix on an established project, for which the problem definition, skill set required, and relevant parts of the codebase were documented in some detail before the hackathon. Very few hackathons have this level of preparation.
Better preparation or better expectation-setting -- that's what is needed.
it's meant to be fun. As long as you're not doing them all the time - who cares?
Too be honest I didn't find them any different than the times I have picked up a new game or book and stayed up all night playing/reading or spent time with friends playing marathons tournaments.
Hackathons are no better or worse than a majority of the other things we do, they just happen to be sponsored events where you don't spend all your own money on junk food.
Especially as a mom with a full-time job, I love the focus on getting things done at hackathons, as contrasted with other nerd gatherings, where the focus is on chit-chat.
Startup Weekend's 48 hours with no sleep model sounds very unhealthy to me, but an excuse to crunch away at a side project for a few hours with free beer and friendly nerds? Yes, please.
1. In about 6 hackathons over the course of the year, none had alcohol and only one had a post event get together at a bar (Startup Weekend).
2. Generally speaking the food tends to be pretty good quality if you behave yourself. I've never been to one where fruit and salad weren't available. You can drink a gallon of soda and eat a lot of fattening food if you prefer.
3. If you're paying attention you'll find that the people who leave at a decent hour, sleep, and come back early rested and refreshed get more done. I've always finished every project I've been a part of because I stay sharp.
The other point is that even activity that is generally considered healthy, like sports, when forced upon you by various means, is going to be a negative. Forcing someone to run adds stress. Running because you enjoy it and want to run reduces stress.
Our >40k employee corporation had our first annual corporate hackathon in 2012. I led the team of six that beat forty-seven other teams to win the whole hackathon. No one on my team took any less than twelve hours off between day one and day two.
A hackathon is about developing an impressive minimum viable product and demo. It is not about building a finished product.
Honestly though, hack on something you can finish in a few hours and go home and come back the next day to tell people about it. I'm still running twickery.com from the last F8 opengraph hackathon I went to. Spent a few hours and still use it now.
Hackathons give you an excuse to scratch an itch, learn something new and challenge yourself.
Hackathons are bad for you.
I love developer communities. I love the spirit, the comradery and energy. But in the last couple of years or so, Hackthons have spread through the community like a plague. There are Hackathons around technologies, ideologies and everything in between. And I feel there is an urgent need to eradicate them.
Here is my main beef with Hackathon. They’re encouraging and spreading a perverse culture of unhealthy lifestyle and unsustainable workflow which has been made popular by sensational media and film.
Here’s a standard recipe for a Hackathon.
Gather a bunch of developers in a location. Supply them copious amounts of junk food, booze and caffeine. Tell them to get cracking for 24hrs. Sounds familiar?
Sleep
There is an almost masochistic take on sleep deprivation in the developer community. (It might be true with other professions, but let’s focus on the devs.) Working late into the night and not sleeping for days is lauded and almost considered a necessity by many these days. Hackthons, many of which last 24hrs, only serve to glorify that.
It is well-known that sleep deprivation has only negative effects on health. Sadly, popular culture in the community has only strengthened the indifference towards health. Y-combinator’s popularized (and prefered?) archetype for founder/developers who eat ramen and code into the night, or the life of Mark Zuckerberg as showcased in the movie The Social Network only make things worse.
And leaving long-term health out of the equation, lack of sleep hasn’t been known to improve your focus or the ability to be logical or creative, all of which are critical skills for developers.
When was the last time you wrote a piece of code while being totally sleep deprived, and looked at it after you woke up to say it was the most beautiful, elegant and awesome piece of code you’ve ever written?
A good nights rest and a fresh mind are critical for a good developer, that’s one thing that Hackathons completely miss.
Food and Drink
Next to sleep, your body needs good fuel to keep going. And NO! I don’t mean coffee. As much as I love my coffee, binging on coffee, red bull or is rarely good for focus. Not to mention alcohol, which makes matters worse.
It’s a short-term vs long-term trade-off. Coffee (and possibly alcohol, although I am skeptical abt it), do help you feel more focused in the short-term. But both caffeine and alcohol are diuretics and only make you lose more water in the long-term. A dehydrated body isn’t much of a help when you need your brain to focus and solve problems. “When was the last time you saw an isotonic drink at a Hackathon?”
Junk food isn’t much of a help to that. I am not even going to touch on long-term effects of eating high carb diets. The usual Hackathon menu of pizza and candy is full of carbohydrates. While sugar highs are great for short-term focus (maybe??) you tend to feel hungry very quickly after a carb heavy meal. That only means you going around for another round of pizza/candy etc. Not really the best way to focus is it?
Sedentary lifestyle
More and more research is showing a link between a sitting lifestyle and health issues. Developers are unfortunate to have a job which is inherently sedentary. Hackthons again make it worse by inciting developers to sit at the same place for 24hrs. “I’m sure your back will thank you at the end of that!”.
And what’s worse is since most Hackathon are held on weekends, the one day you usually get to be active is also spent being sedentary.
Distraction
Hackathons are distraction. There are a ton of things going on. People are talking, discussing ideas, giving talks or just hanging out. All that is competing for your attention while you need to focus. Add caffeine to that mix and that’s one hell of a party on thought in your mind. Noise cancelling headphones help, but then what’s the point?
Solutions?
I’m pretty sure there are better ways to organize hackthons. Having them over 2 days of 12hrs slots would be an idea, to combat sleep deprivation. Supplying and encouraging healthier eating and drinking options would be really useful. Fruits, nuts, and other healthy food are options. Similarly with drink, having access to isotonic drinks and lots of plain water should be a priority. Encouraging participants to do physical activities like calisthenics or just going out for walks on a regular schedule are options to consider.
But in the end, I really feel that Hackathons are beneficial less as a place and time to code out your next big idea, but more of a time to mingle and bond with the community. It’s like a gathering of the tribe. And personally, there is more value in that than actually developing anything.
TL;DR; : Hackthons promote unhealthy lifestyle. If you’re organizing one, urge your participants to hydrate regularly, eat healthy meals and take regular breaks where they do some type of physical activities.
At least provide healthy options, particularly bottled/filtered water instead of just soft drinks and booze.
The organizers of last 2 hackathon I participated seems to think that there is no meaning in providing plain water when they have soft drinks for the event. Not to mention the event was held in a pretty remote event. I had to drive 20 minutes to get a drink that don't make my mouth feels like ant feeds.
Your brain and whatever else on your body you're currently using to get code from brain to computer are surrounded by a lot things that are important to keep them running and talking to each other. Forget that, and they'll stop. Quickly, and painfully.
Doctors can read medical journals and call it "working time". Most programmers have feces thrown at them if they're caught learning on the job. This is just something we have to suffer until we develop a stronger tribal identity and demand the conditions of a profession (including ethical rights and obligations that supersede immediate managerial authority).
Do surgeons spend 40 hours per week, 50 weeks per year, cutting open bodies? Of course not. No one would allow it. They work a full work-week, but they spend a lot of that time keeping current with the field. That's how professions are supposed to work. Your metered work obligation is ~15 hours per week, and the other 25-40 you spend keeping current, networking, and performing other off-meter, self-directed work that is important to you and the profession.
Now, hackathons. There are two things one should know about that. The first is that the association of programming with the night hours is a bit of cultural legacy. Forty years ago, when computing resources were shared and scarce, night was the only time you could get low-priority (exploratory) jobs to run. So the hobbyists (young people, usually with access through a connection or favor) did their work at night. Now, we have enough in the way of resources that people can work at any time. Some people are most productive between 6 and 10 in the morning. Others are best from 8 pm to midnight. Whatever works.
The second is that hackathons seem, in many organizations, to exist to recapture the college lifestyle for people who haven't realized yet that It's Gone Forever. The hackathon recreates the "good old days" (?) of the 3:00 am, caffeine-fueled coding fests to get that hard-ass final project to work. It's not terribly unhealthy when you're a college student and have that kind of schedule autonomy (you can crash for a week) but it's a terrible idea to mix that lifestyle with the 9-to-5 regular workday. Also, most final projects are Done, submitted for a grade, and never need to be looked at again. This isn't the case for real-world software.
I tend to see most company's 20%-time and hack-day programs as negative spaces that define anything programmers actually enjoy as "not real work" (because they can be tricked into doing it "for free"). I can't even count the number of times I've seen people using 20%T programs to do things that, if they didn't have short-sighted imbeciles for managers, would just be regular-ol' working time.
Where did you get that idea? I grew up in a family of doctors. If they aren't seeing patients, they aren't billing. They go to school an unthinkably long number of years and then they're put into a sleep depravation nightmare called "interning" for years before they get to have a career that normally includes "on call time" where they're woken up at all hours of the night to go save someone's life.
Sitting around reading journals is what they do on their off time. Everything in your analogy is wrong.
If they aren't seeing patients, they aren't billing.
Right, but 2000 hours per year wasn't traditionally the requirement. That may have changed. The professions have declined over the past 30 years.
For example, before the legal profession went to hell, 1200 billable hours was the requirement. Remaining time was for networking, keeping current, attending conferences, etc. If you billed 1500 hours, you were a rock star and guaranteed to make partner. Enough money was made in the billed hours to pay for the off-meter stuff.
They go to school an unthinkably long number of years and then they're put into a sleep depravation nightmare called "interning" for years
That is true. Medical school and residency are extremely difficult.
before they get to have a career that normally includes "on call time" where they're woken up at all hours of the night to go save someone's life.
Obviously, medicine can't be limited to the 9-to-5 hours, because people get sick all the time.
Regarding the very long work weeks, this problem was at least partially created by the AMA. They've been limiting medical school admissions to keep an artificial shortage of doctors. That has created an environment in which working hours are much more than they used to be.
That sounds like the work schedule of professors at universities, but that's the only profession that springs to mind.
I think plenty of programmers tend to be natural night owls and it's not uncommon for them to be working at 3am out of their own preference.
All professionals do this: doctors, lawyers, accountants, etc. This is why professionals get paid more than non-professionals; they are expected to learn on their own time rather than on the job. Even employers who provide continuing education at the workplace don't count that time as billable time. (Note that people who members of multiple professions must satisfy professional obligations for all of those professions, i.e., a lawyer-accountant must satisfy both CLE and CPE requirements.)
Welcome to the club.
Actually depending on the state, hospital, and part of their career it can be more like 80 hours per week.
One should be wary of making generalizations like this. "Programmers have" or "Programmers don't have" groups an awful lot of extremely different people, and an extreme variation of experience, into one seemingly whole glossy industry.
When I programmed for hire, I never had any problem at all learning on the job. My jobs paid for books, training, and conferences. (Two of my jobs paid for conferences where I was accepted to speak -- that was part of my negotiation.) I also never had any issue charging for research & exploration time explicitly labeled as such in my freelance contracts.
Programmers have one of the world's most in-demand skills. If they have a sucky job that limits their growth, well, they should take those in-demand skills elsewhere. If they don't know how, or are afraid, they should suck it up and figure out how. Read a book on salary negotiation or how to attract better clients. Ask somebody. There's tons of info out there. There's no excuse. If they believe that they have nothing special to offer, so they are at a disadvantage in negotiations, then they have to figure out "Is that true?" and if yes "Then what can I do to gain leverage?"
Take control of your lives, folks.
Nothing new or innovative came out other than sore backs, necks and a guy puking. Yes, there were some 'nice' hacks like "this guy build this using that hooking into that that API and showing this again".
Midway, I felt like sleeping - there wasn't any space and I was sort of looked down upon with scorn - as in "he doesn't belong here". Well, I didn't. I had built a little web app that did some basic(very) search with Tw/Fb. Nth I would like to see or ponder over again. I slept in a corner anyway(had my sleeping bag).
Bad thing it wasn't fun either.
Moral of the story - it's good for sort of a meet-up, not for 'breaking the ground' with your ideas :-)
And if you have to organize one - make sure there's food, water and some place to rest. Proper lighting which can be adjusted in different corners/parts of the hall(or the large room).
PS. And yes, keep it spacious and airy. Man is a messy animal :-\