I'll extend Lawrence's answer with my own experience because I've work in a big video game company & some startups
*** Video game companies *** I've work in one of the biggest video game company, well because like many, I love video games. I've spend a year and half and it kind of disguted me.
- First, you are underpaid. Because many young graduate wants to make video games, even dream of it, big video games companies are litteraly overflown by curriculum. Even if the salary is far under a graduate usually obtain, they'll still have those curriculum. Which means that if you want to get hired you must accept an underpaid job. You are supposed to work because you love your job and not because of the salary.
- Basically, management doesn't care about you. Because of all those curriculum, you are replaceable. If they have to choose between giving you a raise or hiring someone new, they'll hire someone new and throw you away kindly. They just have a restricted number of team leader that are more hard to replace.
- Because your job is your passion, your are supposed to be fully dedicated to it. Which means not counting hours, even working on weekends if it's needed.
- This is a very stressfull job. Your game have to be perfect, and to be released on time because your team leader have objectives he needs to reach (set by the management). If he doesn't reach them, basically your team will be disolved and you'll be moved on another project until your contract's end. Because of this, when the game's deadline approch, you'll need to do overtime every day until the release date. And it'll be the same for every game because nothing is never perfect and the game's director will always wants more features.
- Basically, your ideas and opinion are usually ignored. Because the game direction is decided by a few people (creative director, artistic director...) and they want to make their games, not yours.
*** Startups *** during my degree, students had to make internship (3 * 6 month over 5 year) and I've spend them in 3 different startups.
Basically, even if you're an intern, you're considered as an employee and you'll do the same job. Companies will look at your experience (which language you know, GPA...) and hire you if you fit there needs. So yeah you'll have some work experience but don't expect to supervised very much. You'll have objective and some help of employees but because it's a startup and they don't have many ressources, they can't take care of you as much as in big companies.
Your startup depends on you, if there's a bug, a deadline or any kind of emergency, you'll be the only one to capable to fix it and if you don't the entire company could be severly affected. When that kind of situation happens (and it will) it is badly percieved to leave early. IF it's a critical bug, you leave when the bug is fixed or when you cannot work anymore (which can be very late). However, if it's a deadline, you'll do overtime during several weeks.
The context of a startup is that they don't have a lot of money. Once again, they'll try to hire you with the smallest salary possible. However, if the company starts making money, you'll usually have a nice raise. Moreover, over time you'll become irreplaceable and even if the startup doesn't grow much, your salary will. Because at this point if you leave, the company will not be able to find anyone with your knowledge.
So to summarize, yes overtime is quite common in programming field, mostly because of :
- Wrong deadline estimation. If the person in charge is bad at estimating deadlines, you'll have a bad time working in the company. It happens very often because sometimes, a very small task can have repercussion on software architecture.
- Obscure specification. If the project specification are not very clear at the beginning, you cannot estimate the deadline correctly. This is what happens most in the video games companies because a game have to be fun and it mostly depends on your personnal point of view.
- Critical bug/problem. You cannot predict it, it may be your fault and it makes everything crash.