Page 1 of 2

What is programming in the real world?

Posted: Wed Jul 29, 2009 8:46 pm
by JackScott
I was linked the other day on IRC to the following quite interesting discussion:

http://www.reddit.com/r/programming/com ... _actually/

Some of it is quite funny, and some of it is gold as far as industry experience goes. Well worth a read.

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 9:21 pm
by manonthemoon
Interesting. I'm glad I'm a hobbyist! :)

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 9:28 pm
by Troy Martin
Somehow I got from there to the xkcd store, which prompted me to want one of those linux cheat shirts or the "Everybody stand back. I know regular expressions" swing-by coder t-shirt :)

But good article. :D

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 10:40 pm
by redoktober
insightful. very insightful.
hmm.

i guess that does it. i always wanted to teach. this just *re-inforces* my suspicions about corporates!
:D

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 11:18 pm
by Solar
I'll add my own, if you want...

My first job was at a mid-sized local company, about 30 people IIRC, who did banking software. Not the front office accounting stuff, but back-office things for investment banking. One of their core applications had started out as a couple of hacked-together VBA/Access macros, and had grown from there, to the point of becoming a maintenance burden. They intended to port the whole thing to Java - not a 1:1 port, but the business logic.

I started out writing two modules doing statistic calculations on the data, which was awkward as I had never done VB before - I learned that on-the-fly. I realized that accessing the data (stored in a remote database) was a complicated thing, and talked to a colleague about that. He admitted that he once wrote some ad-hoc data access solution that simplified things greatly, and together we extended that solution into a DLL that served as the data access service for several parts of the application from there on till the Java replacement was finished (1 1/2 years later).

I was then asked to work as a product supporter in Frankfurt, where I did second level support for said application, doing on-site debugging, applying patches, doing tests, that kind of stuff.

Later I worked in the Java porting effort, but not for long as things turned out different than I (or the company) intended. Most importantly, I wasn't in contact with the other developers, and working the lone wolf isn't fun.

My second job was actually at the bank where I had worked as product supporter, in a related project. That was C++ work - the third incarnation of the system, i.e. quite sophisticated and complex. The system had been written by a large team, many of them external workforce, but by the time I joined them they were almost ready to ship and had reduced the team significantly, and were reducing further. My job was to get the know-how from one of the externals, and replace him in the end, which I did - with problems, as you can imagine.

The part of the system I was responsible for was the customer interface, which offered several different services. I wrote new services, aided customers in connecting to the old ones, and did several other ad-hoc assignments like writing custom log reports (in Perl, which was another on-the-job first for me). We tested a new database system (writing up performance tests and proof-of-concept code), I wrote a completely new client software - it was quite an interesting time, but in the end, the vast majority of the work was again second- and third-level support for the customers, and the downsized team meant that we weren't really working together, as everybody had his/her speciality, with little overlapping of activities.

I then relocated back to my old home, and switched jobs again, away from the banking sector (and good riddance, too - not because of the work, but because I can't really stand those investment banker types swarming the place like they owned the world). My new job is in the marketing industry, an application capable of correcting misspelled addresses, normalizing and comparing them. Quite sophisticated stuff. The thing is written in C++, and - as always - had been rushed to the point of being the usual poorly documented maintenance nightmare. But if it were easy, we wouldn't be payed that much money, huh? Well, I created an automatic build system for the app and its dependencies (it was all manual before, including lengthy ./configure statements typed in / copypasted from a document). I also reformatted and refactored the code, wrote test cases and documentation (at best I could). I fix bugs and implement CR's, you name it. Again, while the team is great, I'm effectively on my own in the things I do.

Current outlook is that I will probably switch to another project, possibly C#, mid-term. I hope there'll be some real team programming then.

That's about the upside story of it. Downside is boring weekly status meetings, budget issues, having to track your work time (what have you done when for how long), time estimations (I'm not good at those so it stresses me a good deal), the constant outsourcing threat, and stupid mid-level managers thinking they're smart while all they do is giving you a hard time with their "great" ideas on how to lead the department.

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 11:25 pm
by redoktober
whoa, man....that's a lot of experience!

has teaching ever crossed your mind?
i mean....i've always had great CS teachers, and my one goal is to be like them. and i've done a really small teaching stint before, and it was amazing!

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 11:33 pm
by Solar
redoktober wrote:whoa, man....that's a lot of experience!
A meager nine years.
has teaching ever crossed your mind?
Actually, yes, and little wonder - initially, I studied to become a teacher, just not in the IT sector.

But to be honest, most IT teaching jobs are very poorly payed (if at a given facility) or require you to do a lot of travelling (the coaching type), and neither appeals to me.

Re: What is programming in the real world?

Posted: Wed Jul 29, 2009 11:38 pm
by redoktober
A meager nine years.
that's a lot of time. in my calendar, anyway!
8)
But to be honest, most IT teaching jobs are very poorly payed (if at a given facility) or require you to do a lot of travelling (the coaching type), and neither appeals to me.
yeah, that's for sure. but i'm actually excited about that part!

Re: What is programming in the real world?

Posted: Thu Jul 30, 2009 12:50 am
by Solar
To each his own.

Oh, and another experience I'd like to share: Women in IT, while being far from being 50% of the crowd, aren't that uncommon as media stereotypes and urban legend would tell you. In my last job there were two in our team of seven, in my current job there is one in a team of five. That's not even counting my wife, who did an internship at my first company. (No, we were already married at that time, just in case you're wondering.) So, you are unlikely to find your lifebonded at work, but it's not like some all-male secret society either.

Re: What is programming in the real world?

Posted: Thu Jul 30, 2009 1:24 am
by redoktober
yeah, here in india, there are many women in IT jobs.
and they're pretty good at what they do too!
So, you are unlikely to find your lifebonded at work,
haha. i'm sick of relationships. had amazing (read: horrific) experiences with girls.
:evil:

Re: What is programming in the real world?

Posted: Thu Jul 30, 2009 1:34 am
by Solar
redoktober wrote:i'm sick of relationships.
A feeling most people experience from time to time. You'll get over it. ;-)
had amazing (read: horrific) experiences with girls.
And there are, I am sure, many girls around who had "amazing" experiences with men. Doesn't mean all girls (or men) are alike.

Re: What is programming in the real world?

Posted: Thu Jul 30, 2009 5:02 am
by redoktober
A feeling most people experience from time to time. You'll get over it. ;-)
i don't know. how does it feel when you know you've broken a promise, but didn't have any other choice than to break it?

Re: What is programming in the real world?

Posted: Thu Jul 30, 2009 5:10 am
by redoktober
i guess this isn't the best place to talk about my biggest mistakes.
:D

Re: What is programming in the real world?

Posted: Fri Jul 31, 2009 10:11 am
by gravaera
Since I'm still in UNI, and now working my first job, I found that article to be useful.

This post was really eye-opening:
* In case you are accidentally given enough information about the product you are developing to make sensible highly elegant suggestion, some obscure middle-manager takes it as direct insult of his intelligence and you will be fired.
* If you ever point out flaws in the design and think you could do better some product manager will spend half an hour to crucify you in next design meeting to make sure the desing he chose would be the one that gets implemented, because he chose it. Can't have this independent thinking in the moneky-cage.
* If you at some point have better plan for better product, your project manager will not have balls to tell about it to your customer, because the current product is still total **** and he is already embarrassed to show up in the meeting, because his current plan has not yielded usable product. It's much simpler to demand you fix the crap than sell to the customer, that the whole company didn't get a working design on the first try and there is actually solution for half the money and half the time that requires half the people to do it. You think you have to throw together a quick prototype to drive your point home, present it to the managers.. and get fired.
And then the poor guy who just got randomly raided by the FBI...wow. I'd have flipped.

Re: What is programming in the real world?

Posted: Mon Aug 03, 2009 12:33 am
by Solar
That's highly exaggerated. There's some truth within it, but usually it's not quite as bad. Sometimes it requires some diplomacy, fast talking, or outright not-doing-what-you're-told to "persuade" middle management of the better solution. And sometimes what you see as the "better" solution isn't, and middle management is actually right.

But if you get fired for showing up a more elegant alternative, that's not the company you want to work for anyway.