Page 1 of 5 123 ... LastLast
Results 1 to 10 of 41

Thread: Advice for Aspiring Programmers

  1. #1
    Join Date
    Jul 2005
    Location
    Remote Desert, USA
    Beans
    683

    Advice for Aspiring Programmers

    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 for advice about that.
    Last edited by SuperMike; December 15th, 2007 at 07:47 PM.
    SuperMike
    When in doubt, follow the penguins.
    Evil Kitty is watching you

  2. #2
    Join Date
    Nov 2006
    Location
    Pennsylvania
    Beans
    423

    Re: Advice for Aspiring Programmers

    Why is there not a 'Programmer's Union'?
    Your Ubuntu User number is # 15355

    A must Read for anyone interested in Computer Programming.

  3. #3
    Join Date
    May 2007
    Beans
    4,513
    Distro
    Ubuntu

    Re: Advice for Aspiring Programmers

    Aw, man! I'm doing my degree in IT management.

  4. #4
    Join Date
    Jul 2007
    Location
    /earth/USA/WA/Spokane
    Beans
    299
    Distro
    Ubuntu 11.10 Oneiric Ocelot

    Re: Advice for Aspiring Programmers

    Quote Originally Posted by TreeFinger View Post
    Why is there not a 'Programmer's Union'?
    +1
    Ubuntu User # 17031
    Quote Originally Posted by RAV TUX View Post
    who needs support when you use Linux.
    Quote Originally Posted by asjdfwejqrfjcvm msz34rq33 View Post
    Open-Source: The power to create completely useless, but extremely cool, programs.

  5. #5
    Join Date
    Mar 2006
    Location
    Lisbon, Portugal
    Beans
    1,909

    Re: Advice for Aspiring Programmers

    Good post

    I just can't help imagining you in each situation. bad bad me
    My blog | Arch User | Linux user #439142 | Ubuntu user #10974
    "God is real unless you declare it as integer"

  6. #6
    Join Date
    Aug 2007
    Location
    Torrington, Wyoming
    Beans
    372
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Re: Advice for Aspiring Programmers

    Quote Originally Posted by TreeFinger View Post
    Why is there not a 'Programmer's Union'?
    Because you haven't started one yet.
    すべてと、そして、すべてへのリナックスは自由を鳴らせました。
    Linux to all, and to all, let freedom ring.

  7. #7
    Join Date
    Aug 2007
    Location
    Hawthorne, NJ
    Beans
    551
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: Advice for Aspiring Programmers

    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.
    Before Executing commands, understand WHAT you are doing and WHY YOU WOULD WANT TO DO THAT. Some Commands can be VERY dangerous if you are uninformed!

  8. #8
    Join Date
    Nov 2005
    Location
    Darkness Ridge
    Beans
    62
    Distro
    Kubuntu 8.04 Hardy Heron

    Re: Advice for Aspiring Programmers

    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. -_-;
    FFfswm3adrsw A+ C- D H M P++ R T+++ W Z- Sm RLCT* a cdlnw++ d++ e+ f+ h* iwf+++ j++ p++ sm#
    My LiveJournal | My Flickr Photos | My DeviantArt
    Feel free to contact me using Jabber: bonesolteradyne@livejournal.com

  9. #9
    Join Date
    Jun 2006
    Location
    ga
    Beans
    426

    Re: Advice for Aspiring Programmers

    Looks like Mom was right. You should have been a dentist.
    The moon will illuminate my room and soon I'm consumed by my doom.

  10. #10
    Join Date
    Apr 2007
    Beans
    14,781

    Re: Advice for Aspiring Programmers

    Office Space?

Page 1 of 5 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •