PDA

View Full Version : Advice for Aspiring Programmers



SuperMike
December 14th, 2007, 10:05 PM
Here's my tips for aspiring programmers / web developers just out of college:

* This is not the career to be in. Go back to school for something else. No joke. As you read further, you'll realize that programming and web development, at least when working for an employer, is not something that's going to give you lifelong satisfaction or even satisfaction beyond a decade. About the best thing I can say, besides going it alone and taking the risks of no business for awhile, or having to retool/retrain on your own cash because you're working for yourself -- the only other option is to go back to school and learn something else.

* Never assume the language they hired you for is the one you'll always use and love. This is got to be one of the most frustrating parts of the job. You may be a PHP programmer and know you hate Java, or a Java programmer and know you hate PHP. Or you may love PHP and Java but think that Python, Cold Fusion, or Webspeed is a complete waste of time. So you start the company and work 4 years in your favorite little language of choice, but the company could change direction rapidly and you'll be stuck having to learn a new language in perhaps as little as 2 months, and having to pretend to love it.

* Never assume the database server product is one you'll always have, or the one you'll like working with. This kind of goes along with the same thing as the programming language.

* Get used to moving from job to job a lot. Want to start a career with a wife and family? Good luck. You'll have to let them know ahead of time that they're going to need to be portable at least every 5 years. Sometimes when a company switches programming languages on you, or moves you into another department that uses another language, your performance may go up, stay the same, or go down. But if it goes down, or you just don't like programming in the language they give you because you find it frustrating, get ready to being forced to move in order to save your career and to continue to have positive performance reviews.

* The experts aren't always the experts, and you may be forced to live with that. In the IT industry, there's often a lot of liars. You may encounter a CTO who has a PhD, but in his country of origin he may have paid someone off to get that. You may encounter an outside consultant who lied his way in and, if you check enough facts among many things he said with many other professors and known experts in the field -- you may find the outside consultant is giving you phony information. You may also find you're working for someone with "Senior" in his name but, time and time again, you prove that you know more than he does. Regardless of this, if you find your manager is swayed by these phonies, you can either play along or move on.

* The technology changes fast. Can you? The technology changes at a phenomenal rate. Just as you are working hard on one project in a year, new guys have learned something completely new that changes everything (like AJAX and JSON). Sure, you can learn things here or there to catch up, but sometimes you don't always have the time. So you stay mired down in a project and you meet your deadlines. But then the project ends, they don't need you in that department, let's say, and you look for another department to work in. There, you find they want a guy who already knows something, and has job experience, for something you don't know or have. So get ready to resign.

* Employers will actually criticize you for moving from job to job a lot, having no understanding about the industry challenges you face. Employers don't think much about the above items. HR Reps, especially. They'll challenge you and ask why you moved from job to job a lot. All you can say, I guess, is that the contract ended and you sought to continue interesting work in that chosen programming language. Let's hope they buy that argument and don't hassle you. Me? I got hassled at least twice over this.

* Telecommutes are few. Even if you get one, there's disadvantages too. From what I've seen, there's quite a lot of opportunities for telecommuting employment lifestyles. However, they're only about 30% of the total programming market from what I've seen. If you are lucky enough to get the opportunity to telecommute, note it may not always be lucky. First, you don't have daily face-to-face interaction with your manager. Therefore, you may not get any visual information from their face or body language, or overhear them, to know whether your reasons about deadline/task delays were well-received. You also don't often know about office politics such as a performance problem with you (before it becomes an issue). You may also not know enough ahead of time about a major change to the project such as ending it, changing it in a way that's unfavorable to you, or other disappointing or frustrating thing. If you had been in the office every day, you would have gotten some of these things through office gossip, perhaps, and would have been able to potentially divert it. Second, by telecommuting you may not make good contact with other departments where you could migrate to once this contract ends, and therefore could be shooting yourself in the foot because you weren't in the office to make that connection. And third, employers swap managers, managers change their minds, or managers may be given edicts by their employers -- and *poof* there could go your telecommute option. If you were all nice and comfy with it, you better not gripe not even once if they ask you to park your butt in a cubicle, even a half-walled, L-shaped cubicle, every day -- if you do, it could be a negative performance appraisal. The problem is, telecommutes are nice and comfy, and it really sucks to get told you've been cut after the contract ends, or sucks because they took your telecommute away and force you to work in a cubicle.

* Companies like cheap programmers. Evidently, company quality control is out the window these days. Companies think they can get away with cheap programmers in foreign countries. Often, you get what you pay for, and this is about 50/50 the case -- you could get better, or you could get worse. Sure, they're cheaper, but so are testers. In fact, testers come super cheap these days. So, employers have learned that it's better to get cheap programmers overseas and hire cheap testers in the country of the HQ (or, surprisingly, outsource even that). Note that they may also label testers as "product/project managers" when they're not really anything more than testers and someone who checks off items from a task list or report things to developers. So, it's okay to release programs with lots of bugs and just make the testers work harder these days. It's okay to make the project take 2-3 times longer than normal -- at least it's cheaper. Or is it? Well, it's cheaper initially, but you'll be surprised by how much longer the project takes than promised, or how much it ends up costing the employer in the end. Therefore, if you want to continue to work at the company, don't be eager about a pay raise, and if you get one, you're at risk of being cut because you just raised the project cost of the next project, meaning you might not make it to that project and some foreign couple of guys may end up getting it. Don't get me wrong -- the problem is not the foreigners. It's the employers and some of the lying that goes on from foreign outsource firm sales guys and CEOs.

* Don't expect a pay raise, or if you do, don't expect to catch the next project when this one ends. See the last paragraph -- it explains it all.

* When stuff breaks, and you swear it's a bug in the programming language or the database, employers will not often believe you. Get ready to be in a career where you'll have to do a lot of defending of your code or your knowledge of the facts.

* You don't know jack about deadlines. Sure, you met some deadlines in college and think you know about deadlines. Well, get ready for crazy deadlines on top of deadlines -- like a company or department in a tremendous crisis and you're the only guy, or one of several guys, able to keep the company going down in flames. I've worked on contracts where I arrive at 6:30am, took a 30 minute lunch, and went home at midnight, and had to do this for 4 months or the company would incur a huge financial loss. I did this even one month after my son was born, and my wife couldn't understand that the company would fire me if I didn't stay in the office all those long hours. Meanwhile, the project was so far ahead that it was too late to bring on new people and train them to assist. This can happen when a contract starts to go sour and the client wants something delivered faster than planned, or a major client assumed something, and a variety of other annoying reasons.

* Your spouse will not often understand. Programming and web development sure sounds fun, and sometimes it's got some slow projects where you can take your time and really enjoy it. But then there are days where your whole world is turned upside down and you have to justify with your spouse all these crazy hours. Sure, those hours may come back down again, but get your spouse prepared for them going back up again, over and over in several decades. And, often times you will find that not only does your spouse not understand, she cannot tolerate it. You may end up in a divorce over it. So if you want to start a family and do web development and programming, you may be in for some real heartache. You may lose the one you love, or lose precious months at a time from your wife or children.

* The wrong answer is No. It's always the wrong answer. Always say Yes and make it a real yes. And if you can't make it a real yes, either work on making it a real yes or get the heck out of that career. Yes you can use that new programming language next week even though you've never heard it before except without bouts of laughter in chat rooms. Yes you can meet that insane deadline if you live out of your car in the parking lot for the next 3 months or hide in the closet in the server room. Yes you can do five jobs at once even though you were hired to be programmer.

* Managers are pretenders in this industry. IT Managers like to pretend in this industry. They also pretend to know and love the technology. If they didn't, they'd have your job because it pays almost as good and isn't so easily cut when deadlines are missed because of things outside their control. They pretend to be good managers -- even ones capable of knowing the constraints you've been put under. But too often than not, the IT Managers I've encountered, and I've had plenty, are guys who like to ask insane things of you while they go home on time in their car that costs more than your year's salary.

* Managers will make you jealous of them. Don't get me wrong -- I've also been an IT Manager in charge of operations guys and programmers. And I've been a sysop as well as a programmer. Being an IT Manager sucks because you manage things that are hard to control because there are often too many unknowns as technology keeps changing -- delays and technology hurdles are just par for the course in IT. However, if you're a programmer, you'll be jealous of your manager because they make more than you and seem to not do much, yet go home most of the time on time. They may also get bonuses when you don't. But hey, bub, that's a fact of life -- that's how this industry works. Get used to it.

* Sysops will drive you nuts. Often you'll find that the sysop guys are in charge of the network bandwidth, the firewalls, the DNS records, etc. And you'll need these things checked into or fixed. Or you'll swear the problem is there's but can't get them to see the facts. There's a lot of natural animosity that can arise between sysops and programmers. You'll just have to get used to it. There will be finger-pointing on both sides, and there will be times when you have to realize that some of the issues are on your side of the fence and that you were wrong. This is because problems can be illusive. You'll also see the gamut of sysops who know a thing or two about programming, or those who do not, and you may end up frustrated because you may be stuck with one who doesn't understand what you're trying to say from a programming perspective.

* Forget about use case scenarios, functional specifications, and absolutely zero feature creep. If you can get all the non-programming staff to work with you just as you learned in school with use case scenarios, functional specifications, hosting-risk analysis, test plans, and accountability for feature creep -- fantastic. But too often I go from place to place where everything is done so unprofessionally these days. Whining won't help. So get used to it. And feature creep is the norm.

* Humongous disappointments can happen. Accidentally deleted that last batch of source code? Walked in and found the source code repository was corrupt for the past year? Accidentally deleted the payroll records for everyone with their last name ending in "est" at a client location because of a typo? Overwrote the wrong database and the database backups were not really functioning properly for the past 10 years? Hey, my little friend, get used to some phenomenal screwups. Some of these may even be your fault even though you try very hard to prevent them or claim that there's no way in heck you could screw up like that. It happens to the best of us. So don't assume anything, back the mess up out of everything more than once, and make code backups at least 3 times a day so that you have a fallback plan in case you lose something. And, even at that, you can never feel safe. Just suck it up and realize that bad luck is going to hit you one day, no matter what you do, and you better be professional about it when it does.

* Half-walled cubes and cube mates can be annoying. Occasionally I see the argument, "I'm switching all of you to half-walled cubes in development so that you can communicate better because we have team communication issues." Get ready for it to get so noisy, or for you to get interrupted frequently, that you can't think. Or, you may get an office with a door, but find that you can't write software with it closed because your manager doesn't like that. And even in an office with a door, your mate in the next cubicle or doored-office may do annoying things like resonate the floor with his foot, or stop, smack his hands together, and wipe his hands together really loud, or play loud Gospel music while you like Rap or Soul. Just because you're professional and polite, don't assume the guys you work with will be that way.

Are you wanting to be a sysop? Then see this item (http://ubuntuforums.org/showpost.php?p=3957589&postcount=1) for advice about that.

TreeFinger
December 17th, 2007, 02:30 AM
Why is there not a 'Programmer's Union'?

Vadi
December 17th, 2007, 02:39 AM
Aw, man! I'm doing my degree in IT management.

blithen
December 17th, 2007, 02:40 AM
Why is there not a 'Programmer's Union'?

+1

raul_
December 17th, 2007, 02:48 AM
Good post :)

I just can't help imagining you in each situation. bad bad me

Lostincyberspace
December 17th, 2007, 02:59 AM
Why is there not a 'Programmer's Union'?
Because you haven't started one yet.

jflaker
December 17th, 2007, 03:03 AM
Great list!

I especially like the ones about HR complimenting you on how many jobs you have had! I use a head hunter so I don't need to answer those questions.

TeraDyne
December 17th, 2007, 03:20 AM
I'm cynical at times, but even I don't normally see things THAT badly. Then again, my hometown only has a few IT-related jobs, and the employers are all extremely nice about everything.

If only I could have snatched up that last Sysadmin\Sysop job at my old elementary school. They're finally switching to Linux, but some uptight, executive-looking guy with only two years experience (but he's got a degree in Comp Sci) got the job, despite the fact that I have five-six years experience and just enough knowledge to pass their test with a 99%. Not that I'm bitter or anything. -_-;

Kingsley
December 17th, 2007, 03:30 AM
Looks like Mom was right. You should have been a dentist.

LaRoza
December 17th, 2007, 03:57 AM
Office Space?

psionyk
December 17th, 2007, 04:06 AM
Wow, not really sure what to make of all this, especially seeing that I'm studying Network Engineering in school. While I'm quite sure that every career will have its share of negative moments, I can't help but feel a little disconcerted by the perceived difficulty of a computer career by the OP's experience.

First off, I should say to SuperMike for the apparent hard times you've had in your career, I'm sorry it turned out that way for you. Your concerns sound and appear sincere, and from the detail of your post it definitely seems you are speaking from genuine experience and not simply trolling.

Having said that however, and no offense intended by this, but can it REALLY be that bad? While your post was clearly intended as an honest eye-opener, the picture it paints about the field is not a good one. Surely there must have been some positives in the field? I haven't had any indications from my studies and from people I've known in computers of the problems that you've described/experienced, so whether they in fact don't exist for people I've talked to, or I've had the proverbial wool pulled over my eyes, remains to be seen.

Since I haven't actually worked in the field yet and been exposed to anything like this, I (and anyone else in my position) is flying blind when it comes to thinking about their future while taking in your advice and feedback. One the one hand, you have a love of computers and technology to be studying this field, but on the other you can't help it if you have some of the wind taken out of your sails when you read something like this. (And honestly, it was kind of disheartening when I read it)...

Anybody else studying to work in this field feeling a little confused or concerned what to make of all this?

** Edit: And yes, I've also read the OP's sysop post as well.. **

raul_
December 17th, 2007, 04:27 AM
Dear psyonyk,

i study informatics engineering, and while I haven't experienced those problems, many times i've heard that academic life is completely different from professional life.

Keep in mind that this thread is only an advice, Advice meaning:

maybe it won't happen, probably it won't, but if it happens, you have been warned.

Don't worry though, if you like what you do, you'll probably run into some difficult times, specially because people are stupid, and they don't think the way you do, and most of them don't give a crap about you, they just want the job done. But in the end, you'll like what you do.

macogw
December 17th, 2007, 04:47 AM
A lot of those sound like the kind of things that would be really important to the type of person who only learned to program because they heard it made good money. To the type who really loves solving problems, tinkering with computers, and programming in general...meh, at least you're doing what you love, right?

For the spouse parts, just marry another programmer. He'll understand why you spend more time on the computer than with him. My boyfriend does. Most of our "quality time" is spent sitting together writing code, but not really talking to each other (except, maybe "hey you ever seen this error?") or talking about code. We understand that to each other, computers > people.

chewearn
December 17th, 2007, 06:45 AM
I used to moan and bitch about my job too, until I woke up one day and realised, my job should not be my life. You worked to earn a living, you don't live to work.

If you are one of many who spend two third of their lives in the office, earning an "employee" wage, here is a link to wake you up:
http://www.nytimes.com/2007/12/15/business/15rich.html?_r=1&oref=slogin


Nowadays, I try to get away with slacking off as much as possible
:lolflag:

Tundro Walker
December 17th, 2007, 12:04 PM
You should add "avoid in-house programmer jobs like the plague" to the advice list. Those are some of the most unsatisfying jobs, because they usually involve bashing something together hastily in "good enough" fashion, with very little time or budget (because you're in-house program isn't for making a profit, it's just for functionality), and in the long run, this "Frankenstein's Monster" comes back to bite you in the *** as later additions to it need to be done, but major reworks need to take place to implement them because the original work was "just good enough" for the time being but not good enough for easy upgrade or expansion.

I really sympathize with programmers, because I do some programming at my job, but I'm outside of the programming departments.

Jakob Nielson said that of all jobs, programming is where you really get your return on investment back the most. It's because programming, like writing a novel, takes talent and skill. While a good ditch digger might be able to do the work of 1 or maybe 2 ok ditch diggers, a good programmer can do the work of up to 5 or more mediocre programmers. Why? Because that good programmer has foresight to do something a certain way so it's quick, compact, expandable, useable, etc. You get what you pay for really is true in programming.

But what amazes me is how most programmers are treated like utter crap. It's a job where you need complete concentration, but they stick you in a cube next to someone who interrupts you every five minutes because they're too lazy to look up reference information on their own. You should read the Joel On Software web-page for all the annoyances, and ways to get past it.

To get a feel of a programmer's life ... at my job, most software was done in-house. However, the company paid bottom-dollar for their programmers, so we'd get recent grads with no real-world experience, or hobbyist programmers who were ok if they had all the time in the world, but easily screwed up when under a deadline. So, they generated tons of sub-systems, like a billing system, a product system, etc, and didn't communicate so they didn't work well together. Then they had to add other systems to it...it was literally a Frankenstein's Monster, because to get something new to work with it, you had to rework about five other things. It was buggy and folks were unhappy, including the programmers, because they were given unreasonable deadlines. Afterall, the company doesn't get paid money for the programmers to work on in-house software...the company gets paid money selling stuff. So, the inhouse programmer was always looked at as a "necessary evil" at best, and "scum of the universe" at worse, depending on if the app you were working on (that they made) was crashing or not.

So, new company buys out where I work. They decide we're not a programming company, so why do we do all this programming? Well, they fire about 1/2 the programmers after deciding to buy some pre-packaged software systems that a third-party company will tweak and manage for us. The programmers that are left will just integrate a few sub-systems into it, and then (most likely) get fired later.

These programmers are given the crappiest PC's to develop on ... it's freakin insane. I sat with one one day to work out a bug in an online system, and it took 3 mins for her code libraries to load. She had like 256mb RAM, some 1.0ghz cpu ... crazy. The machine I was using was 2+ghz cpu, but, again, had only 256mb RAM until I went out and bought my own 1gb stick to put in it.

The programmers have to work all kinds of god-aweful hours, either coming in very early and leaving late, or coming in at 2nd or 3rd shift hours. I really don't see how they can have a family. It's almost like sweat-shop labor. They're despised by most folks, because any time something goes wrong with a system, they blame the programmers (which is especially bad, because the recent programmers didn't cause the problems, they inherited the crappy system from the folks that made it 2 years ago.) And, what kills the programmers is they're not allowed to do the best work they can. It's always rush-rush to meet some crazy deadline, so a lot of kit-bashing and ad-hoc code gets written, which, like I said, leads to more problems in the future.

There's long hours, little job satisfaction, and folks blame you for everything. That's pretty much in-house programming (at a typical company) in a nut-shell. There are some companies that are programmer-centric, and value the programmer, but they're usually ran by those rare techie business folks who understand what programmers have to go through and what they need to do a good job. Those are hard to find.

Luggy
December 17th, 2007, 02:52 PM
* When stuff breaks, and you swear it's a bug in the programming language or the database, employers will not often believe you. Get ready to be in a career where you'll have to do a lot of defending of your code or your knowledge of the facts.

It's not so much that you have to defend your code, it's more that they don't care what the problem is, they just want it resolved.

Me: Sorry Sir, there is a bug in the QT Libraries that is preventing us from printing nicely in Windows.

Boss: Oh.... Well what are you going to do about it?

fatality_uk
December 17th, 2007, 04:20 PM
As a Head of IT, let me put my side to even things up a little :)

1) If your boss tells you to work on an "old" machine, tell him that if HE wants you to be as productive as possible, that old pile of junk wont allow you to do that! Lets face it, programmers are usually NOT on minimum wage, so the company has made an investment in YOU. Make the most of that knowledge!!

2) Don't over specialise. I hire people based not only on what they can offer today, but in the future as well. It's all good and well being a PERL scripter. You might be the best in the world, but unless you have a rounded knowledge of all aspects of web development, from understanding a DB schema to checking for SQL injection attack backdoors, then I am afraid you are not giving yourself the best opportunity to develop a career in IT as a web developer.

3) Luggy, I understand what you're saying. I have been there, if you tell me the QT libraries are screwed and you're responsible for printing under windows, the first question I am gonna ask is of course "Oh.... Well what are you going to do about it?" I might well understand, technically what the issues are and quite frankly, if I can get to a terminal and get coding I will. But that's not my job. If I have the MD breathing down my neck asking why 125 users can't print, do you think he's gonna be happy with the answer, "well the QT libraries don't work..." His question to me will be, lol, yes you guessed it... "Oh.... Well what are you going to do about it?"

4) Be ready to re-train!! Look at it this way. Around 2002, the company I worked for asked if I wanted to go onto this "Linux Admin" training thing as they wanted a wider knowledge base within the company. As C.D.O. I didn't need to go, but now on my CV, I have Linux system administration course passed :D I forgot everything about a week later has to be said :lolflag: If a company offers you training, it's usually because they see you as a member of staff that can use those new skills to help develop the company. Plus, it's always a benefit to have more training for your next role.

5) Don't get caught up with the "I want to work for Google" syndrome. There are many, MANY IT related jobs in all sorts of sectors. Working specifically for a software house, or development company is great, but there may well be a funeral parlour close to where you live with 35 PC users across 5 sites!! Managing that can be just as much fun as say a role with Accenture or Google.

But just to summarise!! A career in IT is challenging yes, but often very rewarding. IT is a growing career. Think about how many stores, businesses, organisations, groups, education establishments and government departments could NOT function without IT!!!

Tundro Walker
December 17th, 2007, 05:13 PM
As a Head of IT, let me put my side to even things up a little :)

Don't listen to him! He's in Management!:)


2) Don't over specialise.

This can't get stressed enough. Joel Spolsky's philosophy is to hire folks that are "smart" and "get things done". You want someone smart for exactly the reason Fatality (and everyone else in IT/IS) mentioned ... technology changes fast. The basics are usually the same, but there's always some new programming language coming out that some company has gotten talked into using because it's "50% faster than C!" (and even the dullest MBA knows that C is the "standard" programming language...so 50% faster than C...wow, sign me up!) And then they get stuck with half their inhouse systems coded in this new language which loses support after the summer intern who created it over at Cal-Tech got a job working some place and didn't have time to maintain it. But that's beside the point...new stuff comes in, and you should embrace it with a tempered hand. It's good to learn new, bleeding edge stuff in your spare time, but at a job, don't try to talk everyone into using that tech until it's tried and true. And, on the other end of the stick, don't be a dinosaur...you don't want to get stuck as the only FORTRAN developer on Earth who asks $1,000,000 / job because nobody else uses FORTRAN...everyone else has moved on to something more robust.

It's also good to know the market. Folks complained about Visual Basic for a long time, how it wasn't a "real" programming language...but guess what, the MBA's at the company are calling the shots (usually), and it's usually all about the bottom line with them. What they learned early on was they could get a VB programmer for about $40-50k, where-as a C or C++ programmer cost more. So, you guessed it, a lot of things were built with VB, because there were more VB programmers out there (thanks to MS' marketing of the language, and it being fairly easy to pick up). With more programmers flooding the market, the price for those programmers went down, which made them that more desireable. Now things have moved on to C#, and more folks learn it, the avg salary goes down. Of course, "knowing it" and having 10 years experience with it...two totally different things, which is again why you really do get what you pay for when it comes to programmers.


We've talked a lot about programmers, but from the management stand-point, you should always hope to work for someone that wants to know what you need to get your job done. Like Fatality said, he recognizes a programmer's role and status on the food-chain...so he's not going to give them a POS machine to work on.

Another thing I agree with Joel on is that East coast and West coast management have different philosophies. Maybe it's because East coast management is nearer to New York, and thus more cut-throat from a business perspective...I don't know. But when there's a problem, East coast management usually says "what are you going to do to fix this?" Where-as West coast management usually says "what do you need ME to do to help you fix this?"

Half of your liking or not liking your job as a programmer really comes with what kind of boss you get. Another quarter comes from the group dynamic you're in (are you working with talented folks who get things done, or are you constantly re-writing some screw-ups code?). Working on a project that will inevitably change humanity for the better is always a lofty goal, too, and not always what you end up with. Sometimes you get stuck working for a company that's just churning out a quick product to make a quick buck... That's why you develop FOSS in your spare time...:)

BDNiner
December 17th, 2007, 05:21 PM
I have to agree totally with what the OP said. After spending the past 3 years working for an IT company in the healthcare field i can say that my job is not that satisfying. Once i got the job managing the help desk it freed up a lot of my time so i decided to start learning linux and that is what gets me through the day. I think you really need to high light the politics more.

I have users who i speak with several times a day, but they will not talk to me about their problems. instead they go straight to their department head and then she comes down like a ton of bricks. I explain to her that i spoke with the user twice this morning and they didn't specify any of the issues that you are bringing to my attention now. I also find especially with the older employees that they think that i am here to do their work. I actually had one employee ask me to combine information from 2 excel spreadsheets into one because she didn't want to sit there and do it herself. Very frustrating. The one that takes the cake for me is the head of AP asking me to contact our cell phone provider and break down the bill by remote location so that the proper offices get billed. She thought i would do it since i am in charge of the distribution of phones/blackberries. I told the head of the company that i was hired to fix hardware/software issues, not to do AP. If she can't do her job then fire her.

IT has made me hate management positions. I am not a people person and i am not trying to become one. With management there is too much politics. Also i work for the company that will not pay for training, instead they throw a manual at you and say learn this. i can learn from manuals, but when the accounting staff gets paid training and still manage to lose 1.2 million dollars by closing their books for the month twice, and i have to stay at work until 2 in the morning because guess what, the tape backups were not working correctly and the last monthly backup was overwritten because no one wanted to go to the supply closet and get some new tapes. it can be really frustrating. There is no way i am driving for 6 hours to a remote location because no one wants to change out the backup tapes.

Luggy
December 17th, 2007, 06:26 PM
3) Luggy, I understand what you're saying. I have been there, if you tell me the QT libraries are screwed and you're responsible for printing under windows, the first question I am gonna ask is of course "Oh.... Well what are you going to do about it?" I might well understand, technically what the issues are and quite frankly, if I can get to a terminal and get coding I will. But that's not my job. If I have the MD breathing down my neck asking why 125 users can't print, do you think he's gonna be happy with the answer, "well the QT libraries don't work..." His question to me will be, lol, yes you guessed it... "Oh.... Well what are you going to do about it?"

I wasn't trying to give myself a scapegoat, I was just saying that usually management doesn't care what the problem is, they just want it fixed and if they ask questions it's usually to determine how the project will end up.

For example, right now I'm working on a piece of software written with wxWidgets that another employee worked on previously. I was asked if these combo boxes could have autocompletion, I told them no because the library ( as far as I know ) didn't allow for that and if I tried to implement something like that it could take more time then it's worth.

They asked because autocompletion might help sell software but if it takes me a long time to implement it may not make financial sense.

PS: If I can get wxComboBox to have autocompletion tell me how, I'm a newb with wxWidgets :D

forrestcupp
December 17th, 2007, 06:30 PM
I really think it depends on where you work. I just program for my own satisfaction, but my cousin's husband is a professional. He used to work as a programmer for Captain D's restaurants. His experience was probably similar to the OP, but maybe not that bad. He just moved to a different state and got another job as a programmer. He absolutely loves where he is at now.

It's not always that bad. But if you can't handle deadlines and change, you're definitely in the wrong occupation.

mykibui
December 17th, 2007, 06:49 PM
Why is there not a 'Programmer's Union'?
Why isn't there this or that?..questions of dedicated miscreants, zombies and other foul creatures enslaved by $ofter technologies....instead start on it? :D

fatality_uk
December 17th, 2007, 10:07 PM
Don't listen to him! He's in Management!:)

LMAO :lolflag:

Tundro Walker
December 18th, 2007, 04:14 AM
OP's advice actually spans all careers...there's going to be bottle-necks you run across that you never thought about when you were a young, aspiring up-n-comer.

EG: a lot of folks go into the medical field because they want to help people. Little do they realize they have to become business experts and lawyers if they want to go into practice for themselves where you can make the real money (otherwise you're slogging away in a LLC for some PPO / HMO chump-change that tells you to give the patient the least amount of care possible, or else they'll stop referring customers to you...suck!)

My personal example is that I wanted to go into Nutrition. I learned a lot on my own, and am fairly proficient at it. But, when I tried helping some folks, all they want you to do is either justify their bad habits, or tell them what pills to take to lose weight while still eating crap and no exercising. It was very frustrating.

There's hurdles like that in every career, and you don't usually get exposed to those hurdles going to college, because professors are pretty isolated in their research / teaching positions. When you get out in the real world, you learn that there can be some suck going along with the job...but, if you're passionate about what you do, you can also have a great satisfaction from a job well done (or doing a job better than anyone expected, given the resources, time and budget).

I think one more thing should be added to the list, and it's really one involving who you work with. Always be wary of the "superman / fireman" co-worker. These folks basically keep things running along on the brink of disaster, then when things break, they swoop in to "save the day", looking like a hero. However, if they actually did their job, things wouldn't break and they wouldn't have to come rushing in to save anything. It's almost like Munchausen syndrome, but different. But in both cases, they're attention wh...well, attention you-know-what's. If you start working with folks like that...run. If your boss is like that...run. If the company you work for operates like that's its mission statement...run.

lisati
December 18th, 2007, 04:27 AM
Just an additional thought for the original list:

Don't be scared to research and learn from how others have solved particular problems. Why waste time re-inventing something which has already been solved? Just be careful to bring some wisdom and good sense to the application of ideas you borrow from others, your reputation as a miracle worker isn't worth being fired (or sued) for.

Palmyra
December 18th, 2007, 05:10 AM
Tundro Walkman is right.

I used to work in a pharmacy, and can you imagine what it's like having a bunch of old people whining about their heart medications? I don't mean to be cruel, but you become cruel when this goes on for a long time. By the time I left, I was wishing health problems for some, and I was hoping others would be in severe pain.

There's a problem with their insurance that they don't understand. Do they care? Their attitude is "Just get the job done," even though they don't understand reality is far more difficult. It's not 'just get it done.'

Oh well...I am glad I am not going into IT.

got awesome?
December 18th, 2007, 05:26 AM
I work for a bicycle company, you'd think I had the cruisiest job around, but noooo. I spend my days keying orders, tracking freight, maintaining our office IT system (which is balls), generating inventory and sales reports and answering phone calls. I haven't ridden my bike in weeks!

I think work is just work. You either get in there and take it on the chin and love it, or you can mope around and hate it. I'd love to be doing more programming and FUN stuff, but the reality is I get to stretch my VB muscles about once a fortnight, the odd bit of website editing, here and there some SQL maintenance and a whole lot of mind-numbing troubleshooting on our XP / W2k3 domain.

Ah well, I can retire in another 30 years!! :)

skelooth
January 27th, 2009, 09:40 PM
Seriously, I haphazardly came across this on google. All I have to say is, please don't listen to the original poster. He's obviously very bitter and dislikes his career path.

Being given "as little as" 2 months to learn a language? Are you KIDDING ME? Here is real advice for aspiring programmers: Only do it because you like programming. If you don't like being a programmer, you will have a sentiment similar to the topic poster.

I just can't believe the schlock spoken in this thread, and that people ARE AGREEING. Unbelievable.

thisllub
January 27th, 2009, 10:25 PM
* When stuff breaks, and you swear it's a bug in the programming language or the database, employers will not often believe you. Get ready to be in a career where you'll have to do a lot of defending of your code or your knowledge of the facts.




Overwrote the wrong database and the database backups were not really functioning properly for the past 10 years?


I am starting to worry that I am schizophrenic and posting as you in the middle of the night:shock:

This is very like a situation I had about a year ago.
A database that kept corrupting, developers that thought I was insane and an onsite sysadmin who was the boss's son that thought backing up a 10GB database every day was too hard.

Again I agree with everything you have said. 20 years in the industry and I have lived all of those things.

I especially like the deadline paragraph. I had a rescue mission for a company that was on a $20k per day penalty for non-compliance on a government tender that was due to be finished by Christmas. The first few days of my holidays were spent sleeping on the lounge processing millions of records of data and being woken by the computer when it was ready to start the next batch.

All I can say to the doubters is that you have led a sheltered life.

SuperMike
February 2nd, 2009, 12:01 AM
...All I have to say is, please don't listen to the original poster. He's obviously very bitter and dislikes his career path....I just can't believe the schlock spoken in this thread, and that people ARE AGREEING. Unbelievable.

I'd like to explain. Let's go back to the original post of this thread.

http://ubuntuforums.org/showthread.php?t=640764

Was I bitter at the time I wrote it? You bet I was. After moving up into the upper ranks of senior development, I was told my job just got outsourced to some other country and I can either hit the road or take a sysop job. And I had already put up with a lot as a senior developer, but this really took the cake. There are good companies to work for, that understand development and how to properly treat developers, and ones that mistreat developers like you might hand a broom to a guy and say, "Go wash the bathrooms out. Someone barfed in there."

You can love programming to pieces, but a bad company is a bad company.

Unfortunately, however, I found that in America there were just too many annoying companies to work for, and so, after I decided to take the sysop job (that was actually a sysop job with a hidden progamming job inside that the company wanted to refuse to acknowledge), and worked that a few years, eventually I went Gaaaaaaah!, threw up my hands, and walked out to become an independent programmer. And so I wanted to share my story on what happened as a warning to other programmers and sysops working for someone else, and then I started another thread to share my experiences as a freelancer, and which I continue to share until this day.

I *do* love programming. It's just working for an employer in a little cubicle, taking the office politics shoved at me day to day -- that's what I cannot stand.

Some of the statements I made in that original post were a kind of cynicism. I mean, if you just skim it and read the bolded stuff, you might think I'm crazy to be telling people to give up programming or to give up doing important things like Use Case Scenarios. What I was doing, instead, was warning aspiring young programmers what the real world is like, and how many American companies, and perhaps companies everywhere, tend to be focused too heavily on pushing crap out the door rather than doing quality work.

I was also growing tired of "phonies". Guys who said they could write good software but their last project was written for ASP pages with no MVC. Business analysts who had to ask *me* what a Use Case Scenario was. Project Managers who read CIO Magazine and came to me, almost like the Pointy-Haired Boss in the Dilbert Cartoon, and said, "We need to get everything switched over to JSON." I then responded with, "Everything?" And he said, "Yes, everything." What a joke.

So, with all these layoffs going on right now, and people rethinking capitalism at least in its current state, you're going to see a huge upswing in freelancing in the next few years. And, these people will then start to do what I'm already doing -- partnering up. And then the next step from that is a "guild" or "union". In the future, I really think that we may see companies hiring outsourced unions to do all programming tasks, and these unions may have some people on site, and some working from home. It will be a whole new world of programming in the future.

Mateo
May 15th, 2009, 02:03 AM
It's both incredibly satisfying and incredibly frustrating at the same time. I guess it depends where you work. If I worked for a huge company where I was one developer of 50, I would be as miserable as the topic starter. But I work for a small company where I am the sole programmer, so I have some perks too.

The perks:

1. Everyone thinks I'm a genius. I'm not. Don't get me wrong, I'm a smart dude; learned every program language on the fly, have never taken a computer class since typing freshman year of high school. But there are many developers who could walk circles around me. It doesn't matter. The next closest thing we have to developers are point-and-click FileMaker or Access people. So when the owner of the company comes to me and says "we've been having clients ask us question x for years" and then I go back and write a procedure in a half an hour that gets the answer for him, he and everyone he shares the information with think that i'm a rocket scientist. It feels good, it really does.

2. I do get bonuses. Going with above, my company doesn't have anyone that can do what I do. Previously they spent tens of thousands of dollars on IT projects done completely by consultants. They no longer have to do that. So I'm rewarded for it.

3. To a certain extent, I can control things like deadlines and which programming languages are used, etc. we utilize because no one else has any clue about feasibility.

4. I happen to work in an industry with very primitive technology (we get data from clients by modem-based systems which were written in the 1970s), so doing things that are normal in most industries are trail-blazing in this one. Doing something as simple as counting the number of times a customer has come in during the last year is considered revolutionary. Not joking.

But there are also downsides:

1. Working for a small company, if it's successful at all the people at the top think they know everything. So it can be insulting when IT decisions are made by people with CFO backgrounds without even consulting me or asking my opinion.

2. Working for a small company, there is a "do anything to get the sale" attitude. Which means sales people making promises based on the idea "Mateo probably can figure out how to do this". When I do pull off the request it becomes a standard product even though I have 0 time to try and automate it.

3. Managers think that letting you in on deadline decision making means they are being fair. But it's not always easy to know how long project A will take. I'm sorry, but I've never done the job of a business analyst, DBA, 4 or 5 programmers, and statistician all rolled into one. Especially when I'm also working solo on project B & C and you throw side projects D, E & F at me from time to time.

4. When you get a graphics designer to make a pretty looking simple html website, don't look at me like "why is it so easy for him". A database-based dynamic website is a whole other ball game. Please don't compare the two.

5. Small companies can be incredibly cheap when it comes to upgrading their technology. They will chose the "standard edition" of everything we run, even though upgrading will allow for API integration and I can increase efficiency by an incredible amount. If you'd just spend a few hundred extra upfront. For the longest time my development environment was laughably backwards. The development environment was hosted on our IT hardware / fix stuff vendor. I had to VPN and RDP into a desktop sitting in that company's office. File transfer from my local computer to the remote computer was incredibly slow. There was no source control (still isn't). Just zipping the source and giving it a datestamp filename.

6. No matter what you do, you'll never be able to keep up with the bigger companies that have a real IT department. Even if you are smarter than the other companies smartest's developer, you can't compete with 20 other people who also have 10 programmers in India. And when you fail to live up to their product, others will think that it's something that you are doing wrong.

SuperMike
May 15th, 2009, 06:12 AM
It's both incredibly satisfying and incredibly frustrating at the same time.

Got a chuckle out of this one. I could identify.

I once worked for a federal contractor in Washington, DC. They were a tiny operation that somehow lucked out and got great gigs through connections on the golf course or something. But the top of the company was too greedy....

I came in one morning and my entire PC was gone. and a hard drive was sitting on my desk. My monitor was gone, mouse, keyboard, and the PC. I said, "What the hill? My phone is ringing with calls? What am I supposed to do?" I was a Novell CNE at the time. That's when the ECNE came in and said, "You don't know, do you? Well, I had to come in at 3am on an emergency, and needed a temporary workstation spec'd out just like one we installed for a customer. Unfortunately I didn't have time to build one, so I ripped your hard drive out, reimaged with a new hard drive, and drove it out at the customer site. Sorry. You can get one of the cheap PCs out of the storage and build it. I'll take your calls while you do that." And with that, the ECNE walked back into the office and shut the door, picking up my calls.

And unfortunately I had a lousy PC I had to use out of storage. A month later, I quit, moved away, and as luck would have it, I got married.

majamba
May 15th, 2009, 06:29 AM
the laws of murphy apply very well to computer programming carreer

OldManRiver
June 5th, 2009, 03:15 PM
Here's my tips for aspiring programmers / web developers just out of college:

* This is not the career to be in. Go back to school for something else. No joke. As you read further, you'll realize that programming and web development, at least when working for an employer, is not something that's going to give you lifelong satisfaction or even satisfaction beyond a decade. About the best thing I can say, besides going it alone and taking the risks of no business for awhile, or having to retool/retrain on your own cash because you're working for yourself -- the only other option is to go back to school and learn something else.

* Never assume the language they hired you for is the one you'll always use and love. This is got to be one of the most frustrating parts of the job. You may be a PHP programmer and know you hate Java, or a Java programmer and know you hate PHP. Or you may love PHP and Java but think that Python, Cold Fusion, or Webspeed is a complete waste of time. So you start the company and work 4 years in your favorite little language of choice, but the company could change direction rapidly and you'll be stuck having to learn a new language in perhaps as little as 2 months, and having to pretend to love it.

* Never assume the database server product is one you'll always have, or the one you'll like working with. This kind of goes along with the same thing as the programming language.

* Get used to moving from job to job a lot. Want to start a career with a wife and family? Good luck. You'll have to let them know ahead of time that they're going to need to be portable at least every 5 years. Sometimes when a company switches programming languages on you, or moves you into another department that uses another language, your performance may go up, stay the same, or go down. But if it goes down, or you just don't like programming in the language they give you because you find it frustrating, get ready to being forced to move in order to save your career and to continue to have positive performance reviews.

* The experts aren't always the experts, and you may be forced to live with that. In the IT industry, there's often a lot of liars. You may encounter a CTO who has a PhD, but in his country of origin he may have paid someone off to get that. You may encounter an outside consultant who lied his way in and, if you check enough facts among many things he said with many other professors and known experts in the field -- you may find the outside consultant is giving you phony information. You may also find you're working for someone with "Senior" in his name but, time and time again, you prove that you know more than he does. Regardless of this, if you find your manager is swayed by these phonies, you can either play along or move on.

* The technology changes fast. Can you? The technology changes at a phenomenal rate. Just as you are working hard on one project in a year, new guys have learned something completely new that changes everything (like AJAX and JSON). Sure, you can learn things here or there to catch up, but sometimes you don't always have the time. So you stay mired down in a project and you meet your deadlines. But then the project ends, they don't need you in that department, let's say, and you look for another department to work in. There, you find they want a guy who already knows something, and has job experience, for something you don't know or have. So get ready to resign.

* Employers will actually criticize you for moving from job to job a lot, having no understanding about the industry challenges you face. Employers don't think much about the above items. HR Reps, especially. They'll challenge you and ask why you moved from job to job a lot. All you can say, I guess, is that the contract ended and you sought to continue interesting work in that chosen programming language. Let's hope they buy that argument and don't hassle you. Me? I got hassled at least twice over this.

* Telecommutes are few. Even if you get one, there's disadvantages too. From what I've seen, there's quite a lot of opportunities for telecommuting employment lifestyles. However, they're only about 30% of the total programming market from what I've seen. If you are lucky enough to get the opportunity to telecommute, note it may not always be lucky. First, you don't have daily face-to-face interaction with your manager. Therefore, you may not get any visual information from their face or body language, or overhear them, to know whether your reasons about deadline/task delays were well-received. You also don't often know about office politics such as a performance problem with you (before it becomes an issue). You may also not know enough ahead of time about a major change to the project such as ending it, changing it in a way that's unfavorable to you, or other disappointing or frustrating thing. If you had been in the office every day, you would have gotten some of these things through office gossip, perhaps, and would have been able to potentially divert it. Second, by telecommuting you may not make good contact with other departments where you could migrate to once this contract ends, and therefore could be shooting yourself in the foot because you weren't in the office to make that connection. And third, employers swap managers, managers change their minds, or managers may be given edicts by their employers -- and *poof* there could go your telecommute option. If you were all nice and comfy with it, you better not gripe not even once if they ask you to park your butt in a cubicle, even a half-walled, L-shaped cubicle, every day -- if you do, it could be a negative performance appraisal. The problem is, telecommutes are nice and comfy, and it really sucks to get told you've been cut after the contract ends, or sucks because they took your telecommute away and force you to work in a cubicle.

* Companies like cheap programmers. Evidently, company quality control is out the window these days. Companies think they can get away with cheap programmers in foreign countries. Often, you get what you pay for, and this is about 50/50 the case -- you could get better, or you could get worse. Sure, they're cheaper, but so are testers. In fact, testers come super cheap these days. So, employers have learned that it's better to get cheap programmers overseas and hire cheap testers in the country of the HQ (or, surprisingly, outsource even that). Note that they may also label testers as "product/project managers" when they're not really anything more than testers and someone who checks off items from a task list or report things to developers. So, it's okay to release programs with lots of bugs and just make the testers work harder these days. It's okay to make the project take 2-3 times longer than normal -- at least it's cheaper. Or is it? Well, it's cheaper initially, but you'll be surprised by how much longer the project takes than promised, or how much it ends up costing the employer in the end. Therefore, if you want to continue to work at the company, don't be eager about a pay raise, and if you get one, you're at risk of being cut because you just raised the project cost of the next project, meaning you might not make it to that project and some foreign couple of guys may end up getting it. Don't get me wrong -- the problem is not the foreigners. It's the employers and some of the lying that goes on from foreign outsource firm sales guys and CEOs.

* Don't expect a pay raise, or if you do, don't expect to catch the next project when this one ends. See the last paragraph -- it explains it all.

* When stuff breaks, and you swear it's a bug in the programming language or the database, employers will not often believe you. Get ready to be in a career where you'll have to do a lot of defending of your code or your knowledge of the facts.

* You don't know jack about deadlines. Sure, you met some deadlines in college and think you know about deadlines. Well, get ready for crazy deadlines on top of deadlines -- like a company or department in a tremendous crisis and you're the only guy, or one of several guys, able to keep the company going down in flames. I've worked on contracts where I arrive at 6:30am, took a 30 minute lunch, and went home at midnight, and had to do this for 4 months or the company would incur a huge financial loss. I did this even one month after my son was born, and my wife couldn't understand that the company would fire me if I didn't stay in the office all those long hours. Meanwhile, the project was so far ahead that it was too late to bring on new people and train them to assist. This can happen when a contract starts to go sour and the client wants something delivered faster than planned, or a major client assumed something, and a variety of other annoying reasons.

* Your spouse will not often understand. Programming and web development sure sounds fun, and sometimes it's got some slow projects where you can take your time and really enjoy it. But then there are days where your whole world is turned upside down and you have to justify with your spouse all these crazy hours. Sure, those hours may come back down again, but get your spouse prepared for them going back up again, over and over in several decades. And, often times you will find that not only does your spouse not understand, she cannot tolerate it. You may end up in a divorce over it. So if you want to start a family and do web development and programming, you may be in for some real heartache. You may lose the one you love, or lose precious months at a time from your wife or children.

* The wrong answer is No. It's always the wrong answer. Always say Yes and make it a real yes. And if you can't make it a real yes, either work on making it a real yes or get the heck out of that career. Yes you can use that new programming language next week even though you've never heard it before except without bouts of laughter in chat rooms. Yes you can meet that insane deadline if you live out of your car in the parking lot for the next 3 months or hide in the closet in the server room. Yes you can do five jobs at once even though you were hired to be programmer.

* Managers are pretenders in this industry. IT Managers like to pretend in this industry. They also pretend to know and love the technology. If they didn't, they'd have your job because it pays almost as good and isn't so easily cut when deadlines are missed because of things outside their control. They pretend to be good managers -- even ones capable of knowing the constraints you've been put under. But too often than not, the IT Managers I've encountered, and I've had plenty, are guys who like to ask insane things of you while they go home on time in their car that costs more than your year's salary.

* Managers will make you jealous of them. Don't get me wrong -- I've also been an IT Manager in charge of operations guys and programmers. And I've been a sysop as well as a programmer. Being an IT Manager sucks because you manage things that are hard to control because there are often too many unknowns as technology keeps changing -- delays and technology hurdles are just par for the course in IT. However, if you're a programmer, you'll be jealous of your manager because they make more than you and seem to not do much, yet go home most of the time on time. They may also get bonuses when you don't. But hey, bub, that's a fact of life -- that's how this industry works. Get used to it.

* Sysops will drive you nuts. Often you'll find that the sysop guys are in charge of the network bandwidth, the firewalls, the DNS records, etc. And you'll need these things checked into or fixed. Or you'll swear the problem is there's but can't get them to see the facts. There's a lot of natural animosity that can arise between sysops and programmers. You'll just have to get used to it. There will be finger-pointing on both sides, and there will be times when you have to realize that some of the issues are on your side of the fence and that you were wrong. This is because problems can be illusive. You'll also see the gamut of sysops who know a thing or two about programming, or those who do not, and you may end up frustrated because you may be stuck with one who doesn't understand what you're trying to say from a programming perspective.

* Forget about use case scenarios, functional specifications, and absolutely zero feature creep. If you can get all the non-programming staff to work with you just as you learned in school with use case scenarios, functional specifications, hosting-risk analysis, test plans, and accountability for feature creep -- fantastic. But too often I go from place to place where everything is done so unprofessionally these days. Whining won't help. So get used to it. And feature creep is the norm.

* Humongous disappointments can happen. Accidentally deleted that last batch of source code? Walked in and found the source code repository was corrupt for the past year? Accidentally deleted the payroll records for everyone with their last name ending in "est" at a client location because of a typo? Overwrote the wrong database and the database backups were not really functioning properly for the past 10 years? Hey, my little friend, get used to some phenomenal screwups. Some of these may even be your fault even though you try very hard to prevent them or claim that there's no way in heck you could screw up like that. It happens to the best of us. So don't assume anything, back the mess up out of everything more than once, and make code backups at least 3 times a day so that you have a fallback plan in case you lose something. And, even at that, you can never feel safe. Just suck it up and realize that bad luck is going to hit you one day, no matter what you do, and you better be professional about it when it does.

* Half-walled cubes and cube mates can be annoying. Occasionally I see the argument, "I'm switching all of you to half-walled cubes in development so that you can communicate better because we have team communication issues." Get ready for it to get so noisy, or for you to get interrupted frequently, that you can't think. Or, you may get an office with a door, but find that you can't write software with it closed because your manager doesn't like that. And even in an office with a door, your mate in the next cubicle or doored-office may do annoying things like resonate the floor with his foot, or stop, smack his hands together, and wipe his hands together really loud, or play loud Gospel music while you like Rap or Soul. Just because you're professional and polite, don't assume the guys you work with will be that way.

Are you wanting to be a sysop? Then see this item (http://ubuntuforums.org/showpost.php?p=3957589&postcount=1) for advice about that.

SM,

I wrote down all the one liners from work place, back in 85, and then created book titled "Ten Commandments to the Work Place". Tried to get Scott Adams (Dilbert) to work with me, but no luck. Sounds like you are re-hashing the list. My book has 3 sets of rules: 1.) For the Employee, 2.) For Management, 3.) For the Contractor.

I'll publish, online with link, so you all can get a chuckle.

Cheers!

OMR

ARhere
June 5th, 2009, 04:17 PM
I have read through the parent post and I could not resist sharing that these negatives do not change much with other jobs, especially in the technology industry.

I am a Computer/Electrical engineer with +7 years of experience (out of college) designing board level electronics for various military and commercial companies, large and small. Every point that the parent makes is true in my industry as well. I remember demonstrating a DSP based, single board computer with GPS to a group of engineering PhD's once, and talking about the difficulties of using GPS in battery power devices as they draw way too much power to be practical. (Keep in mind this was about 6 years ago) One of the head PhD's snickered and in front of the entire group mentioned that I needed to try, "searching the web" for a better solution as he knows of GPS modules that operate with 10 milliwatts power.

Embarrassed, as the prototype was my design, I asked to contact him later for help on the matter. A few weeks latter when he finally returned my phone call, begging for the make and manufacture of GPS modules that are such low power, he replied that he does not actually know of any GPS units first hand but worked with GPS in the 1970's and was positive that they would be what he described by now! I was later able to learn that the unit I was using was indeed the best available at the time in terms of power usage and size.

My point is that this does not change regardless of what field you are in, even non-technology related fields. There will always be the people that appear successful because they have convinced everyone else that they are smart, and anyone else that know something are considered a threat. You can tell this as the typical reaction will be to try and embarrass you and make themselves look smarter by insulting you. It is a sad state, but is a fact of life.

What I have learned about myself is my expectations of work are not correct. I relate with the parent post as I have felt exactly as he/she has stated before, just replace "software" with "hardware". I have a wife and three kids now, have moved from job to job every 2.5 years trying to get away from "the idiots" only to find the same problems at each job, just colored differently. It was not until I was recently laid off at my last job until I finally realized that my expectations are too high.

(I actually have a positive message so please hear me out :D )

If you enjoy what you do, feel challenged, (most of the time) and it is stable/good pay then you have a good work life; now go home and find your heart in your real life. Work will never be the center of happiness, it can only augment it. If you are an engineer, software developer, or whatever, chances are you picked this career because you had so much fun exploring this field in your spare time. This is what disappoints most people (including myself) because they expect work to be just like having fun at home, except with a pay check. WRONG!

With a loving heart I say strongly to the people that are depressed about this, get your priorities straight.
1. Go to work and focus on the joy that is available.
2. Deal with the difficulties and forget about them as quick as you can.
3. Collect your pay check and remember that a lot of people have jobs where there is no joy or challenging moments.
4. Go home and continue to tinker with MOSFETs, Ubuntu, whatever you desire.
5. Share your tinkerings with you family, friends, or kids as they will alwyas praise you without devious intentions.
6. If you invent/discover something really cool and it makes you very successful at work, then great. Just remember that you will then become a bigger target for the same problems discussed by the parent.
7. Die someday being remembered by the people in item #5.

-AR :popcorn:

SuperMike
June 5th, 2009, 05:28 PM
...he replied that he does not actually know of any GPS units first hand but worked with GPS in the 1970's and was positive that they would be what he described by now...

LOL, and sad. I would have probably dropped the phone at that point and coughed bull____. What an incompetent, socially-promoted jerk. I swear in some countries they are practically selling PhD's, and then they come over to a country with that and get a ton of cash. I've seen so much of this that if I don't see that someone is a native citizen and earned his PhD here, I am ready to question everything they say.

ARhere
June 5th, 2009, 05:36 PM
LOL, and sad. I would have probably dropped the phone at that point and coughed bull____. What an incompetent, socially-promoted jerk. I swear in some countries they are practically selling PhD's, and then they come over to a country with that and get a ton of cash. I've seen so much of this that if I don't see that someone is a native citizen and earned his PhD here, I am ready to question everything they say.

LMAO! You don't want to hear about the PhD from MIT my old company hired once. A LOT of talk and 4 months later, not a single schematic completed!

I hope the rest of my post hit home though.

-AR

tiyowan
June 5th, 2009, 07:59 PM
office space?

+1 :)

Junkieman
June 5th, 2009, 08:59 PM
I believe programming should be a passion and a hobby, first and foremost. If you happen to to have a job that involves it, great :)

I taught myself to program at age 12-ish, by tinkering around in DOS (don't laugh LOL), but it developed my interest and fascination.

A lot of kids are told it's the way of the future, and they go study programming as a career, which is fine, but without that underlying curiosity to keep you focused it's easy to get discouraged!

Some fail because, aside from their job, they don't explore that curiosity and get the needed stimulation to explore further.

Personally I might as well work in a circus (no jokes, I can breathe fire!) but I will always have that coder part inside me... Just need to learn Python to create some serious Linux apps :D

mofrikaantje
June 5th, 2009, 10:29 PM
So, it's better to develop your supercool idea at home, instead of trying to make a living of it? Or am I getting it wrong? Man, lately I've been doubting about either finding a job after I graduate (in History, so I guess that would be a teacher or something), or doing something in programming... Advice, anyone? :)

ARhere
June 5th, 2009, 11:39 PM
So, it's better to develop your supercool idea at home, instead of trying to make a living of it? Or am I getting it wrong? Man, lately I've been doubting about either finding a job after I graduate (in History, so I guess that would be a teacher or something), or doing something in programming... Advice, anyone? :)

What I was saying is both, pursue your interests at home, and if available, at work too. Just don't expect work to be as glorious as some college fresh graduates tend to do.

-AR