I'm only beginning in my pursuit of a career in programming, specifically web development, and while there's tons of programming advice all over the Net, I have yet to find a thorough treatise on what life is like as a programmer.
I'm interested in every aspect imaginable, e.g. working hours, general office atmosphere, typical frustrations, typical perks/joys, coworkers, communication, stereotypes, age and/or gender issues (I'm female), health concerns (due to a sedentary job as well as carpal tunnel and the like) and general quality of life. I know that different specialties and companies likely vary wildly, but I'd like to hear about a number of them.
Anyone willing to break down their days/life as a programmer?
Hi arboria, well it really depends on the type of programming your doing. My role is a Sr. Business Systems Analyst so I have multiple roles from leading dev, qa, and design teams to performing the grunt work as well.
Work hours are typically between 40-60 hours a week depending on the type of company you're working for. Companies that sell software will typically require more of you because of the competitive aspects of selling industry specific applications. I've worked for both software development companies and small IT department teams. The IT Teams are not selling software and typically do not work extra hours too often in my experience.
I'll tell you this, I've worked with probably several hundred developers in my career and what I've noticed is that developers that work for software companies are typically more qualified individuals that are always on the cutting edge of technology. The IT teams on the other hand are not always this way. I left one company where the 25 "developers" they had on staff could barely write code and had no ambitions to keep up with the latest technology. I was chewed out by the VP one time for offering to implement Sharepoint and write some C# apps to replace our 15 year old Oracle 6i system that was no longer under support... Company IT departments also tend to stiffle creativity and the introduction of new technology simply because they are mainly interested in keeping the business afloat.
Quite honestly I have yet to find any joys in working for an IT Department rather than in Professional services or a pure development department. The atmosphere is a bit depressing to me and does not scream innovation! You will learn a lot in a software company and fast because they continue to push you. The down side of course is the stress and extra hours you will need to put in. Typically the financial rewards are greater as well. I think that's the way to go for any entry level programmer.
Then there's game and simulation programming. This is a completely different world. The pay isn't quite up there, but there are other rewards that make up for it, typically 100% employee paid benefits, lunches, etc... You will work your ass off though and it is common to work 60-80hrs a week to meet deadlines, but most people love what they do. You will also most likely be exposed to bleeding edge technologies not in use elsewhere. It's important to note that game programming does differ from simulation programming. Simulation jobs are usually with government contracted companies such as lockheed martin or boeing. The rewards are about the same aside from needing secret clearance to work on the projects.
If your looking at age and gender, there are typically considerably more male programmers and age varies as well.
Overall I despise Business Application development and have developed a hatred for it, but that is probably because I'm not purely a developer and I deal with all the Executive BS every day... which is why I'm preparing to defect and head for game programming :)
Return 0's post reminded me of a story I read about the development of the Amiga:
In the pre-Commodore times (1982-1985), Miner led Amiga Inc. with a style I could only wish companies would emulate today. He believed in the talent of every man he hired, and excused virtually every quirk they might have.
One walked the office in fluffy slippers (D. Needle). One (D. Luck) missed his first interview because he overdid it at a company party at Hewlett Packard the day before - but was re-invited and, ultimately, hired, because he was the right man. He also tended to enter the compile command, followed by a "beep" command, and took a quick nap on a pillow he brought for the purpose, until the "beep" came up. (Hence his nickname "Jo Pillow".) One (C. Sassenrath) was hired as OS engineer, and was basically told he could do it any way he liked, as long as he got it working, so he wrote a preemptive multitasking OS...
What Miner got in return was a close-knit team with high morale and loyality. They worked long hours, slept under their desks to save the time the trip home would take, and "showered" in the hand washbasin, using paper towels to get dry. That project was their baby, and everybody cared for it as best he could.
I'm preparing to defect and head for game programming :)
Or, you could code for fun. Work hours are whenever you want them and pay is zip, but if you actually enjoy it your job satisfaction will be through the roof.
Yes, but the point of a job is to earn enough money to survive comfortably... Personally I think I'd like to work in a University; but obviously later in life.
Yes, but the point of a job is to earn enough money to survive comfortably
Well, we all have different goals in life, none better than another. Some people do live to work as opposed to working to live. If that's what makes them happy, then all the power to them. Not my cup of tea by any means though.
@jRaskell,
Don't take that the wrong way. I don't want you to think I'm the type of person who cares most about money. Money doesn't interest me that much; but ultimately, it is what you work for, isn't it? You might get a tremendous amount of satisfaction from your job, and I hope I do when I get into work. But I still think that money is important -- but enough for you to be comfortable on, i.e. you personally. I could live in a single room apartment as long as I had the essentials (a microwave oven, a fridge, a computer, a sofa and a bed; as well as a shower, sink and toilet, obviously. Oh and then there's utilities: electricity, gas, water...).
Edit: I actually don't like the kind of person to whom money is everything. I've voiced this opinion here before.
Afterthought: and I especially don't like the kind of person who shows off their money...
From a programmer of more than 10 years who has worked for small, mid, and large-sized
companies:
I can say that the work environment varies widely from job to job. But there perhaps are
some absolutes:
1) You will always work with a team of engineers whose skill sets follow a typical bell curve.
Some engineers will be very good, some will be very bad, and most will be in between.
2) Politics will trump engineering judgment too often; how often depends upon the size
of the company and the ability/willingness of lower-level managers to find a way to sell
good engineering judgment to upper management.
3) Programming is about juggling multiple projects at once and being able to multi-task.
You don't just go to work every day and write code. You spend time debugging. Writing
documentation. Gathering requirements. Fighting fires. Etc, etc. Unless you're working
for a startup, you'll probably spend at least 50% of your time doing something other than
writing code.
Thanks, everyone, for all the info! It's amazing how pervasive the stereotypes are of programming, well, any profession at all, I guess.
Return 0 & jsmith- thanks for taking the time to go into so much detail. I know that no job is perfect, and I guess just finding the right match-up of idiosyncrasies is the most anyone can hope for. The things I value most are my own time (no 80 hour work weeks) and as little *unnecessary* stress as possible. I just want to go to work, be challenged enough not to be bored but not so challenged that I'm uberstressed, and then go home without work weighing on me.
Return 0, my husband is a classical, flash & 3-D animator and modeler and has worked in gaming and television for years. He just left for an opportunity with an e-learning company. So far, so good. The atmosphere in his previous job was great- camaraderie, lots of creativity and very casual.
Database administration is rather boring in my opinion. It does pay well however, specifically for Oracle DBAs. As far as more potential, I'm not quite sure what you are referring to. You have very few options as a DBA. You either work on Oracle, SQL Server, or both. There are of course a few others, but Oracle and SQL Server are the dominant DBs. I'm also the DBA on my SQL Server box running sharepoint at work... and at times I was the DBA on our Oracle environment.... thank God for Oracle on Demand. I despise administrating this system. Ask me to develop an app... ask me to drop a table, but don't ask me to write a report that shows this and this requiring a billion joins.
Developers get to be more creative and solve more difficult problems than a DBA and still work with the database writing update statements, etc...