Open workspaces that "foster teamwork". There is room on this keyboard for two hands, and they are at the end of my arms. Teamwork is what the standups and collaboration are for. When I need to do actual work, fark off and leave me alone.

Electromax: I do coding professional and as a hobby, and my general philosophy unless some client is going to be reading the code (ie never) or there's noticeable performance problems is that, if it is okay and it does what you need it to, that's the correct-est way.

I'm not just a programmer, I was (and am starting to become one again) a code reviewer.

IE, I look at code other people wrote (EX, offshore resources) and determine if it's ready for prime time or if there are going to be issues.

// potential issues are categorized on a scale of 1 to 5 (5 being the highest). I only care about 3-5. 1 and 2 are trivialities that aren't worth my time to fully review.

// in my experience though, code with a lot of smells tends to have a lot of larger issues. It's an attention to detail thing, if they don't care about the small easy to fix things, then how do they treat the larger things?

I look at code like that and I'm like, what troglodyte wrote this? I always assume someone will read my code at some point and it's not even about oneupmanship. Here is a simple example.

I have a SQL query which is going to join two tables together (Products and User Data).

A troglodyte programmer would alias those tables as A and B whereas I would alias them as P and U. A and B conveys no meaning, and in larger queries, people will tend to forget what the hell table B was referring to. Was B.UNIQUE_KEY from the user table? The products table? The sales table? The region table? whereas U.UNIQUE_KEY is much easier to grok.

Is that going to make the code more efficient? NO. Is it an amazing feat of programming progress? NO. Does it increase the difficulty of writing the code? NO. Does it make it easier for anyone else to read the code? Hell yes.

You walk up to me and give me vague requirements, you probably aren't going to get what you *THINK* you were asking for, if you even had a solid idea in the first place. The better I can pin down what you want, the happier you will be with the end product.

I mean, you wouldn't walk up to a barista in Starbucks and say "Give me a coffee" when what you really want is a tall cinnamon mocha latte, would you? Yet I often get the same sort of thing. Someone will say "I need a report on all X". So I give them a basic report on all X, and it turns out that they wanted to exclude Y. OK, so I go back and exclude Y, here you go. "Oh, and include all Z". Ummm. OK. "But this now has a Y in it". Yes, that's right, because there are cases where Z *AND* Y are both present, and you wanted all of Z, remember? "Stop being pedantic".

Now, that could have been avoided if the person came to me and said "I need a report with all of X, and all of Z, but I don't want to see any Y on the report".

It's all about knowing what you want before you formally ask for it, so you get what you want the first time.

grinding_journalist:No doubt that most of you people who aren't programmers, or have never been programmers, look at those of us who are or were programmers and think, "Boy, that's gotta be a great job. Exciting, fast paced, highly compensated, well respected and, above all, extremely sexy. What's not to love about being a programmer? I wish I was one."

I am not a programmer and have never thought anything like this. I always imagined programming to be something along the lines of sitting at a desk or in a cube with a window on a screen open that could be mistaken for text edit, poring over lines of code that look like they're in a foreign language, working on a single piece of a larger program, while the boss comes by and says that there have been revisions, and your past week's worth of work is now irrelevant.

Project managers ignoring or understating time estimates to complete a task or project

This is merely a symptom of a bigger disease of programming ... that being, the people who manage/oversee programmers often (thankfully not always) don't have a background in programming themselves, or if they did it was a thousand years ago on antiquated/irrelevant platforms. Good programmers are too valuable, unwilling or personally ill-equipped to transfer management positions Who fills those positions? Ambitious bullshiat artists who attended an IT Project Management conference for a $10k framed certificate to hang on the wall and a bevy of hi-tech word salad mumbo jumbo to hypnotize upper/executive management with.

Thankfully I'm in a position in my career and skillset where I can be particularly choosy about who I work for. In any interview, I want to know specifically about the backgrounds of the project managers and the IT management. If I see a lot of people with fake tans and capped teeth and manicured nails talking about "cloud technology" and "cross platform synergy" I run for the hills.

Worst thing: having to make changes to an old system originally done by a programmer who used a single space for indents in PHP code, never indented any of their HTML code at all, and coded with the absolute minimum amount of whitespace possible, jamming everything together so tightly it's damn near undreadable.

Ever write a bunch of code in a language, it doesn't work, then you go start debugging and you're like, shiat, this is totally valid code, the syntax is right, I've got the right parameters, why the fark isn't this compiling/running?

// then you realize that the function you're trying to use is from another language, in THIS language it's named something differently (maybe with slightly different parameters) but essentially does the same thing.

Biggest problem with being a programmer: Not understanding that the business is not there to provide you an outlet for your very special self and whatever your latest technology fetish is. You are there to support a business who's only concern is generating revenue. In software, unless you are building the space shuttle or heart monitors or air traffic control systems, you rarely get to practice ideal engineering. You are a cost center. So act like one.

Bad_Seed:UberDave: End users not providing enough information about bugs

I deal with this at least twice a week...for a large problem. You need to describe the steps you performed to get to the problem. "When I press 'Save' the application crashes" doesn't tell me shiat. Especially if the application performs 10 different distinct operations and has over 300 controls.

How the hell am I supposed to know. I was doing stuff, I pressed save and it crashed. Do you really expect me to remember the exact state of the program just so I can file a bug report when the POS crashes unexpectedly on me?

You don't know the record you are working with? You don't where you were in the software when you clicked the "save" button?

Example of a good problem report:

1. Opened up the Personnel application.2. Load the record for "Bob Smith"3. Opened his training records.4. Clicked the button to add new training.5. Entered the data and clicked the "save" button.6. Received "This SQLTransaction has completed; it is no longer useable" and there was a bunch of gibberish code looking stuff in the "details" section (screen shot below).

That.

There's an ass-load of details can be added but that is a phenomenal amount of information and such would lead to a quicker resolution in 95% of the cases I receive. Hell, if I just received screen shots, it would be awesome.

grinding_journalist:No doubt that most of you people who aren't programmers, or have never been programmers, look at those of us who are or were programmers and think, "Boy, that's gotta be a great job. Exciting, fast paced, highly compensated, well respected and, above all, extremely sexy. What's not to love about being a programmer? I wish I was one."

I am not a programmer and have never thought anything like this. I always imagined programming to be something along the lines of sitting at a desk or in a cube with a window on a screen open that could be mistaken for text edit, poring over lines of code that look like they're in a foreign language, working on a single piece of a larger program, while the boss comes by and says that there have been revisions, and your past week's worth of work is now irrelevant.

1. I have a vision2. How is that done?3. Why are you doing it THAT way?

But the most is because of "unrealistic expectations"

Asking me on a Friday to load 2.5 TB of data into 250 undefined tables, from 1500 files in 7 different areas.Defining all column names, datatypes, build all indexes, partitioning, etc.And expecting it on Monday.

1. Lack of clear requirements2. changing requirements on the fly ("that's not a big change")3. Expecting me to do all of your testing for you4. Creating a project plan without input from developers and then blaming the developers for the delay.5. Including all the "little cosmetic issues" that bother you into a single bug fix so it becomes never ending.6. Forcing me to work with smelly H1-Bs

Fubini:I gotta say, four-space tabs are way too big. It's hard to even read a triply-nested for-loop, much less a quadruply-nested or more. Two-space tabs are the way to go.

I play by KISS, so the simpler the code, the better. If I'm going more than four brackets deep in a function, it's probably too complicated. Abstracting out the loops helps with this, so that even if it ends up programmatically behaving quad looped, it's easy to read and understand. Four-space tabs helps enforce this - running out of left-aligned screen real estate means it's getting overly complicated.

No doubt that most of you people who aren't programmers, or have never been programmers, look at those of us who are or were programmers and think, "Boy, that's gotta be a great job. Exciting, fast paced, highly compensated, well respected and, above all, extremely sexy. What's not to love about being a programmer? I wish I was one."

I am not a programmer and have never thought anything like this. I always imagined programming to be something along the lines of sitting at a desk or in a cube with a window on a screen open that could be mistaken for text edit, poring over lines of code that look like they're in a foreign language, working on a single piece of a larger program, while the boss comes by and says that there have been revisions, and your past week's worth of work is now irrelevant.

Programming is farking boring should be near the top of the list. I wasted 4 years of my life being a programmer when I've always really wanted to be a filmmaker. I just thought that software development was a more responsible pursuit. But I quit my job, went to film school and will probably die alone in a gutter but at least I'm not a code monkey. It helps that I don't have a family to support.

Yes, I work with C# code every day. I may write tests that deal with network functionality, but that doesn't mean I'm hooking up Channel Factories every day.

2. Code that was committed without vetting for functionality or efficiency and left for months before being implemented by the rest of the project.

Hooray, that large chunk of framework was outsourced to India 6 months ago so we didn't have to do it. Yesterday, we turned on the interface between the two and nothing's working. In the meantime, ownership of that area changed hands twice and all Unit testing wasn't being monitored the whole time. You're the new guy, fix it by Friday.

3. Being handed higher position responsibilities in the long term without boosting the position.

If my contract says I'm an E1 and the workload I've been handed is E3, I have just as much right to complain about this breach as it does about any of the things in the useless Employee Handbook.

4. The Employee Handbook.

Signing a form that says I've read a document that can change any moment without notice won't make me concerned about the contents of it.

5. A lack of standards within code (between project groups).

Nothing's more frustrating than having parts of a large project formatted differently so that there are line conflicts because someone from another group pushes a change.

I think there is a limit to the amount of almost-exactly-the-same shiat you can learn.

MrCrazyInsane:"Environment changes breaking working code" is the biggest pantload of horse shiat. Do you program around NT 4 over token ring?

No, but the thing I program on is controlled by a maniacal dictatorship that changes the aspect ratio or pixel density of the screen without notice. That thing connects to a series of web services running on computers that move physical location and subnets without notice (and are either accessed by IP, or the server naming convention uses the location in the host name). Sometimes a manager forgets to pay a bill for a web service or hosting provider. Sometimes a domain name expires and the expiry email went unnoticed or to an inactive email address. Sometimes Amazon Web Services goes down.

All of these things have happened to me in the last sixteen months. A list of environment changes that have broken my working code or degraded its performance to unacceptable would fill an entire thread.

"I need a cappuccino.""Ok, what's in that?""Dude, what's wrong with you? It's espresso and steamed milk.""Well, you need to tell me exactly how much milk.""You're the barista. Just make me a goddamn cappuccino.""Fine, here.""Um, this is cold.""You didn't say you wanted it hot."

Etc.

Some programmers really need to get over their butthurt that English isn't a formal language.

That's actually not really true.

Say you walked in and asked for a cappuccino, and I gave you a standard cappuccino, but what you really wanted was a latte or a caffe macchiato. Those are very similar in ingredients, but distinct products. Would you complain when you got what you asked for, but not what you wanted?

English can be a very precise tool for describing what you want. It's intellectual laziness that people don't really think about what they want, even when things have been described to them over and over again. Very basic logic is simple to grasp, to the point where I once taught my son how to manually implement a bubble sort when he was 4 years old, using LEGOs*. Most people don't even want to try, however.

*Yes, I know it was child abuse. I figured it was best he learn the wrong way from me first instead of learning it on the street.

OgreMagi: Using obsolete packages that are no longer maintained, were last updated three years ago, have known security issues, and aren't supported by more recent versions of our Linux distro so we have to roll a custom version of it which is never easy because of dependency issues. Let it go, biatches. It's gone. Find a new package and adapt your code. And stop using obscure packages with no user base that is supported by some lone dude living in mom's basement.

We would update the code if they would let us, we don't like working with shiatty old modules either. But often the powers that be want to use their time & budget to add new 'features' instead of fixing what is (to them) 'working' code.

// Working until some change somewhere causes the whole thing to come crashing to the ground causing programmer and sysadmin alike to spend tons of time figuring out what killed whatever app.

//Programmer: there's a memory leak in module foo that causes the server to crash due to an out of memory situation every 16 days. We can fix it by migrating to module bar, but it will mean 160 man hours of reprogramming and some more for testing/validation.

The powers that be: What if we double the ram on the server (we have some spare sticks, right?) that will give us a 32 day window, and we can have the sysadmins reboot about once a month.

Programmer: Um, I think it's better in the long term to fix the underlying problem.

TPTB: we've already spent enough time debugging this, I'll put a case in for the sysadmins.

// a year and a half later, the server crashes with an out of memory situation.

TPTB: Hey, I thought we fixed this issue!!!

Programmer: It appears that the amount of data being processed by this app has increased substantially. We should really move over to module baz now (because module bar is now outdated as well).

TPTB: we don't have time for that, throw some more ram on the server and call it a day.

mayIFark:To me the most frustrating thing is when someone tells me how to program. It is a very personal thing really. Everyone has their own way of doing it. When the boss comes up and say use x for this, without sometimes even knowing what x is.

There is the polar opposite of that - people who think the answer to everything is X, no matter what the problem is. And yes, I'm looking at you, Java. And XML.

Anyone who uses "Illiterate" metaphorically has lost my attention right off the bat.

Thrag:The comments are there to tell you what the code is supposed to be doing and why.

No, that's what unit tests are for.

My contribution to programmer frustration:

-working on something that never ships-sysadmin arrogance and foot-dragging-coworker dick-waving and general alpha-nerdery-haters in other departments that resent you for the pay-dealing with re-invented wheels (exotic config systems, storing code in database columns, novel approaches to key-value storage in relational structures)-technology bigots (usually Microsoft guys, ironically enough because their shiat sucks the most)-environment changes breaking working code

OgreMagi:I've seen what happens when my kind of job gets outsourced. The results were fail-tastic. My friend who had lost his job got hired back as a contractor with a huge increase in salary as a result. They tried to get him back at his original pay, but he knew he had them by the balls and initially told them he wasn't interested. I'd welcome my company outsourcing my job. I would thoroughly enjoy the month or two of vacation followed by a massive pay increase. Except my company is smart enough to not hire morons like you who think outsourcing is a good idea.

This.

If there was one item left of TFA's list, it was "Having to come in and save a project that was outsourced because some jackass bullshiat conartist mid manager convinced the powers that be he could save the company tons of money."

You know that knockoff clothing you can get a flea market that looks like it's a namebrand but frays at the seams and loses all of it's color the first time you put it in the washing machine? You don't want your critical systems that keep your company afloat to be like that.

Rent Party:OgreMagi: Rent Party: Remember these words, always: You are a cost center.

Don't measure my job by how much I cost.

The business will measure you in no other way.

Measure it by how much I SAVE. It is your responsibility to demonstrate this. I have also found the number of IT people capable of making this demonstration remarkably small. In quantative terms, demonstrate just how efficient you are.

Tech companies understand this. The further away from tech you get, the less they understand my job and the more they treat me as a burden.

And here we have a demonstration of precisely the attitude I'm talking about. You might be surprised to learn that those folks at the top understand exactly what you're doing, which is why you're going to get outsourced at the first available opportunity.

I've seen what happens when my kind of job gets outsourced. The results were fail-tastic. My friend who had lost his job got hired back as a contractor with a huge increase in salary as a result. They tried to get him back at his original pay, but he knew he had them by the balls and initially told them he wasn't interested. I'd welcome my company outsourcing my job. I would thoroughly enjoy the month or two of vacation followed by a massive pay increase. Except my company is smart enough to not hire morons like you who think outsourcing is a good idea.

neilbradley:Mugato: Programming is farking boring should be near the top of the list. I wasted 4 years of my life being a programmer when I've always really wanted to be a filmmaker. I just thought that software development was a more responsible pursuit. But I quit my job, went to film school and will probably die alone in a gutter but at least I'm not a code monkey. It helps that I don't have a family to support.

Ah, so you weren't any good at it, then.

/programmer for ~35 years now//love to code

That's a poor assumption. Programming is a broad term, and being good at it doesn't mean you like it and liking it doesn't mean you're good at it. Also, you can like programming some things and not others, doesn't make you a bad programmer, either.

For me, for example, I enjoy the computer science process (it's a beauty to write code that you translated directly from the FOL you proved out mathematically on paper, and see it work the first time it runs.) I also enjoyed writing device drivers, system utilities, and especially compilers. In fact, the latter was the most thrilling thing I've ever worked on.

But I hate RAD, I hate "development", and I hate writing apps for Android. I hate that sometimes 30% of my day involves figuring out what magical incantation of library calls is appropriate to implement my solutions. These tasks involve programming, shouldn't they be thrilling? No. No, I dread them more and more each god damn time a new platform environment is released and a new dev kit is needs learned. It's just not fun, it's... manual labor

dittybopper:Rent Party: dittybopper: Rent Party: I want more comment than code, because I don't want to read your crappy assed code. I want to read about what it is supposed to be doing when it ceases to do what it is supposed to do.

The problem with this philosophy is that the comments don't always match the code. In fact, they often don't match when written at the same time.

See rule #1. Your code sucks.

Oh, Hell, I *KNOW* that. I also assume every other programmer sucks as much as I do, which is why I am less than enamored of automating life-and-death stuff.

Biggest problem with being a programmer: Not understanding that the business is not there to provide you an outlet for your very special self and whatever your latest technology fetish is. You are there to support a business who's only concern is generating revenue. In software, unless you are building the space shuttle or heart monitors or air traffic control systems, you rarely get to practice ideal engineering. You are a cost center. So act like one.

It's actually a quite liberating moment in one's career when they come to terms with the fact that software is seen as an utterly disposable commodity in today's world and that you're little more than a beast of burden to produce said disposable commodity. It means the next time some overly ambitious middle/project manager is trying to build their reputations with upper management by over delivering under deadline by riding and cropping you like Secretariat down the homestretch, you can turn around an bray in his face like the mangy jackass you are. In 5 years time that ambitious middle manager will have moved on to grabbing for the next golden ring and that piece of software will be replaced/rewritten, no matter how beautifully you coded. It's not worth killing yourself over.

The true watermark of a good programmer is that good programmers realize that they're writing crappy code.

OK, maybe not right when they're writing the code though, because that could be at 4:00am in the morning after having been up since 6:00am the previous morning,but when they come back later and look at it with fresher eyes and go "holy shiat, what WTF was I writing last week".

I went into the source for this project to steal some code for one of my current projects (I haven't worked on this project since 2008).

I came across that code block and thought to myself "Damn, why didn't I use a constant for the access levels instead of a hard coded number?" If they ever want to change the access levels then someone is going to have to change it by hand.

if (Access() < MENU_ACCESS_LEVEL) {Menu_disable(qw[edit])}

Hmm that's better, now we just have to change it once in the code and it will cascade through. Damn, no that still sucks because we would have to redeploy after a change, we should really read it in from a config file.

if (Access() < $CONFIG{MENU_ACCESS_LEVEL}) {Menu_disable(qw[edit])}

// to date, the access levels in that app needed to be changed exactly once (the access levels actually existed a long time (~10 years), but the code above was so that if someone didn't have the appropriate access, the menu would be disabled. I'm a stickler for some things, but other things I just wave my hand and say "good enough".

I once had a boss who would cut my estimates. I did not use the Scotty school of time managment, my estimates were quite reasonable. So when he'd come back demanding why something wasn't completed on time I'd just tell him "it's on schedule according to the estimate I gave you. Just because you want it faster doesn't mean you will get it faster." It's quite liberating when you don't care if you get fired or not.

I have the training and experience to work IT. I refuse to work IT. I could do programming or computer repair. I refuse to do it for a living. Hell, most of the time I refuse to do it for friends and family. It's not hard. It's that I don't like dealing with people who don't understand computers beyond "It's broken, you're the only expert I know, fix it! What do you mean you want money? If I wanted to pay someone I'd go to Best Buy."

For me it's all the end users. You fix it, it works. Everyone is happy. Then the moment some thing else breaks, it has to be my fault. Nope, not doing it any more. I fix my computer when it needs fixing. Because I know that if I replace the hard drive and the RAM goes out, that the RAM going out had nothing to do with the hard drive.

I have a friend who works for AT&T, he's a manager for one of their call centers. He told me that he needed a new call center person to troubleshoot customer problems with the equipment. So we talked for a bit because I was unemployed at the time. He said "Now, before you interview for the job, remember, you can't call the customers idiots, even if the problem is because of something they did. And secondly, when you answer the phone you have to read the entire script word for word." I asked "That script that when I have to call technical support I butt in and say 'Don't care, here's the problem...'?" He said "Yeah, that script. You can't abridge that script or not say it. And no matter how rude they are or that they caused the problem you want to fix, you have to say 'Yes Sir'." and he explained that he was telling me this because he knows that when I end up fixing computers I actually call family and friends idiots and morons. I ended up telling him thanks, but no thanks for the interview offer. I told him that it's retarded to have a department set up to help end users with their problems, and instead of getting straight to the problem with "Hi, thank you for calling AT&T, how can I help you?", having to read a long script that ends with a try at an up sell. When I call to get tech support I don't want to buy anything, I want my problem fixed. At that explanation he said "Yeah, you'd be fired within a month, and not for customer service complaints but for not reading the script or going for the up sell."

Bad_Seed:UberDave: End users not providing enough information about bugs

I deal with this at least twice a week...for a large problem. You need to describe the steps you performed to get to the problem. "When I press 'Save' the application crashes" doesn't tell me shiat. Especially if the application performs 10 different distinct operations and has over 300 controls.

How the hell am I supposed to know. I was doing stuff, I pressed save and it crashed. Do you really expect me to remember the exact state of the program just so I can file a bug report when the POS crashes unexpectedly on me?

What were you trying to save? Where were you trying to save it from? What were you trying to save it to? What operating system are you using? What version of the program are you using? Was there an error message? Surely you would know all of this without knowing "the exact state of the program". Saying "I pressed Save and it crashed" is like someone asking you for directions and you pointing vaguely in an arbitrary direction. It's completely useless without details.

Maybe, but I don't work in India and most of the US showers almost daily, and unlike India, we don't have to watch where we are stepping so we don't step in Holy cow shiat. Move to the USA and learn to use soap and clean water. We have plenty of it here.

MrCrazyInsane:Is "the inability to grasp networking sorcery" on the list?

/it's not the network. Never is.

One of the worst instances I ever ran into: I get asked, at 10:30 at night on a Friday, to jump into a conference with one of our clients, a large energy company, because our system at one of their power generating stations had slowed to a crawl. At the time, we had the system installed at three sites all connected to their corporate headquarters. Only the one site was slow. Many of the 15+ people on the conference line (mostly the IT folks) were blaming our system. They're basically treating me, the lowly software vendor, as a sounding board and punching bag. About 10 minutes into the call, I suggested that someone at the site walk a laptop from node to node...I was ignored. Around 2:30am, everyone takes a 30 minute break, conference to resume then. As everyone departs, one of the site specific (non-sorp. headquarters) guys gets me alone and ask me the details about what I said early on. I tell him to simply walk the laptop from node to node and fire a large-return query at the database at each stop. 40-ish minutes later, conference going again, and with everyone on the phone, the site-IT guy reports that he problem and that it was a piece of network hardware.

This was a fortune 100 energy company with supposed IT gurus. I know it is often not the network and a lot of vendors will never blame themselves but people should 1) not think they are the most badass programmer/admin in the world because they mastered their little section of it and 2) size up who you are dealing with - they just might be honest and not auto-blame everything but their software.

People assuming you can fix any computer-related problemAww poor baby, being the most technically proficient individual anybody knows sure is a burdern. Why are such a farking douche, give a guy a hand all ready.

End users not providing enough information about bugsOh shut the fark up. End users don't give a shiat about why or what is wrong. They don't care, it is your job to care, figure it out, and fix it. That is why you get paid the big bucks, quit being a whiner.

Storing code in the databaseIs the poor little baby usless with out all his fancy tools? Yes, yes he is. What a farking whiner.

Overly zealous Scrum MastersBwhahahaha, you obviously don't understand why we use Agile and Scrum. The reason we use those methodologies is that you farking programmers are out of control. That methodology is all about control, it is about you stupid half-wits not doing what you are supposed to. So, you farking STAND during a STAND UP meeting, you don't touch the board, and you report your dam hours worked you farking tard or by god I'll shove this backlog up your ass so far your children will dream about it.

People ignoring documentationNo one has time for that, besides your documentation is always out of date and wrong. Sure it looks pretty, but never answers the questions.Tabs/indents set to anything other than four charactersOkay now you are just being a tool.

Just another whiney douche bag with a Bacheolurs in CS who thinks they are indespensible.

I write software for robotics and automation. Machine code (programmable controller) and .NET for serving data to and from the machines. It doesn't suck, I get paid well, and nobody has a clue what I'm doing. But no matter what, there are tons of worse jobs then being a programmer.

The first time you destroy your body and spirit working 60-100 hour work weeks making deadline on a product that lasts 1-2 years in production before the newly hired exec wants it arbitrarily scrapped and re-written to mirror the system they're familiar with from their previously employer, you learn to take your living human soul and hold it down and drown it in the proverbial bathtub. Once you've eliminated any belief in a benevolent or just universe, it's not a bad way to pay the bills.

poisonedpawn78:grinding_journalist: No doubt that most of you people who aren't programmers, or have never been programmers, look at those of us who are or were programmers and think, "Boy, that's gotta be a great job. Exciting, fast paced, highly compensated, well respected and, above all, extremely sexy. What's not to love about being a programmer? I wish I was one."

I am not a programmer and have never thought anything like this. I always imagined programming to be something along the lines of sitting at a desk or in a cube with a window on a screen open that could be mistaken for text edit, poring over lines of code that look like they're in a foreign language, working on a single piece of a larger program, while the boss comes by and says that there have been revisions, and your past week's worth of work is now irrelevant.

And then asks what have you been doing with your time .

You pretty much nailed it.

But when it compiles you get to do this...

I work for an "engineering services company". Basically, we do CAD Software support. Somehow, somebody learned that I took some intro Java and C++ classes in college (as a requirement) and now I am the resident code monkey. Granted, my knowledge of the matter is very limited, but apparently I am doing something right, since I survived another round of layoffs.

Of course, most of the time I look like I am doing nothing (since most of our business is very visual by nature) because I am staring at text all day trying to debug something while everybody else is designing 3D models and whatnot (in an open environment even....damn it I need a hole to crawl in while at work).

1. Working for 1 year at my job developing games for mobiles in a very experienced C++ team with one very successful game even, the bosses decided that suddenly we will move to Java. The company closed in three months.

2. I had a boss once who was both untalented and hard-working. So most of the team was searching for bugs and fixing them 10 hours a day.

If he hates overzealous Scrum Masters and strict "Stand Ups" then he should try coming over to the PM side at a Waterfall Company. Nothing screams stress like using a Project Model that is best represented by Management urinating at will and the rest of us running around with a mop bucket to clean up the mess.

slayer199:"People assuming you can fix any computer-related problem " Really? Programmers are the most PC-Illiterate people I know in IT.

But, that IS what most non-technical people think. I mean, my 7-year old daughter when you ask her what I do amusingly says I am a "computerist". Not as amusingly, it is the impression I get that that is the extent that most other adults think of what i am as well. Granted, most programmers are still more "savvy" about computer issues than the average person who just knows enough about technology to surf the web and maybe open up a word file. But, it still doesn't mean that most programmers are operating system "experts", or know how to diagnose problems on every piece of equipment ever made.