What is programming in the real world?
What is programming in the real world?
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.
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.
-
- Member
- Posts: 65
- Joined: Sat Jul 04, 2009 9:39 pm
Re: What is programming in the real world?
Interesting. I'm glad I'm a hobbyist!
- Troy Martin
- Member
- Posts: 1686
- Joined: Fri Apr 18, 2008 4:40 pm
- Location: Langley, Vancouver, BC, Canada
- Contact:
Re: What is programming in the real world?
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.
But good article.
-
- Member
- Posts: 109
- Joined: Thu Feb 26, 2009 12:58 am
- Location: Gurgaon/New Delhi, India
- Contact:
Re: What is programming in the real world?
insightful. very insightful.
hmm.
i guess that does it. i always wanted to teach. this just *re-inforces* my suspicions about corporates!
hmm.
i guess that does it. i always wanted to teach. this just *re-inforces* my suspicions about corporates!
"Do you program in Assembly?" she asked. "NOP," he said.
"Intel Inside" is a Government Warning required by Law.
"Intel Inside" is a Government Warning required by Law.
Re: What is programming in the real world?
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.
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.
Every good solution is obvious once you've found it.
-
- Member
- Posts: 109
- Joined: Thu Feb 26, 2009 12:58 am
- Location: Gurgaon/New Delhi, India
- Contact:
Re: What is programming in the real world?
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!
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!
"Do you program in Assembly?" she asked. "NOP," he said.
"Intel Inside" is a Government Warning required by Law.
"Intel Inside" is a Government Warning required by Law.
Re: What is programming in the real world?
A meager nine years.redoktober wrote:whoa, man....that's a lot of experience!
Actually, yes, and little wonder - initially, I studied to become a teacher, just not in the IT sector.has teaching ever crossed your mind?
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.
Every good solution is obvious once you've found it.
-
- Member
- Posts: 109
- Joined: Thu Feb 26, 2009 12:58 am
- Location: Gurgaon/New Delhi, India
- Contact:
Re: What is programming in the real world?
that's a lot of time. in my calendar, anyway!A meager nine years.
yeah, that's for sure. but i'm actually excited about that part!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.
"Do you program in Assembly?" she asked. "NOP," he said.
"Intel Inside" is a Government Warning required by Law.
"Intel Inside" is a Government Warning required by Law.
Re: What is programming in the real world?
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.
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.
Every good solution is obvious once you've found it.
-
- Member
- Posts: 109
- Joined: Thu Feb 26, 2009 12:58 am
- Location: Gurgaon/New Delhi, India
- Contact:
Re: What is programming in the real world?
yeah, here in india, there are many women in IT jobs.
and they're pretty good at what they do too!
and they're pretty good at what they do too!
haha. i'm sick of relationships. had amazing (read: horrific) experiences with girls.So, you are unlikely to find your lifebonded at work,
"Do you program in Assembly?" she asked. "NOP," he said.
"Intel Inside" is a Government Warning required by Law.
"Intel Inside" is a Government Warning required by Law.
Re: What is programming in the real world?
A feeling most people experience from time to time. You'll get over it.redoktober wrote:i'm sick of relationships.
And there are, I am sure, many girls around who had "amazing" experiences with men. Doesn't mean all girls (or men) are alike.had amazing (read: horrific) experiences with girls.
Every good solution is obvious once you've found it.
-
- Member
- Posts: 109
- Joined: Thu Feb 26, 2009 12:58 am
- Location: Gurgaon/New Delhi, India
- Contact:
Re: What is programming in the real world?
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?A feeling most people experience from time to time. You'll get over it.
"Do you program in Assembly?" she asked. "NOP," he said.
"Intel Inside" is a Government Warning required by Law.
"Intel Inside" is a Government Warning required by Law.
-
- Member
- Posts: 109
- Joined: Thu Feb 26, 2009 12:58 am
- Location: Gurgaon/New Delhi, India
- Contact:
Re: What is programming in the real world?
i guess this isn't the best place to talk about my biggest mistakes.
"Do you program in Assembly?" she asked. "NOP," he said.
"Intel Inside" is a Government Warning required by Law.
"Intel Inside" is a Government Warning required by Law.
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: What is programming in the real world?
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:
This post was really eye-opening:
And then the poor guy who just got randomly raided by the FBI...wow. I'd have flipped.* 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.
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Re: What is programming in the real world?
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.
But if you get fired for showing up a more elegant alternative, that's not the company you want to work for anyway.
Every good solution is obvious once you've found it.