Sign in to follow this  
Toonkides

Any seriously Employed Programmers out there?

Recommended Posts

I am close to graduation and I am highly considering programming as a job. I have heard the many praises of the field and some of the negative things of it as well. My question is this: what are you faced with? If it's not confidential would you mind sharing problems or situations you were given or came to throughout your career? What are the easy situations like? What are the hard ones? Is programming really problem solving or writing code for something that is seemingly easy or both? Thanks in advance

Share this post


Link to post
Share on other sites
I am an employed programmer. I only graduated college last year. While in college, I worked at Halliburton, and now that I'm a graduate I work for the U.S. Army. I hear people talking about how there is no money in this field and no jobs. That's a lie. Most of the people I went to school with are now employed and make a salary far above the average man. Where I live, the cost of living is next to nothing. You live in an upper-middle class suburb if you can afford $700 a month for rent. It's just cheap here. The average CS graduate here makes about 30,000 a year. I make closer to 60,000, though I'm only one of three people I knew in college that makes that much so soon after graduation. The average salary here for average people is about 13,000 a year, so with a CS degree you make over twice as much on average.

Anyways, about the career. I wanted to be a game programmer in college and thought it the hardest field, and I thought that game programmers were the best programmers. While that holds true in some cases its not always true. I do web design with .NET now. I used to make fun of the web people. Little did I know how much there was to it. Imagine that for these simple web pages, you have all these XML files and XML schemas that you have to parse, all these databases you have to read from, all this code to write to make the pages dynamic, and then add to it that a browser is stateless and watch your problems get more compilicated if you want the browser to remember anything (yeah, hard to believe some places won't let you use cookies, but that's just the way it is). It gets complex quick. The really bad part about all that is that if you mess up your design even a little (and I do my own designs for my own projects usually) you usually have to scap a large chunk of your stuff. Anyways, I've worked on an automated testing team writing testing scripts for Halliburton (which was quite fun and interesting), I've worked on a software porting project for the government (which sucked. Never take a job porting software) and now I do web design and tool development. The easiest thing was testing, the hardest is this web design stuff, but the suckiest was porting software. Nothing could suck worse on it's suckiest day if it had an electronic sucking machine than the suck that is porting old software.

Share this post


Link to post
Share on other sites
I am a professionally employed programmer working for a contractor. I am fresh out of undergrad CS.

I can't be terribly specific but I'll try to address the questions as best as possible.

I like my job because on a day-to-day basis I never know exactly what I'm going to do. My boss trusts me with some quick response hotfixes: these are generally somewhat stressful and sometimes have been blind fixes because my security clearance is pending. However, I have a higher visibility to our clientele as a result. I write new modules, and most of my time is spent maintaining our existing codebase. I also test and document when I am needed there. I didn't forsee the need for maintenance -- it is critical that you become good at debugging and reading through other people's code. I am okay at it, but you learn to get better at it and use all the tools at your disposal. It definitely teaches you to program in the most literate way possible. Generally they start people out maintaining other people's code and then let you graduate to writing your own as needs arise.

I think the hardest situation I came to so far in my career had to be last summer as an intern, I was porting a lot of code from C to C# and it really dragged the spirit out of me. I was very close to just disowning computer science in general because it was so mind numbing to translate:
c = *num++;

into its C#-equivalent. Eventually I worked through it and talked over my troubles with my boss. He was sympathetic but he also had a point in saying not all of work is going to be super-fun. So I developed a bit of a better work ethic and now try to convey my better attitude to him. I suspect that many of my 'hardest problems,' will probably not be technically-oriented but more career-oriented -- however I think that is the price I pay for being a technically-minded person. Granted we don't do wild things at my company, but still.

Also at work they have all sorts of fun tools like code coverage analysis and Boundschecker (for when we drop into C++).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I am currently doing some contract work at a game company. All my jobs since graduating college in '99 have been at video game companies (not _completely_ accurate... but essentially so).

The hardest thing for me has just been finding motivation. I'm now on my 5th seperate employment. 2 of them were at the same company with a year long break between them, and 2 of them lasted only a week or less.

I know now that motivation, for me, comes a lot from the environment at the workplace. This place I'm at now is fairly agreeable to me, and I'm getting things done and not getting that 'man I need to get OUT of this place' feeling. I might even stay after my contract work is done.

Share this post


Link to post
Share on other sites
It took me a couple of months to find a good job out of college about five years ago, and I worked for a great company. They employed about 150 people, 20 of them engineers, and 5 of them in software.

The company was entirely focued on getting the job done, and quick & dirty was generally the way to go. It was a little frustrating because I wanted to design and build a more solid product than what we had, but there was never any time to do so.

Now I work for a very large defense contractor and I hate it. Half the people are flat out idiots, a quater left are disgruntled, worn-out, or beat-down and/or don't care, and the last quater just started within the last six months. We have a contractually requirement to use Linux, but our IT is contracted out to another company and Linux support isn't included so we're not even allowed to connect our development machines to the network.
I had very, very high expectations coming in, and I've found that I have more experience doing this type of work than all but ten people in this multi-thousand person facility. My input doesn't count for squat, my bosses input doesn't even count for squat.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
2 of them were at the same company with a year long break between them, and 2 of them lasted only a week or less.


Ah. Midway?

Share this post


Link to post
Share on other sites
I graduated with a Bachelor's in Fine Art, but because I had been programming a lot on my own, I landed a job as a junior software engineer doing embedded systems work. I found the job very enjoyable as I learned more and more about programming, but after three years with the company I knew it was time to move on; I'd learnt all I could there. Luckily I got a job at a games company where I did sound programming, tools and tying up loose ends. After two years there I left and joined a different games studio. It's been two years since and I am still learning. The best thing about my job is the opportunity to problem solve with a group of really talented people. The worst part of my job has never changed over the six years I've been a programmer: schedule changes and personality conflicts. When someone I work with drops the ball, it effects everyone. The same with changes in the schedule. There's nothing you can really do about it, you just learn to anticipate them and cope. Programming is problem solving at a very abstract level - you are creating your own problems that need to be solved. The games industry is still a job though, and some times I don't want to come to work, but other days I can't wait to get in to the office.

- S

Share this post


Link to post
Share on other sites
I want to say thanks for all the great feedback. You guys give me the feeling like I've been in the industry for a month or two :) I have made a few large scale(for me at least) projects of my own and my programming experience lies in c++.

I know C# is coming around the corner, but I keep debating whether I should master c++(along w/windows or directx) then move on OR learn both side by side...The drawback of course is that my attention would be mixed and I wouldn't be specializing in c++ in the way I'd want to

What do you guys think?

Share this post


Link to post
Share on other sites
I've been programming professionally for 5 years. I started out working on C++ applications. Now I develop web applications using mostly Java.

Most enjoyable: Being able to work on a project from start to finish - from design, to implementation, QA/bug fixes, and production rollout.

Less enjoyable: Joining a project that is already in the QA phase (and was rushed there). Reading through thousands of lines of poorly documented code, written by people who have left the team.

Requirements changes can also be hard to deal with. Many times, I've had to rip out large portions of code that I wrote because the business priorities have changed since the start of the project. Also, when requirements are incomplete and have holes in them, that can lead to the worst kinds of bugs that take the most effort to fix, because it usually involves completely overhauling something. These kinds of problems usually result in a lot of code fixes getting pumped out quickly without much design thought and no time to write any documentation - or even to update the original requirements documents! Since requirements and code are out of sync, the QA team gets confused about what to test and they start reporting bugs that aren't really bugs - while they miss the real bugs, which slip right into production.

Share this post


Link to post
Share on other sites
I work on my own from home and find it quite lonely.

I've recently read Lakos book on Large Scale C++ Design which was written 8 years ago. Many of the things in there I already knew because they have been adopted widely by other authors and I had learned them through other sources. Pretty much none of what he suggests is done in our company. I am very frustrated. I feel like I am an educator at heart (not necessarily a really good one but I need an outlet). There is no room in the company for introducing ideas. Everyone just gets on with their own things. We don't have any coding practices and have never had a code review. Ever. I've been working here for almost 6 years.

I've never received any training and am totally self taught in programming. I did a degree in mathematics and at most I now use a bit of multiplication and sometimes some division. Actually that's not totally true [smile].

The work I do, though, I enjoy. I get to work with OpenGL and eventually will be heading up the design on 3d displays of GIS data which is cool. I have things to look forward to, etc.

I am well paid (I think), and feel a little trapped because even if I'm not sure about where I'm heading in the long run and don't want to sit in this room on my own for the next 10 years, the money is good.

If someone offered my a game job for half the money I'm on, though, I'd take it.

[Edited by - petewood on July 9, 2004 5:27:03 AM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I am working for abt 3 years in company which develops 3rd party tools for games ...its fun and its hard too.The major challenges I faced were basically to keep myself motivated during crunch periods ..also when your personal life demands ur time..its very difficult sometimes..but i guess these problems are there in every field..
Regarding technical stuff..my boss is one great guy and he helped me a lot during the days I was lost.Anyways meeting specs is no joke.

Share this post


Link to post
Share on other sites
Worked in a game studio for 6 months until their title was dropped & found myself jobless. Now at a software developer using C++ & lots of SQL. If you're a real programmer I think solving problems is more important than whether it's for a game or something else. Just my opinion though!

Share this post


Link to post
Share on other sites
Quote:
Original post by Magmai Kai Holmlor
Now I work for a very large defense contractor and I hate it.

Why not attempt to change your job? They can't be paying you THAT much. If the company is so terrible I wouldn't mind losing a couple of dollars to get into a nicer environment.

Anyway, I graduated this may and have worked since June for over a month now. My salary is fairly high above average for CS graduates, but then I had plenty of experience and wasn't even looking at entry level jobs. Took me about two months to find this one. The environment is great, so are the people. I work with C++, threads and TCP building trading systems servers. Can't say I'm too impressed with the technology (much of it is a quick-and-dirty get things done, no elegant designs), but the pay, the environment, and the experience to go on my resume far outweights this little inconvenience. Besides, I'm learning things about servers anyway...

In any case, I think that if you're good at what you do you can always find a job. It may not be your dream job, but it'll pay the bills. The economy only affects programmers that went to trade schools or slept their way through CS courses in a university. Every single friend I have that's good at what they do haven't had problems finding jobs.

Share this post


Link to post
Share on other sites
Quote:
Original post by Magmai Kai Holmlor
It took me a couple of months to find a good job out of college about five years ago, and I worked for a great company. They employed about 150 people, 20 of them engineers, and 5 of them in software.

The company was entirely focued on getting the job done, and quick & dirty was generally the way to go. It was a little frustrating because I wanted to design and build a more solid product than what we had, but there was never any time to do so.

Now I work for a very large defense contractor and I hate it. Half the people are flat out idiots, a quater left are disgruntled, worn-out, or beat-down and/or don't care, and the last quater just started within the last six months. We have a contractually requirement to use Linux, but our IT is contracted out to another company and Linux support isn't included so we're not even allowed to connect our development machines to the network.
I had very, very high expectations coming in, and I've found that I have more experience doing this type of work than all but ten people in this multi-thousand person facility. My input doesn't count for squat, my bosses input doesn't even count for squat.


I don't work for a defense contractor, but I've had similar "large shop vs. small shop" experiences. Small shops have always been more fun for me. Alas, they also tend to shut down when the economy goes sour.

Share this post


Link to post
Share on other sites
Quote:
Original post by CoffeeMug
Quote:
Original post by Magmai Kai Holmlor
Now I work for a very large defense contractor and I hate it.

Why not attempt to change your job? They can't be paying you THAT much. If the company is so terrible I wouldn't mind losing a couple of dollars to get into a nicer environment.


If you do that I suggest doing it early in your career. I made such a lateral move once and it took years to get me back to a salary commensurate with my experience.

Share this post


Link to post
Share on other sites
The grass always looks] greener on the other side. Its not worth taking risk like that late in your career. Secondly early or later in career, don't ever sell yourself low.

Share this post


Link to post
Share on other sites
I currently work with a game development company that has already produced a very successful title, and is starting work on an expansion pack. I originally joined the team as a low-level volunteer late during the development of the game, and primarily worked with their proprietary scripting language; since I've moved on to work on the lower levels of the engine itself, both in feature addition and troubleshooting. All of the interesting stuff there is under NDA, but the main challenges are probably familiar to anyone who's come in on a project like this. The code base is large by my standards, although not particularly huge for the game industry (120,000 lines of C++, and 145,000 lines of scripts). The engine was developed over a long span of time and has a lot of half-explored features that are in the code tree but not compiled into the release versions of the game, so working with it can be confusing. To make things worse, what little documentation is available is predominantly in German. All in all though it has been a great experience, and it's incredibly rewarding to see people's reactions to your work on a game.

I'm basically on my own in this project, as the project manager and lead programmer are very difficult to get in contact with. They're insanely busy, since the company itself is quite small, and it doesn't help that they live several time zones away, so our "awake times" don't overlap too much. When they can, though, they're a very good asset to the team, and extremely helpful. Working remotely has a lot of disadvantages, but it's great to be able to work from home as I do and fit work around my life, rather than vice versa.

In a month or so I will be taking on a full time job with an internet provider, and this game job will be shifted to a part-time deal. For this ISP I'll be doing a lot of business-type logic and networking related coding. I've done some contract work with them in the past (primarily with billing and customer tracking systems) so the environment will be somewhat familiar, and that's a big plus. Again the company is quite small, so I ran into problems with everyone being incredibly busy. This leads to a high degree of independence, which means that any problems I might possibly be bale to solve, I have to solve myself. This is true in both jobs; there's still overarching guidelines and goals set by the team leads, but within those rules there's a lot of decision-making to be done.

Naturally both jobs, being with small companies, aren't exactly paying six-figure salaries; I'm barely making enough to live off of. Of course I can't really complain about that, because I'm having a criminally good time with all this [wink]

I've also spent quite a bit of time working as a freelance contractor. The advantages of being able to control your workflow and schedule are great, but it's hard to continually move on to different situations and projects. The people get downright annoying after a while, too...

I've found that all the jobs I've worked on are a mix of problem solving and grunt work. Sometimes you have to do something really creative to get things done, and sometimes you have to sit there and poke keys in some repetitive pattern that a drunk monkey could learn in three seconds. There's a fair bit of bad that comes with the good, especially in my case where I'm working basically 16-17 hours a day, every day, all week; for me, though, programming (especially in the environments I'm working in) is a great joy, and it's worth the headaches for the fulfillment of finishing a project.

Share this post


Link to post
Share on other sites
Careers aren't all they're cracked up to be. There are far more important things to be doing than working long hours and getting paid lots of money. I had a lot of fun taking a year out and spending very little money in south america and east asia. It's amazing how little you need to be happy and healthy. I spend very little now.

If you find a job you like but are short of cash, there are lots of ways to save money by getting down to the bare essentials of what you need to live rather than looking for a better paid job which you don't enjoy.

Buy fruit at the wholesalers. Share it with friends (there's no way you would want to eat a whole box of bananas in a week), etc.

I'm not talking about buying things on cheap websites. Just don't buy them at all. You don't need them.

Don't get into debt. If you are, use any money you have to pay off credit cards (or whatever has the highest interest on it). It's worth it in the long-run. Get rid of your debt before you start accumulating possessions. Once your debt has gone, forget about the possesions and be free.

So there you go, the stress of needing a well paid job is usually spurred by debt or the need to possess. It's good to try dealing with those elements of your life as things that can be changed as much as trying to change your job.

Friday afternoon burnout. Have a good weekend all.

Pete

Share this post


Link to post
Share on other sites
Just out of curiosity, what is an average salary for an entry level and experienced software engineer/desinger?

I remember seeing in a magazine once an experienced (+5yrs) Java programmer could expect between $85 - $105,000 a year? Could this figure be correct?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Frugal living is definitly the way to go. I pity the people I work with who spend all there money on car payments, car insurance, plasma tv's, harleys, and alot of other crap. Its so pointless. Look at the people on mtv cribs; all that stuff doesn't make them better people or better programmers. They spend there money frivolessly, mean while my bank account is getting huge and I'm looking at an early retirement.

Working in a corparate environment definitly has its challenges. The people in my aisle can be very annoying. As a gameprogrammer/hobbyist you will undoubtedly have much greater skills and depth of knowledge than the average programmer.

I'd like to do more interesting work, I imagine programming for embedded systems would be more fun. But I really like my job security too, so I'll most likely stay put for the forseeable future.

Share this post


Link to post
Share on other sites
Quote:
Original post by petewood
Careers aren't all they're cracked up to be. There are far more important things to be doing than working long hours and getting paid lots of money. I had a lot of fun taking a year out and spending very little money in south america and east asia. It's amazing how little you need to be happy and healthy. I spend very little now.

If you find a job you like but are short of cash, there are lots of ways to save money by getting down to the bare essentials of what you need to live rather than looking for a better paid job which you don't enjoy.

Buy fruit at the wholesalers. Share it with friends (there's no way you would want to eat a whole box of bananas in a week), etc.

I'm not talking about buying things on cheap websites. Just don't buy them at all. You don't need them.

Don't get into debt. If you are, use any money you have to pay off credit cards (or whatever has the highest interest on it). It's worth it in the long-run. Get rid of your debt before you start accumulating possessions. Once your debt has gone, forget about the possesions and be free.

So there you go, the stress of needing a well paid job is usually spurred by debt or the need to possess. It's good to try dealing with those elements of your life as things that can be changed as much as trying to change your job.

Friday afternoon burnout. Have a good weekend all.

Pete


Some of us have children, wives and the like, and although we don't require much (me for instance) our families tend to. For instance, the next school year is about to start and I'm sure my three children are going to want new school clothes, backpacks, lunchboxes, etc. My wife wants makeup, clothes, etc. If it were just me I'd live in the backseat of my car traveling the world, but my life is more complicated than that.

For many of us, careers ARE all they are cracked up to be and more. I was a furniture mover for years while I went in college, making $7.00 dollars an hour, working 40 hours or more a week, going to school, doing my homework, spending time with my kids and my wife, and still finding time to work on my own projects. Now that I'm done I make about $30.00 an hour, and all I do is go to work from 7:30 - 4:30 everyday and sit at a desk, and all I have to do when I get home is hang out with my family and watch them enjoy the things I can now afford to get for them. Not to mention I get paid something I enjoy enough to do for free for fun.

Share this post


Link to post
Share on other sites
Why can't your wife get a job herself then if she so desperatly wants make-up and fancy clothes? I would never work with something I don't like just so I can afford to live. What would be the use of me living if what I do all day is something I don't enjoy?

I aspire to be a writer one day myself, and if that makes me too poor to support a wife and/or children I guess I will have to do without a wife and/or children.

That's just my view on things!
Take care!

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Frugal living is definitly the way to go. I pity the people I work with who spend all there money on car payments, car insurance, plasma tv's, harleys, and alot of other crap. Its so pointless. Look at the people on mtv cribs; all that stuff doesn't make them better people or better programmers. They spend there money frivolessly, mean while my bank account is getting huge and I'm looking at an early retirement.

Working in a corparate environment definitly has its challenges. The people in my aisle can be very annoying. As a gameprogrammer/hobbyist you will undoubtedly have much greater skills and depth of knowledge than the average programmer.

I'd like to do more interesting work, I imagine programming for embedded systems would be more fun. But I really like my job security too, so I'll most likely stay put for the forseeable future.


While I'd agree that frugal living is the way to go, it all depends on what you value. What good is retirement if you tortured yourself for 20 years go get to it (and still have to live frugally in retirement). Personally, if I didn't have a job I'd be bored to tears (and too broke to be able to buy video games to entertain myself).

You mention skills and depth of knowledge, which means you value these over posessions. Clearly, this is a matter of what you value over what others value. For most people, having those skills is simply a means to get those posessions (that doesn't mean that they don't enjoy programming... but how many people, if they were born with $100 Billion would program 40 hours/week for the fun of it?).

In the end, you can't take it with you. Posessions OR knowledge... so figure out what you value, and what you enjoy doing, and base your life around it.

I might note that the previous poster (2 posts back) makes a GREAT point, I can easily empathize with him. I am perfectly happy living out of a cardboard box, but the people I want in my life necessarily aren't happy living out of a car. So, because I value my family more than my own credit rating, I work to buy them stuff like car insurance, a TV and an apartment. If you don't think working to pay for these things is worth having these people around you, then don't have them around you (or don't have kids).

So it all comes down to what you value... so what do YOU value?

Share this post


Link to post
Share on other sites
Quote:
Original post by JohanOfverstedt
Why can't your wife get a job herself then if she so desperatly wants make-up and fancy clothes? I would never work with something I don't like just so I can afford to live. What would be the use of me living if what I do all day is something I don't enjoy?

I aspire to be a writer one day myself, and if that makes me too poor to support a wife and/or children I guess I will have to do without a wife and/or children.

That's just my view on things!
Take care!


Who said anything about fancy? She wants makeup because what woman doesn't, and she wants clothes because her clothes get worn out over time. Same with the children. I suppose I'm on a site with a lot of idealistic youths who have no real clue about life in the real world and whatnot, but it's a sad fact of life that you need money to live. If you really think that you can be perfectly happy in total poverty and without personal possesions, then why don't you go ask that guy that lives in the box in the alley that digs his lunch out of the KFC dumpster. I'm not trying to be an ass, but truly, how many people could be totally happy living that way?

Share this post


Link to post
Share on other sites
Quote:
Original post by xg0blin
If you really think that you can be perfectly happy in total poverty and without personal possesions, then why don't you go ask that guy that lives in the box in the alley that digs his lunch out of the KFC dumpster.


I didn't say I was going to live in total poverty did I? ;) There's a balance between how much of your time and energy you're willing to surrender to make a living.

In Sweden, we also have a wellfare system that saves a lot of people from ending up living in dumpsters, even if it does not save them all.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this