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?
closed as not constructive by gnat, MichaelT, Bart van Ingen Schenau, GlenH7, Kilian Foth May 19 at 15:14
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
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:
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.