I used to work for a start-up. I'm very glad I did it but I'd never do it again. The work was the most interesting I've ever done - I wrote so much more code than I'd ever written before and I had a lot of say on what I did on a day-to-day basis. There was a great variety in what I did and so learned a lot. It was a very tight-knit team, feeling more like a family than anything else. We had a fun time.
Eventually, the lack of formal process and long hours got to me. The money was good but, ironically, the skills I learned meant that I could earn more somewhere else by the end (with shorter hours, a pension, etc., etc., etc. on top).
You do raise some good points:
In a startup everyone is equally important and has to get their hands dirty with everything. You can code in so many different languages, end up being responsible for so many different technologies and have to learn heck of a lot quickly.
You also have so much more responsibility. E.g., company needs feature X, so you go off and do that as fast as possible. No discussion, no planning, no process, just go and do it. Moreover, if you see the company need feature Y then you can just go ahead and do it, you do whatever is best for the company.
there is no process. That has a double edged sword. If you want some formal management process like Agile or so on then you will be disapointed that is=t is basically a free for all with he aim ti get as much done in as little time as possible, forget concepts like test-based development. you will be lucky to get any testing done before the new feature is getting demoed by the CEO.
You can be working on something for weeks and then out of the blue you have to ditch that and do something else.
It all tends to be hap-hazard because start-up have to be very dynamic. An investors asks if you can do feature X, you drop everything and code feature X over the weekend.