I am a college student majoring in CS and I have yet to take an internship. I am wondering what the normal workday for a junior programmer is like. What is the normal daily work load like? Are there any specifics or office ettiquite to being a programmer that's different for other junior-level employees?
I'm not going to answer your questions specifically, because I think the answers vary so much that it would be hard to give anything concrete.
But I'm going to take a shot at the broader question - "what's it like working as a software engineer in the computer industry like?" and maybe even "what's the difference between a good job and a bad job?"
Generally, programming is considered "knowledge work" - which is work where some level of education, experience, judgement and problem solving skills are necessary. And where demonstration of the ability to think and make good decisions far outweighs almost any other metric for productivity. For the most part, the environments that are considered outstanding places to work recognize this fact and actively structure their workplaces to maximize smart people making good decisions. The work places that are seen as sub-optimal are where programmer behavior is constrained or limited for no obvious reasons in ways that don't add to making smart decisions.
That means that:
in most positions, there is some degree of flexibility on start times - companies range from wildly open ended ("come in whenever you want, just get it done") to some level of core hours that are deemed necessary for people to be able to have meetings and communicate effectively.
the days of formal dress seem to be more less over, but it's a general expectation that clothing will be clean, cover the body parts that U.S. society expects to be covered, and will be presentable enough to please the customer should a customer demo be part of the job. Bigger companies are still slightly more formal than smaller companies, and there is sometimes the idea of "business casual" and "casual fridays" - where more informal attire on friday is encouraged.
In most companies, breaks, workload and time off is balanced by the demands of the product. Different industries and different business have different workloads and stress loads. A 40 hour a week minimum is a standard expectation, but there are deviations and there are part time positions available. For the most part, the work is divided into salaried positions and contract positions with markedly different expectations and pay mechanisms. For a salaried position, the number of hours a week is a minimum - the expectation is that you'll meet your deadlines and do your upmost to reclarify goals when deadlines are impossible. Agressive deadlines are more and more the norm, and I know very few people who don't expect some level of overtime each year.
Breaks and time off are expected to be reasonable and to fit with office culture. The deadline tends to be the bottom line - people taking more breaks and time off when the work is readily able to meet the deadline is typical. With most knowledge work, it's understood and expected that breaks are necessary and are the purview of the individual. Many offices provide some sort of break area so that employees taking a break have somewhere to go to relax and change the pace.
For the most part, work is done in teams. There are very few products out there for a lone developer - code bases and business logic has become too big for just one developer to maintain. As a result, people are expected to be able to work in a team. This means that on some level the norms of work come from the mutual agreements of team members, although the corporation is likely to have some overriding rules as well.
Most of the rules in any given company chain to what it takes to be successful as a team - a team needs enough communication to work efficiently, enough mutual respect to be able to share ideas without defensiveness, enough shared cultural norms to not have taboo violations break the flow of communication.
Also rules can vary according to position - customer facing roles and business related roles tend to have more emphasis on communication and presentation skills, while development-only roles have less strenuous requirements. Older/bigger companies tend to have more typical American corporation set of norms - stricter start times, dress codes, and other behaviors - while smaller/newer companies can have more unique and/or laid back rules.
Start time is usually 9 am (but can vary).
Dress-code is usually business-casual (but can vary).
Breaks - usually you can take breaks to go to the bathroom or smoke. Some jurisdictions specifiy minimum amount and duration of breaks (but can vary).
Workload will vary.
Co-workers will vary.
Environment will vary.
There's not nearly enough here to answer in any further detail. Information that might help give a better answer: Where is the company located, what industry do they work in, what is the largest demographic of current employees.
What is the start time? Breaks? From my experience, devs aren't generally treated like they're punching a time card. As long as the works getting done and you're putting in 8 hours, most places I've worked have been fine with coming in between 7am and 9am and managing my own break schedule.
Dress-code? Business casual (with Jeans on Fridays) is the norm, although there are plenty of exceptions. Jeans every day is the dress code of the place I'm at currently.
workload? No real way to answer this one in a general sense.
co-workers? Again, pretty vague, obviously working for corporations you're going to have corporate types. Your fellow software devs will vary from highly competent to horrible. You will probably have to support some really old and poorly written code at some point. You will probably have to work off of requirements that are vague, incomplete, or wrong at some point.
Office environment? Cube farms etc, its an office.
All of your answers depend on the job and Company.
Start Time and End Time
I have worked at several places. The first job had me in by 8:30am (no later than 9am). Second job had me in at 7 am, third at 8:30am, and fourth now at 7:45am.
End time was usually no later than 5:30pm on most days. Rarely stayed until 6pm.
Never worked anywhere that required a suit and tie. Usually a "polo"/collared shirt, dress jeans, khaki's, tucked/not tucked, and casual dress shoes. No clothing that was torn or made you look like a gangster or gothic person.
Most gave 30-45 minute lunches. Various breaks throughout the day were as needed. There was no defined break period and that is how it usually is for salaried employees.
Same as everywhere else. Some are professional, some are lazy, many are hard-working.
Only have had my own office twice in the past 7 years. Otherwise it is was an open-air space or cubicles.
How much code
Again, it all depends. There is no way to really put a number on it. A SW Engineer is going to be designing, determining requirements, writing technical documentation, etc too so it's not all code like you think.
Most places are Mon-Friday with occasional overtime as needed. I have worked at places where you get every other Friday off (9/80 work schedule). Again, it depends on the workplace.
start time: assume 8-5 m-f unless otherwise specified. I worked ~45 hours per week as an intern in the summer.
dress code: suit the first day, then dress down to company standard.
breaks: none formally specified. laziness is always discouraged.
workload: 1/2 programming, 1/2 talking to people
co-workers: typically white-collar, educated, professional. Other than that, average human beings.
office: cube farm generally. see dilbert.