Slashdot Mirror


How to be a Programmer

Martin L. Smith writes "Rob Read has posted his magnum opus, "How to be a Programmer: A Short, Comprehensive and Personal Summary" to Samizdat Press where it can be scarfed by the masses. Rob's book is a forty-page tour through the million-and-one things he thinks a programmer ought to know as he sets out into deep water. One of the reasons he posted this was to get some feedback, so tell him what you think. Samizdat Press is maintained by the Colorado School of Mines to provide a distribution point for free (mostly earth-sciences related) texts."

420 comments

  1. To the Slashteam by Anonymous Coward · · Score: 0, Insightful
    Please read this book, for your own sake and ours.

    Slashdot Math Returns!

  2. How NOT to be a programer by Anonymous Coward · · Score: 0, Funny

    but a rock star.
    Anybody's got an idea?

    1. Re:How NOT to be a programer by Masik · · Score: 1

      You should marry a producer, rich and successful producer. Sure, if you want to be a rock star...

      --
      With the best regards, Masik
    2. Re:How NOT to be a programer by slackerfilm · · Score: 1
      Hmmn, That sounds like Shania Twain. But, she is a talented 'country artist'

      And Mariah Carey didn't sleep her way to the top even if her career skyrocketed with her marriage to the president of Sony and then plummeted to a deep crash and burn when they got divorced.

      I have been wanting to say that in a public forum for 2 years
      bitter exposition is over. You can go now.
      Thanks

      --

      throw the baby out. The bathwater is cold

    3. Re:How NOT to be a programer by packeteer · · Score: 1

      whoa whoa WHOA... this is shocking... well let me tell you i heard it from you first... jesus christ where do you dig up these nuggets of knowledge... i mean you HAVE to be the only one who figured this out... that makes me #2

      --
      unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
  3. We got it by mao+che+minh · · Score: 5, Funny

    I think that 90% of the people here already have the whole "how to thrive in a seclusive career path that is extremely difficult to find employment in and you end up having very little contact with the softer gender" thing down pat, thank you very much.

    1. Re:We got it by Anonymous Coward · · Score: 0

      very little contact with the softer gender

      Actually, I find in programming I have altogether too much contact with pudgy, sedentary, junk-food fed unix. What I could really use is a nice toned woman with an English major.

    2. Re:We got it by DickBreath · · Score: 3, Insightful

      how to thrive in a seclusive career path that is extremely difficult to find employment in and you end up having very little contact with the softer gender

      Maybe you should change career?

      Some of us either aren't seclusive, or don't see being seclusive as a problem. Or maybe seclusive means "not hanging out with stupid people". If you are in an environment with mostly stupid people, and noone smart to hang with, then you might seem seclusive.

      Some of us are employed. On another point: the economy is bad right now. But even if the slump is permanent, some of us are, and it is possible to be employeed doing things that are somewhat insulated from economic cycles, but maybe aren't as glamorous as the dotcoms were.

      Finally, while I'm sure this only applied to a minory of us, I am happy to avoid contact with that particular gender. :-) Others may differ. But being a geek does not somehow magically exclude one from dating. Learn to interact with people and develop some social skills. Lots of people must learn to do this.

      My point: Some people think being a geek is bad. I think it is good. You can find joy and happiness in being a geek too. Stop thinking of "How to be a programmer" as "How to have a miserable life." It's baloney.

      --

      I'll see your senator, and I'll raise you two judges.
    3. Re:We got it by astrotek · · Score: 1

      you dont like to hang out with stupid people, are you gay?

    4. Re:We got it by fitten · · Score: 1

      I embrace my geekness as well... one of my tatoos says so...

      I also find dates when I want them.

    5. Re:We got it by RetiredHacker · · Score: 2, Interesting

      Retired a few years ago. 40 years of programming,
      managing programmers, architechting large projects,
      etc. ad nauseum, and so forth.

      1. In PDF? How can I annotate and respond?

      2. She? The first female programmer I met was my wife ... but "She" ... is this about political correctness or about programming?

      3. Serious comments:

      One can only (in my not so humble opinion) learn to program well by working with Wizards. Do so at every chance you get. Accept less pay and a not-so-good title if you can work with a Wizard.

      Become a mentor. By teaching what you think you know, you will learn what you really know. This can sometimes be a thankless task. Do it anyway.

      Move around. If you have done speech recognition,
      try database design. Do some hard-core math stuff,
      then move on to UI design and implementation. Try new things.

      You do have your development environment and source code at home, right? You play with it after or perhaps even during the super bowl because finding that "one last bug" is such fun.

      Once you become a manager (and you will, if you are good, because leveraging the work of 20 programmers produces more result than you can produce on your own) keep on programming. Don't become a dull knife.

      --
      ... Retired Hacker
    6. Re:We got it by Anonymous Coward · · Score: 0

      2. She? The first female programmer I met was my wife ... but "She" ... is this about political correctness or about programming?

      No, it means the author is a homo. Male homos often look upon their sex partners as females. The author is merely demonstrating that he thinks of his colleagues as potential sex partners.

    7. Re:We got it by EelBait · · Score: 1

      Ditto on the feminine pronoun throughout the document. Call me old-school, but I find documents written using the feminine pronoun to be pandering to polical correctness. Other languages have a third gender for the neuter, but English has always used the masculine for that.

      It seems silly to drill into students' heads for centuries the proper way to write English and then suddenly, because some hypersensitive twits with identity disorders get their panties in a twist, the schools are coerced into de-genderizing the world.

      Everytime I hit a feminine pronoun misused for the neuter I stop and think about to whom it is referring because I keep thinking I lost the antecedent. But, then I remember, "oh yeah, the author is a twit," so I plug along. Eventually, I just get annoyed and quit reading.

    8. Re:We got it by xg0blin · · Score: 2, Interesting

      I hate stereotypes. I consider myself to be a very adept programmer, and I don't match the stereotype at all. I'm an ex construction worker/jet mechanic/auto mechanic/tire sorter/furniture mover, I'm a 6 foot tall, 250 pound tatooed guy. I mean, most of the programmers I know don't meet the sterotype of small, glasses, pocket protector, introverted, nerdy, geeky, feeble, poindexter type stereotypes you hear everywhere. I've been married twice and had children by multiple women, hang out with friends, and still have time to program. I think the reason lots of programmers get so good at it is they have had a life like mine, and don't want to go back to it, so their drive to be successful is greater. Nothing like slinging 6000 tires a day at a goodyear factory to get you motivated to do something better. Also, kids can be a great source of inspiration. Any father would want to give his kids better things than I could just four years ago. I loved programming when I did all of those jobs, but thought the prospect would never be open to someone like me to do it professionally, being that I had kids, failed to go straight out of high school, and had too many other responsibilities to handle to do that. But I managed to work a full time job, get sole custody of two of my three children (third wasn't born yet) upon divorce, take care of kids on my own and go to school and make time for them as I did it. I also got remarried and had another, and am still going strong. Some of the best programmers I've met don't meet the stereotype at all, although there are those out there that do.

    9. Re:We got it by Anonymous Coward · · Score: 0

      seclusive??

      do you mean secluded or reclusive?

    10. Re:We got it by Ed+Avis · · Score: 2, Funny

      I think it is a reference to the tutorial/textbook 'Oh, Pascal!', which at the time it was published was noted for referring to the programmer as 'she'. I don't know if that choice fits in with the book's rather girly-sounding title - the sequel was called 'Oh, my! Modula-2'. (The next logical step, 'Oh bugger, Oberon' has yet to be published.)

      So perhaps the author is a Pascal sympathizer. Get the pitchforks!

      --
      -- Ed Avis ed@membled.com
    11. Re:We got it by Anonymous Coward · · Score: 0

      Hmmm...

      You say, "Or maybe seclusive means "not hanging out with stupid people", and right then, in the next sentence, say, "noone", aren't you classifying yourself as a member of the 'stupid people' therefore? "Noone" is not a word. No one is what you wanted to say.

    12. Re:We got it by cdrudge · · Score: 1

      Wasn't the first computer "programmers" female? I'm talking about the ones who flipped the switches and ran the computers.

    13. Re:We got it by DickBreath · · Score: 1

      you dont like to hang out with stupid people, are you gay?

      Yes, actually. Was it not obvious enough from my handle and sig? Or do I need to go back to the drawing board. Maybe an ASCII art sig? Ooops.. 120 char stupid limit.

      --

      I'll see your senator, and I'll raise you two judges.
    14. Re:We got it by DickBreath · · Score: 1

      You say, "Or maybe seclusive means "not hanging out with stupid people", and right then, in the next sentence, say, "noone", aren't you classifying yourself as a member of the 'stupid people' therefore?

      First, you make the assumption that noone is not a typo.

      But I'll clear that up right now -- it was not a typo. I just typed it stream of conciousness.

      Spelling and grammar errors do not automatically classify one as stupid. I know incredibly stupid people who might not make some technical mistakes in their writing -- but are nonetheless stupid. Also vice versa.

      --

      I'll see your senator, and I'll raise you two judges.
    15. Re:We got it by astrotek · · Score: 1

      I accually didnt notice your sig or name, but since your gay and dont like to hang out with stupid people(girls, the whole punchline of my comment), you should be a pretty happy man.

    16. Re:We got it by Anonymous Coward · · Score: 0

      no, the first "computers" were women. The ones who filled up rooms doing long tedious math problems while the men were out getting blown to smithereens.

    17. Re:We got it by DickBreath · · Score: 1

      I accually didnt notice your sig or name, but since your gay and dont like to hang out with stupid people(girls, the whole punchline of my comment), you should be a pretty happy man.

      Sorry, I failed to get the original joke.

      Yes, I am. :-) Both in general, and because I definnitely like geeks, gay or otherwise, whether anything happens or not.

      --

      I'll see your senator, and I'll raise you two judges.
  4. weight gain by Anonymous Coward · · Score: 0

    Be prepared to gain 60 pounds, its part of what it means to be a programmer

    1. Re:weight gain by Anonymous Coward · · Score: 0

      Ridiculous, programmers are as apt to run to skinny as to fat (obese, horizontally unchallenged, overweight, whatever). Most programmers I know are on the skinny side, I don't think I know any fat programmers, although I'm not denying their existence.

    2. Re:weight gain by Anonymous Coward · · Score: 1, Funny

      skinnies cant code for shit. Look at the spaghetti coming out of India lately.

    3. Re:weight gain by Anonymous Coward · · Score: 1, Funny

      i prefer the saag paneer and keep the nan coming.

    4. Re:weight gain by Anonymous Coward · · Score: 0

      It's funny because it's true - saag is the original brain food IMO. I can hack for hours as long as I've gots me spinach.

  5. Step #1: by anactofgod · · Score: 1, Funny

    Buy and read "HTML for Dummies" from cover-to-cover.

    All the other steps are optional.

    --

    ---anactofgod---

    "Equal opportunity swindling - *that* is the true test of a sustainable democracy."
  6. How to program in the 21st century by Anonymous Coward · · Score: 5, Funny

    1) Write a spec
    2) Send spec to Indian/Russian/Chinese Programming Outsourcer
    3) ...
    4) Profit!

    1. Re:How to program in the 21st century by ostawookiee · · Score: 3, Insightful

      3. cry when indian/russian/chinese programmer ignores "US Copyright Law" and develops and markets product for themselves.

    2. Re:How to program in the 21st century by Bald+Wookie · · Score: 3, Funny

      3.5 cheer when "Uncle George" decides to protect "US Interests Abroad" and turns the /indian/russian/chinese programmer into a smoking hole.

    3. Re:How to program in the 21st century by AndroidCat · · Score: 2, Insightful

      If someone is looking for available skilled labour, willing to work cheap, they don't have to go to India/Russia/China these days. :^(

      --
      One line blog. I hear that they're called Twitters now.
    4. Re:How to program in the 21st century by z01d · · Score: 1

      i'm working for an international software vendor at China, and i do lots of cooperative works with US/DE/JP programmers. as far as i know, their tech skill is no better than me (of course, there must be sth they know but i don't, and i know sth they don't. i'm talking about the design/analyse/debug...you know, general skills), but geeks in US got $60000/year, how much did i get? $12000/year.

      we're still cheaper than you. i'm not happy about this, and i guess you too.

    5. Re:How to program in the 21st century by AndroidCat · · Score: 1
      we're still cheaper than you. i'm not happy about this, and i guess you too.

      My answer would be a definite yes, I'm not happy. There's no way that I could undercut someone in China -- my rent and food costs make that impossible. I do have the advantage that I can show up at the office (in the Toronto Canada area).

      Certainly outsourcing to other countries really isn't causing the current problems in the North American job market. I blame companies cutting their throat to push up the report to the stockholders.

      Hmm... That gives an idea for Slashdot article about virtual offices. (My idea, mine! :^)

      --
      One line blog. I hear that they're called Twitters now.
    6. Re:How to program in the 21st century by cyclist1200 · · Score: 1

      3.75 Cry when you realize that you now have no programmers and your spec is now ashes at the bottom of said hole.

    7. Re:How to program in the 21st century by Anonymous Coward · · Score: 0

      you don't have to pay worker's comp, social security, and unemployment insurance to programmers in India/Russia/China. Even if you telecommuted, companies can afford to pay offshore programmers twice as much as they would pay you. I don't know if they have to pay social security on H1-B's but some of the other stuff they don't.

  7. just a thought by Anonymous Coward · · Score: 4, Insightful

    ok, i just skimmed a couple lines of this thing but it seems to that he glosses over some major areas: "Idealists may think that design...is more fundamental [than debugging] but they are not working programmers." IMHO it's nearly impossible to implement a major system without doing some serious design work first - debugging can fix logic errors, but not design flaws.

    1. Re:just a thought by SirSlud · · Score: 5, Insightful

      In the real world, if you're designing large systems, you're not a programmer, youre a systems architect.

      Think .. architects design the huge thing .. programmers build it, and make localized design decisions.

      But I dont think its fair to say programmers must be good at large scale design since thats a career path unto itself. And those who can design large scale systems are usually not so good at the nitty gritty ... so I think your point is more one of semantics.

      --
      "Old man yells at systemd"
    2. Re:just a thought by HalfStarted · · Score: 3, Insightful

      While I agree that a programmer does not NEED to know how to design the full system I do not really agree that a system architect does not have to know all the nitty gritty. Yes in a pure since it isn't necessary to know the details but in practice I do not think it is possible to design a robust, scaleable system with out a solid understanding on the nitty gritty, as that knowledge is usually one of the driving elements in architectural decisions. ... this comment cut short by the need to do real work... sigh

      --


      Have you thought for yourself today?
    3. Re:just a thought by pyrrho · · Score: 0, Redundant

      waterfalls... yuck!

      --

      -pyrrho

    4. Re:just a thought by oconnorcjo · · Score: 5, Insightful
      But I dont think its fair to say programmers must be good at large scale design since thats a career path unto itself. And those who can design large scale systems are usually not so good at the nitty gritty ... so I think your point is more one of semantics.

      I totally DISAGREE. Good programmers have a total picture of how thier programs work and interact and that is why they work and interact very well (the nitty gritty is done with a debugger and testing). If a system architect was not at one time a very good programmer then he is probably a bad system architect. Of course thier are tons of bad programmers who then become bad system architects FWIW.

      --
      I miss the Karma Whores.
    5. Re:just a thought by czth · · Score: 1
      Saying design is not "more fundamental than" debugging is decidedly not saying that design is unimportant, just saying that in the Real World, debugging takes more time and is a skill equally worth honing. I can attest that I spend much more time debugging than designing, and I'm the best programmer in the world.

      czth

    6. Re:just a thought by RobertLRead · · Score: 2, Interesting

      I don't necessarily think debugging is the most important skill for a programmer, so much as that it is the first really hard skill you have to learn. I think one can do a lot with poor design skills and good debugging skills, especially when just starting out...after all, not everyone can create the design. Surely those who find and report bugs in open-source software are doing a very hard and valuable taks.

    7. Re:just a thought by johnnyb · · Score: 1

      Most applications are medium-sized, and don't require more than the initial developer or two for anything until they get past the first release or two.

      I've found that you can build systems much faster and cleaner when the initial development is done by a single person - it gives a clear, consistent set of design patterns that future programmers can use to extend the base system.

    8. Re:just a thought by Coz · · Score: 5, Insightful

      Since I'm doing that "system architect" job at the moment, I feel like I can reply to this :->

      If I didn't have years of prior experience hammering systems together, debugging custom code and off-the-shelf things made to play together in new and unforseen circumstances, and a few tens of thousands of lines of multiple languages of coding, I wouldn't be able to avoid the land mines that the folks who designed THOSE systems subjected me and my "tribe" to.

      One of the glaring gaps in the last 15 years or so has been the one between the classic "system engineers" and "software engineers". The "System Engineers" have usually been hardware types, and have no problem saying "it's a software problem - deal with it" and making the poor code monkeys cope with their bad decisions. It's taken me years to get the credibility among those folks to make them listen to my opinions and actually change their minds; I was just a software guy, not a Systems Engineer. Now, I have a program manager who's former software, and a software manager who's former software, and I'm senior to our chief system engineer :-D. I can't dictate, but if it doesn't fit in with my architecture, I have a veto - and I'm consulted on every technical decision that's not already delegated to someone for implementation (I review those).

      This may actually be my dream job - fortunately, we're doing well on it, so we're thought of well inside the company; unfortunately, we're meeting our schedules, so it'll end within the year *sniffle*. Then, I'll just have to find a way to keep myself out of management....

      --
      I love vegetarians - some of my favorite foods are vegetarians.
    9. Re:just a thought by Citizen+of+Earth · · Score: 4, Insightful

      IMHO it's nearly impossible to implement a major system without doing some serious design work first - debugging can fix logic errors, but not design flaws.

      I find that a very effective way to discover and fix design flaws is to try to implement them. A two-year PowerPoint exercise doesn't always do this.

    10. Re:just a thought by geogeek6_7 · · Score: 1

      How does one become a systems architect? I love doing that. ~geogeek

    11. Re:just a thought by Anonymous Coward · · Score: 0

      But experience tends to spot those flaws from miles away. In the end that is a lot cheaper than first spending those two years.

    12. Re:just a thought by Anonymous Coward · · Score: 0

      So basically you are tired of not being taken seriously because you have a liberal arts degree and are doing programming while the "Systems Engineers" who are EE and CEs get much more respect. Now finally after having been in the industry for 15+ years, someone is listening to you. Seems right to me. As a EE, I wouldn't have listened to you either.

    13. Re:just a thought by Anonymous Coward · · Score: 1, Interesting

      Actualy it's a toss up and makes a huge difference on what your building and what you want to be complex. If your writting an application that runs on a single box and that box is pretty much fixed then all you need to be for decent to good achitecture is a software guy. If your building a large system that might require a bank of servers, load ballancing those servers, local network and a wan then you have more "hardware" stuff to deal with and work your designs around. Lets look at something small load ballancing you could do the normal software method of make a single box bigger, the slightly better method of ok we build middleware boxes that take care of the house keeping and can be statefully LBed to the clients with a big honken back end DB server's with there own LB methods, or if it's something that needs to realy scale and you have control over the client end you write a good client application that can perform resilancy and load ballancing in tandem with the server / middleware end.

      Programmers dont get hardware bits but it's funny that hardware guys generaly understand a good deal of the programming bits because most hardware is realy software running on a dedicated platform. And for a business it should be all about the TCO and ROI if it's cheaper to maintain and install an enhanced network to support an application then it makes the most sence to do so but in reality most of the time it's cheaper and easier to enhance the applicaion to be more friendly to those resources. Think about how many applications you know move large chunks of data because it was easier to write the VB / C / Flavor of the month to do that work than do it in SQL as part of a stored procedure?

    14. Re:just a thought by owlstead · · Score: 1

      I can surely relate to this. There is no way that you can be a real systems engeneer withouth the low level (in software design terms) experience gathered on previous assignments. Obviously this is not enough, you must be able to think cohenently about problems. Some intelligence is actually required.

      On the other hand, too much experience in coding or hardware may be prohibitive for doing a good job. My own boss, who is unhappily growing towards management himself, still looks too much to the nitty gritty element of the job. On the other hand, in the computer security business you MUST think in terms of technique first.

      Luckily enough he is smart enough to let the team make some decissions on their own, or at least ask them about their opinion. With a software engeneer and UI builder, a good C++ programmer, a guy who's really into the standards and a genuine different thinkin' geek and java programmer (me) we are pretty well balanced :^)

    15. Re:just a thought by richieb · · Score: 1
      As a EE, I wouldn't have listened to you either.

      As a mathematician I hate when you EE types come along and try do design software! You've barely learned a bit of calculus and do not understand abstraction.

      ;-)

      --
      ...richie - It is a good day to code.
    16. Re:just a thought by richieb · · Score: 1
      Of course there are tons of bad programmers who then become bad system architects FWIW.

      I sort of agree. However, I find that there are two styles of thinking that people come with and only one is compatible with programming.

      One is where a person loves tons of details and is able to handle them, but is unable to abstract and see the higher level.

      The other kind is one that starts with a solid understanding of high level patterns and then is able to derive the details as needed.

      It's the second one that makes a good programmer not the first.

      --
      ...richie - It is a good day to code.
    17. Re:just a thought by Doomdark · · Score: 1
      And those who can design large scale systems are usually not so good at the nitty gritty ...

      I disagree. My definition of a good architect is that that's the person who -- given enough time -- could single-handedly both design and implement the whole system (except for the biggest of systems with very specialized sub-components or domain problems).

      And the reason why architects might not end up implementing anything is just a matter of limited supply of people of that caliber, and large size of many modern software projects. Not because they lack implementation skills.

      I have seen architects that couldn't program their way out of a wet paper bag, and trust me, none of them has been worth their salary. Such "architects " mostly follow buzzwords, and cause grief to no end to poor souls that need to implement their poor designs. And I have also seen good ones (luckily, working with one at the moment), and they, surprise surprise, often do implement specific parts, and pretty much always help junior developers in getting implementation right.

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    18. Re:just a thought by Coz · · Score: 1

      I came to it from software, just finished a engineering Master's (although the CS degree was from the engineering school, back in Mississippi). Hardware folk still tend to think "We can solve that in software" and software people tend to have NO idea what's required to modify custom hardware. Still, I'd like every "system engineer" who wants someday to work with software people to be forced to work on a program where they have to the project's programming language(s), produce code (and have it reviewed by the team), test the code, document it the way the System Engineers want it - and spend a few nights in the lab debugging during integration, when the "software fixes" hit the hardware "oop"es.

      Sounds like you have a nicely structured team. Keeping that kind of balance as a project scales up - that's the challenge of those management types that I'm afraid I'm growing up to be. Pray for me :-/

      --
      I love vegetarians - some of my favorite foods are vegetarians.
    19. Re:just a thought by michael_cain · · Score: 1

      Couldn't agree with you more. For the past 25 years I've been a systems engineer arguing that it's a software-driven world. I've lost track of the number of projects I've been associated with where the hardware folk chose the processor, chose the memory size, chose the peripherals, and then turned to the software people and said "You gotta make it work and you gotta make work on this [brain-damaged] hardware." Doing at least some of the high-level software design first would have resulted in some very different (and not necessarily more expensive) choices about hardware components and capabilities.

    20. Re:just a thought by zero_offset · · Score: 1
      I wish I could give you all of my future moderator points for that one statement.

      Our current "architect" hasn't written a line of running code in ten years and can barely keep up with our explanations, yet he's constantly "designing" things, then relying on us to correct his mistakes (in very diplomatic ways that make it look like we're merely suggesting revisions).

      Several of the people in my group used to be architects here (before the powers On High decided we only needed one architect). We stayed in the code as often as possible, and consequently the things we wrote and built worked well, as designed, as long as we could keep the Now-Lone Architect's fingers out of the pie.

      Now, of course, the people who are really good at both design and programming are being turned into "analysts" where we'll do neither design nor programming, but simply fight with users over poorly defined requirements. Meanwhile our actual skills slowly rust away, and we end up as useless as our architect who can't be bothered to write real code. (Yes, many of us are thinking it may be time to pull up the roots and move on.)

      To me, there is no difference. In a perfect world, an architect should simply be a programmer who is really good at what he does, which is write code. To me, writing code implies you also design systems/applications/software/whatever. "Architecting" is just part of the coding process. When I say "I write programs" I don't bother to point out that "I write programs, then I debug them," because debugging is just an aspect of coding -- just like designing or architecting or whatever you want to call it.

      I suppose a caveat might be that in very large systems, the design portion can occupy so much time and effort that it warrants people spending most of their time on it, but I can't see any justification for making it an exclusive full-time role. However, some of the most important architectural changes I've seen in systems like this are a result of the top-level guys trying to build their ideas in code (often as a mock up or prototype), so I think even the dedicated architects should be writing code in some capacity. (For reference, to date the largest system I have worked on had a budget in the neighborhood of $42M, so I do have real experience with complex large-scale software projects.)

      --

      Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

    21. Re:just a thought by shess · · Score: 1

      I find that a very effective way to discover and fix design flaws is to try to implement them.

      Agreed. Design and implementation should be iterative - design everything which you really need, implement, then design the replacement which fixes the old problems plus the new ones. The implementation will need refactoring, but the majority of the actual code will still be usable.

      A two-year PowerPoint exercise doesn't always do this.

      If you're doing design work in PowerPoint, I can understand why you downplay it. I can't even imagine how one would go about designing software using PowerPoint. I suppose at some level you could just treat it as a text editor... and, of course, it might be useful when your management presents the advantages of your design to the executive staff.

  8. I wonder what will be in this book... by anactofgod · · Score: 5, Funny

    That one can't learn from reading Dilbert and watching Office Space.

    "Why didn't you put a cover sheet on the TPS report!" - "Terrible" Terry Tate.

    --

    ---anactofgod---

    "Equal opportunity swindling - *that* is the true test of a sustainable democracy."
    1. Re:I wonder what will be in this book... by Anonymous Coward · · Score: 0

      I think we need to hire Triple T to work at my office.

      "You drain the Joe, you make some mo!"

    2. Re:I wonder what will be in this book... by Anonymous Coward · · Score: 0

      I think we need to hire Triple T to work at my office.

      Would that be the upgrade to our offices Triple H, he's damn uncoordinated. Keeps trying to smack me in the mouth, but never once makes any kind of meaningful contact.

    3. Re:I wonder what will be in this book... by Zepalesque · · Score: 1

      Didn't you get the memo?

      I'll resend it to you.

  9. good job by Anonymous Coward · · Score: 0

    way to stick it to the CLiT

  10. How to be a programmer... by ackthpt · · Score: 2, Interesting

    ...Simple, just keep doing the stuff they give you. When one tool doesn't work, pickup and learn a better tool. I remember taking on a student job as a programmer, back in 1981. The path has twisted and turned a bit, but I'm still doing it until I find something else I really like ... or win the lottery ;-)

    --

    A feeling of having made the same mistake before: Deja Foobar
    1. Re:How to be a programmer... by Timothy+Brownawell · · Score: 1
      The Master turned the Novice toward the door, and with a supportive hand on his shoulder said, Go young Novice, and Read The Fucking Manual. And so the Novice became enlightened.
      Read the Manual for what??

      Would not the Learning of this Other Skill cause the Novice greater Difficulty in becoming a Writer of Programs?

      ;) Tim

  11. That is not the question... by Anonymous Coward · · Score: 0

    How to be a programmer?
    How not to be a programmer is the question.

  12. Nice read, one thing that is missing... by arf_barf · · Score: 5, Insightful

    How to deploy the software and updates to it.

    It gets quite complex in custom business applications where you have to distribute client, middle tier and database updates to production systems.

    Anyhow, my 2 cents.

    1. Re:Nice read, one thing that is missing... by kwerle · · Score: 1

      Not that I've read the piece, yet, but I'd say that has nothing to do with being a developer. That has everything to do with being a release control engineer - which is another hat.

      Yes, many developers wear more than one hat (developer, QA, RC, etc), but the RC hat is not the same as the developer hat.

    2. Re:Nice read, one thing that is missing... by RobertLRead · · Score: 1

      Yes, I should have talked about that. It is very important. Unfortunately I'm not sure I'm good enough at it to write that section.

    3. Re:Nice read, one thing that is missing... by flynt · · Score: 0, Offtopic

      BITS is a cool new file transfer feature of Windows that asynchronously downloads files from a remote server over HTTP. BITS can manage multiple downloads from multiple users while making use of idle bandwidth exclusively. Although the use of BITS is not limited to auto-updating applications, it is the underlying API used by Windows Update. And since it is available to any application, it can be used to do much of the really tough work involved in creating an auto-updating application.
      Here is the basic idea. An application asks BITS to manage the download of a file or set of files. BITS adds the job to its queue and associates the job with the user context under which the application is running. As long as the user is logged on, BITS will drizzle the files across the network using idle bandwidth. In fact, the code-name for the BITS technology is Drizzle, which, it turns out, is quite descriptive of what BITS does.
      How does all of this work? The technology is actually fairly sophisticated. First, BITS is implemented as a Windows service that maintains a collection of jobs organized into a set of priority queues: foreground, high, normal, and low. Each job in the same priority level is given bandwidth via time slices of about five minutes, in a round-robin fashion. Once there are no jobs remaining in a queue, the next priority queue is inspected for jobs.
      Jobs in the foreground queue use as much network bandwidth as they can, and for this reason the foreground priority should only be used by code that is responding to a user request. The remaining priorities--high, normal, and low--are much more interesting because they are all background priorities, which is to say that they only make use of network bandwidth that's not in use.
      To achieve this background feature, BITS monitors network packets and disregards packets that it recognizes as its own. The remaining packets are considered the active load on the machine's bandwidth. BITS uses the active load information along with the connection speed and some other statistics to decide whether it should continue downloading files or back off in order to increase throughput for the active user. Because of this, the user doesn't experience bandwidth problems.
      The ability to drop what it is doing at a moment's notice is very important for BITS. In many cases, only part of a file is downloaded before BITS must give up the network or even lose connection altogether. The partially downloaded file is saved, however, and when BITS gets another crack at the network, it picks up where it left off. This ability to recover does have some side effects.
      Remember that BITS is used to transfer files from HTTP servers. A server should be HTTP 1.1-compliant or at least support the Range header in the GET method for BITS to work. This is because BITS needs to be able to request a portion of a file. In addition, the content being downloaded must be static content such as a markup file, code file, bitmap, or sound. A GET request including a Range header makes no sense when requesting dynamic content such as that produced by CGI, ISAPI, or ASP.NET.
      Currently, there are two versions of BITS: 1.0 and 1.5. BITS 1.0 ships with Windows XP and has the following features: interruptible background downloading of files, download prioritization, optional notification of completed jobs and error situations, and optional progress notifications for use with dialog boxes and other UI elements. BITS 1.5 ships with Windows .NET Server. In addition to the features contained in BITS 1.0, version 1.5 has interruptible background uploading of files and authenticated connections using Basic, Digest, NTLM, Negotiate (Kerberos) or Passport. BITS 1.5 is available as a redistributable that is compatible with Windows 2000 and greater (see Background Intelligent Transfer Service).
      The BITS 1.0 feature set is sufficient for writing auto-updating applications, but the BITS 1.5 features allow you to perform more complicated tasks like selling updates or handling interaction between the application and the server.

    4. Re:Nice read, one thing that is missing... by Anonymous Coward · · Score: 0

      Isn't that more Config Management? I guess in small companies, developers have to wear more than one hat, but at my company I have next to nothing to do with this.

    5. Re:Nice read, one thing that is missing... by Coz · · Score: 1

      Hey, the author replies in the thread! Kudos to you, man...

      Now, to reply - deployment is really neglected. It's not a thing the programming team often thinks of - they're busy implementing the class/module/function point they've been assigned, and they'll test it (hopefully in an environment close to the target), but there are so many ways software gets used these days, deployment changes quickly. Full-screen C++ apps using file-based storage became Java applets in a 3-tier system talking client/server to a database, then evolved into JSP pages using JBoss and mySQL.

      My point is, deployment is a skill related closely to an ability to learn, and the patience to try things until they work, while documenting your every move so it can be recreated later. I'm only so-so at it, and have high regard for those who are good - but I'm not sure it's a skill every programmer needs.

      All IMHO, of course....

      --
      I love vegetarians - some of my favorite foods are vegetarians.
    6. Re:Nice read, one thing that is missing... by arf_barf · · Score: 1

      Never worked for a large company. Always worked in teams of less then 12 devlopers/qa, so ofcourse we always have to do everything.

      Besides all I am saying is, that if you dont develop with the release cycle/procedures in mind, you can screw even the best 'release' team :-)

    7. Re:Nice read, one thing that is missing... by homebru · · Score: 4, Funny
      ...deployment is really neglected.

      Maybe, maybe not. Very often the programmer is not a part of the deployment process.

      In very small companies, the owner waits until the programmer is not in the office and then copies executables from the wrong directory on the development machine onto a floppy/tape and starts sending out copies in order to make good on the ridiculous ship date the programmer refused to accept. This complicates the finger-pointing to come, since the marketing/sales manager did the same thing three days earlier. [If you haven't experienced this, you simply haven't worked at sufficiently small companies.]

      In very large companies, programmers can't be trusted anywhere near the QC, release, or production environments. At best, the programmer is allowed to create a release document listing the files to be compiled by the "build-meister" in the sterile build environment and then tar-balled for delivery to the sysadmins. Who will "install" by dropping the tar-ball into /usr/local/bin, turning off their pagers, and going home. [If you haven't experienced this, you simply haven't worked at sufficiently large companies.]

      It wasn't funny at the time.

    8. Re:Nice read, one thing that is missing... by ckaminski · · Score: 1

      The answer to that is proper decoupling. By making your middle tier and client and database tiers seperate, you don't HAVE this problem. The rest becomes a matter of proper testing.

      But you make a good point, in that certain complex systems, namely database clusters, and web farms introduce other difficulties into the mix, and that many, if not all, of the programmers writing to these targets have very little clue how these systems work, and what sorts of interdependencies they have on each other.

      I fortunately was blessed with an upbringing in IT, building the foundation for these distributed apps, before writing the software that took advantage of them. Many of my comrades did not have such an advantage. This doesn't make me better than them, but it gives me an insight into how the whole system behaves that they will struggle to understand. I surmise that many programmers on slashdot have a similar experience.

    9. Re:Nice read, one thing that is missing... by wideBlueSkies · · Score: 1

      In monstrous global companies, you submit your tarballed source tree to a proprietary automated build and packaging service. Not that it's really propriatary, it's just a layer built on top of standard Sun packaging, but I digress.

      After your application is packaged, you get to manually do a staging QA test, then it's back to the automated service, where your package is sent to the deployment group for(manual) wrapping and standards checking.

      After the package is wrapped (by a dozen guys who know nothing about UNIX), it's sent to sit on a server for 5 days untill the deployment date.

      The deployment is done by a guy who's knowledge of UNIX consists of loggging in, su, ftp, cd, and pkgadd. Think about that su. I'll touch on that later.

      If anything goes wrong, the programmer gets a page, phone call and Email. 2 trouble tickets are opened. 1 for the broken production environment, and 1 for the incomplete deployment.

      So you fix the problem, either by fixing the problem, or by falling back to the prior release. Assuming that your -1 package is still out there...somewhere. Then you get to close the tickets, write a post-mortem, and call your boss with the bad news.

      Then your boss gets to tell his boss how you fucked up the release.

      If things go OK, your boss gets to tell his boss that he had a successful deployment.

      The whole turnover process is approved by your auditors, data security group, SDLC board, and 5 different 'who gives a shit' panels of internal experts.

      It's the greatest thing in the world. Even though it's broken in about 100 places.

      Like that it's insecure enough that if an install script within the package says something like "rm -fr /" it will wipe out the entire production box. Because the deployment guy logs in as root to do the install. (This has happened, more than once.)

      The system can't be easily replaced because there are over 5000 developers using it, and no one gives a shit anyway. They're all worried about locking down SQL Server and Outlook.

      If you haven't experienced any of this, you havent worked at a sufficiently HUGE DNA-OWNING MEGA COMPANY.

      --
      Huh?
    10. Re:Nice read, one thing that is missing... by hyperturbopete · · Score: 1

      LoL! :-)

    11. Re:Nice read, one thing that is missing... by Hognoxious · · Score: 1

      Zzzzzzzz

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    12. Re:Nice read, one thing that is missing... by RhetoricalQuestion · · Score: 1

      Thank whatever-you-choose-to-believe-in for you.

      I make tools to manage software deployment. (Actually, I switched sides and market them, but whatever.) Let me tell how the sell cycle for our software goes.

      1. An developer or architect planning a business application considers deployment, maybe takes a look at our tools, decides it's expensive and unnecessary, and figures they can manage themselves with scripts, freeware and a little ingenuity. After all, they're software developers, and therefore brilliant.
      2. The business application gets developed with no additional thought to deployment and suddenly it's about to go Beta.
      3. For the first time, the operations/production folks take a look at it and say "how the heck are we supposed to deploy this POS?"
      4. Some developer hands them a bunch of hacked together scripts.
      5. They Beta and fail. Deployments take too long, require too much downtime, and are buggy, brittle and error-prone.
      6. They fight with it to make it work, and continue to fail. Developers, who should have handed the thing off by now, keep getting pulled in to solve deployment situations that their code can't handle. Budgets run tight, time runs short, management starts screaming.
      7. Eventually, someone remembers these tools we make, and give them a second look.
      8. The operations/production people say "This solves everything. Why did you hand us a bunch of crappy scripts when this does exactly what we need?"
      9. Purchase order comes in.

      Our tools aren't the perfect solution to every scenario, but invariably, the development group (whose design decisions have deployment consequences) decide that our tools are unnecessary, even though they aren't the ones who will ultimately use them. We can talk to them about problems we know they will face down the road, but they won't believe it.

      So they try. They fail. They call us back. And all because they don't get deployment. Waste of everyone's time.

      --

      I can spell. I just can't type.

    13. Re:Nice read, one thing that is missing... by Anonymous Coward · · Score: 0

      not a problem if its all stored procedures, as one poster above suggested.

    14. Re:Nice read, one thing that is missing... by Anonymous Coward · · Score: 0

      we use oracle at my work.

  13. The short list by mighty_mallards · · Score: 5, Insightful

    Here's what is important to me as a programmer:

    1. Always keep learning - it's not as important how much you know - it is important how fast you can learn new things

    2. Don't just implement something for the sake of doing it, or because it will look cool on your resume. Make sure you have valid reasons for what you do, preferrably backed up by some research. Change isn't bad unless it is change for the sake of change.

    --
    You find this humorous, centurion?
    1. Re:The short list by jgerman · · Score: 5, Insightful

      Err 1 and 2 are kinda mutually exclusive. Additionally, as far as I'm concerned and backed by experience, people who do 2 tend to be the better programmers. People who dabble in CompSci because they love it, and write code for the sake of writing it, are not only more experienced, they're also more willing to try new things, and have a better understanding of the field.

      --
      I'm the big fish in the big pond bitch.
    2. Re:The short list by mighty_mallards · · Score: 1

      I was talking more about implementing features in a new project just because you can, not because you're trying to fill a need. In a production environment, there is no place for casual experimentation (and frequently, there is no time)

      --
      You find this humorous, centurion?
    3. Re:The short list by benjiboo · · Score: 1
      I would agree with number 1 whole-heartedly. It's frustrating how some higher education institutions are now so focused on the language and products which you'll learn that they neglect to teach you the skill of learning in itself.

      I would recommend that any beginning programmer learns the basics of as many languages as possible. It wasn't until I broadened my programming language skill set that I considered myself an intermediate rather than beginner programmer...

      --
      Vacancy for signature. Apply within.
    4. Re:The short list by (H)elix1 · · Score: 1

      2. Don't just implement something for the sake of doing it, or because it will look cool on your resume. Make sure you have valid reasons for what you do, preferably backed up by some research.

      Making sure your resume is fully buzzword compliant is a perfect justification for picking up a technology. To this day, I consider Java to be C++ for dummies, yet that is what puts food on the table. There are patterns that emerge regardless of the specific technology, so it is usually a good idea to optimize the pocket book while picking up a new skill.

      I'd made the number two spot - do it for love. Love of coding, creating, problem solving, and other aspects of software development.

    5. Re:The short list by jgerman · · Score: 1

      Fair enough, I mis-understood your comment. Certainly, you shouldn't use a new project as your testing ground for new ideas (well sort of).

      --
      I'm the big fish in the big pond bitch.
    6. Re:The short list by Tablizer · · Score: 2, Informative

      I was talking more about implementing features in a new project just because you can, not because you're trying to fill a need. In a production environment, there is no place for casual experimentation

      Ideally yes, but in reality many poeple use buzzware techniques to keep their resume/references "up to date". Thus, they will FIND a way to use OO-XML-Web-Services no matter what, and make up some hairball justification like, "It increases the absraction layers in order to protect us from changes in the implementation of the transport mechanism of business dynamism....", and the PHB will just say, "Well, whatever, Okay".

    7. Re:The short list by Anonymous Coward · · Score: 2, Interesting

      But to go full circle ... the ones who have a better understanding are the ones who know when to leave some part(s) alone. Picking the battles is what wins the war.

  14. I would rather see this book by Chocolate+Teapot · · Score: 0
    1001 Sensible Alternatives to Becoming a Programmer

    1) Crash Test Dummy
    2) CowboyNeal's PR agent
    3) ...

    The list is endless.

    --
    Modest doubt is called the beacon of the wise. - William Shakespeare
    1. Re:I would rather see this book by dlb · · Score: 1

      Shame on you! Get back with the rest of the herd.

  15. Programmer? by rela · · Score: 5, Insightful

    This looks like it should be titled "How to be a Developer", as much of it is oriented towards programming for a project or coporation...

    1. Re:Programmer? by RobertLRead · · Score: 3, Interesting

      Yes, it is probably mistitled. I'd rather expand the essay to include other aspects of programming than change the title...but in the short term I'll do that, thank you.

  16. He left out a certain chapter by TerryAtWork · · Score: 5, Funny

    The 'Thrown Out Like an Old Sock' chapter.

    --
    It's Christmas everyday with BitTorrent.
    1. Re:He left out a certain chapter by Anonymous Coward · · Score: 0

      Actually he does mention that in the last chapter where he says: "You may of course get fired, but if that happens you can easily get a new job because of the magic power."

  17. how to be a "successful" programmer by C60 · · Score: 5, Funny

    1) Write code
    2) Avoid commenting your code at *all* costs
    3) Obfuscate code, heavily and often.
    4) Make sure everyone sees your code. This will culture a sense of fear and awe in your coworkers. Particularly if you can make your Perl code look like assembler.

    With these 4 easy steps, you too can be one of the last people to be laid by your employer!

    --
    Karma: 0 (But I wield a mean +10 Vorpal Apathy)
    1. Re:how to be a "successful" programmer by rela · · Score: 5, Funny
      With these 4 easy steps, you too can be one of the last people to be laid by your employer!

      Mere typo, or Freudian slip?

    2. Re:how to be a "successful" programmer by Anonymous Coward · · Score: 0

      "You too can be one of the last people to be laid by your employer!" - gives you more chance of "contracting"

    3. Re:how to be a "successful" programmer by Anonymous Coward · · Score: 0

      or laid by anyone else for that matter.

    4. Re:how to be a "successful" programmer by FroMan · · Score: 1

      I'd just settle for one of my co-workers. But then, she is my wife. I guess I am successful.

      --
      Norris/Palin 2012
      Fact: We deserve leaders who can kick your ass and field dress your carcass.
    5. Re:how to be a "successful" programmer by praksys · · Score: 1

      No I think he meant it as a euphemism for a metaphorical use of "screwed over". As in "you will be one of the last people to be butt fucked by management when money gets tight".

    6. Re:how to be a "successful" programmer by homebru · · Score: 1
      ...you too can be one of the last people to be laid [sic] by your employer

      Yeah, maybe. But you won't be the last. Because management will have to keep a handful of really good programmers to cleanup your cruft. And they will tell ten friends, and they will tell ten friends,...

      Been there; used the t-shirt to mop up the mess. Still telling stories at the local user group.

    7. Re:how to be a "successful" programmer by Anonymous+Brave+Guy · · Score: 4, Funny

      Nah, that was a Freudian slap. A Freudian slip is when you say one thing and mean your mother.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    8. Re:how to be a "successful" programmer by Chester+K · · Score: 1

      ...and if you don't have DVT, you aren't trying hard enough.

      --

      NO CARRIER
    9. Re:how to be a "successful" programmer by Anonymous Coward · · Score: 0

      No, you mean that there are more than just the one person I work with routinely doing this sort of thing?

      A great weight has been lifted from my shoulders ;-)

    10. Re:how to be a "successful" programmer by hesiod · · Score: 1

      > With these 4 easy steps, you too can be one of the last people to be laid by your employer!

      Think I'll NOT follow these, as that doesn't sound too appealing to me.

  18. How To Write Unmaintainable Code by joe_bruin · · Score: 5, Funny

    just read this handy guide to writing unmaintainable code and do exactly what it suggests

  19. My advice... by JaredOfEuropa · · Score: 5, Interesting

    There is no substitute for experience, but there is something resembling a fast track.

    Get paired to a senior programmer/systems engineer

    If you have the opportunity to work with a senior on a one-to-one basis, grab it with both hands. There will not be many times when an experienced guy is willing to work with you or coach you, so rejoice when the opportunity presents itself, take it. A colleague of mine asked me which project he should take: a glamorous one where he would be working in a large team with no coaching, or a boring-looking but difficult job, working under one senior programmer. I adviced him to take the latter... which he did, and while he often complained about the job itself, his programming skills improved by leaps and bounds, which made him a senior programmer on the next assignment. I was glad to see he has taken it upon himself to teach in the same manner and spend lots of time with the junior guys.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    1. Re:My advice... by Anonymous Coward · · Score: 0

      Yes, I agree... Boring work is always a good choice... It gives you lots of opportunity to read /.

    2. Re:My advice... by Skapare · · Score: 1

      So what advice would you give to the senior programmer/systems engineer who is also asking (and needs to ask) the question: How to be a Programmer? I've found that typically only 15% or so of programmers really know what they are doing. That figure rises as you move up the ranks and is finally double that at the senior level ... 30%.

      --
      now we need to go OSS in diesel cars
    3. Re:My advice... by homebru · · Score: 5, Insightful
      ...what advice would you give ...

      You only need to stay 15 minutes ahead of the others for them to think that you are a genius.

      Several things you can do:

      • Create a small version of your development environment at home and spend time doing little proof-of-concept projects there before announcing your design ideas at the office. Even if people find out that you are proofing at home, you can get points for having a Give-A-Shit attitude.
      • Write up your thoughts/notes on the current project and give them to the new kid in the group. S/he will become conditioned to come to you for answers. Which will force you to learn.
      • Call meetings of the programmers to talk about shop standards, techniques, "how to use GDB", etc. Nobody else is trying to form the herd into a team and you will look like a leader. Which will force you to become one.
      • Teach classes to the other programmers. Managers love to get department training for effectively nothing. An AS400 jockey could try to explain OS400 (is that the right name?) to UNIX jocks. A UNIX type could intro Linux to the 400 jockeys. You really find out what you do and don't know when you try to teach someone else.
      • Get a copy of some presentation tool (power-point equiv.) and learn to do simple presentations. Ten pages or less; outline form; major bullet points. Then use those techniques in your peer meetings. Scare the bejeezus out of your manager by using a formal presentation to explain why you HAVE to have some new tool in the department. You'll know you have "arrived" when your boss uses your presentation to go to his boss for more budget money.


      Get the idea? Learn by doing privately and learn more by teaching. To be really great, you need more than coding skills. You also need writing, teaching, leading, and public-speaking. But most of all, don't try to do it in a vacuum. You can learn from others while you are teaching them. You can't get there overnight, but by constantly picking at it, one little piece at a time, you will get there.

      Downside is that marginally-abled management will see you as a threat to their jobs.

      p.s. For goodness sake, learn to punctuate and use a spell checker. (No touchbacks.) You don't get points for looking professional; you lose for not.

    4. Re:My advice... by EelBait · · Score: 1

      This really seems like good advice. I like the aspect of teaching co-workers. One of my biggest gripes in the office space is the fact that most corporate developers are clueless. Recently at work I found out that out of 50 or so "developers", only five had computers at home. None read /. or any books on programming.

      Meanwhile, I have to go through their crap code and pull my hair out trying to divine what the hell they were smoking when they wrote some of it. Perhaps they just don't know any better.

    5. Re:My advice... by homebru · · Score: 1
      I like the aspect of teaching co-workers.

      Please don't forget the learning aspect. Even a "clueless" type can teach you something.

      One of the professional bass-fishermen (Jimmy Houston, if memory serves) once observed "I learn something from everybody I fish with. Sometimes all I learn is that I don't ever want to fish with that person again."

  20. Male writer using "she" by Gary · · Score: 0, Flamebait

    Ok, I started reading the paper and got to the intro where HE starts using SHE for a pronoun. That's it, I refuse to read the rest. Gawd that annoys me! If a woman writes, by all means use "she", but it smacks of political correctness, IMHO, when a man does it.

    I know, I am too easily annoyed.

    1. Re:Male writer using "she" by Anonymous Coward · · Score: 0

      That's because only "shes" need to know this sheet. Guys are already in the know. How many "shes" do you ever see doing GOOD coding? And I'm not talking B.J.s, but real coding, how many?

    2. Re:Male writer using "she" by DickBreath · · Score: 3, Funny

      How many "shes" do you ever see doing GOOD coding? And I'm not talking B.J.s, but real coding, how many?

      Some "shes" are good at coding (and maybe B.J's), just as some of us "hes" are good at B.J.'s (and also coding).

      --

      I'll see your senator, and I'll raise you two judges.
    3. Re:Male writer using "she" by zootread · · Score: 2

      That's because only "shes" need to know this sheet. Guys are already in the know. How many "shes" do you ever see doing GOOD coding? And I'm not talking B.J.s, but real coding, how many?

      Actually, one of our female coders writes some of the best code, and I've learned a lot from her and just reading her code.

      --
      Zoot!
  21. Learn to Proofread by Anonymous Coward · · Score: 2, Funny

    It's really funny that the second sentence of the 'Learn to Debug' section has a heinous grammatical error.

    1. Re:Learn to Proofread by Satoshi+Harada · · Score: 1

      Near the end..

      The solitary program that loves his work (a hacker) can choose the best language for the task.

      I am so glad those lonely programs are good at language selection!

      --
      Error: .Sig fault
  22. Good thing he ran it by us! by AyeRoxor! · · Score: 1

    Take each page number in the index, and add two.
    Other than that, it looks very nice :)

  23. How to be a programmer by Anonymous Coward · · Score: 5, Funny

    Choose no life.
    Choose no natural light.
    Choose cafeine.
    Choose to have RSI.
    Choose no girlfriend.
    Choose to work long hours and the weekends.
    Choose to use C.
    Choose to use JAVA after talking to the boss.
    Choose to have a bloody big 21 inch monitor.
    Choose to comment code.
    Choose to have to comment other people's code.
    Choose to run a sourceforge project on the side.
    Choose to be abused by mindless helpdesk jockeys.
    Choose Comp Sci.
    Choose D&D geeky friends.
    Choose Slashdot.
    Choose an early grave.
    Choose something else.

    1. Re:How to be a programmer by grub · · Score: 1


      Choose no girlfriend.

      That's a choice? I thought it was a prerequisite.

      --
      Trolling is a art,
    2. Re:How to be a programmer by Anonymous Coward · · Score: 0

      plain and simple: RSI is caused by stress. Easilly resolved by taking a psychological approach. This approach can only work if you take this as truth. If you are a skeptic you are just working against yourself.

      google search: sarno tms .doc

    3. Re:How to be a programmer by Anonymous Coward · · Score: 0
      I'm a programmer and I have a girlfriend.

      No sex though, and no care.

      Sucks to be me.

      Having no girlfriend ain't so bad.

    4. Re:How to be a programmer by grub · · Score: 1


      I'm a programmer and I have a girlfriend. No sex though, and no care.

      Sorry man, if you aren't spewing molten jets of bodily fluids on one another she isn't a "girlfriend" she's just a "friend".

      --
      Trolling is a art,
    5. Re:How to be a programmer by philll · · Score: 1

      I hate it when Anonymous Cowards get Score 5. It's like that guy who was already a millionaire winning the big lottery last month. Give us little guys some of that karma.

  24. Tao of Porgramming by axxackall · · Score: 5, Funny
    This classic translation takes care about the spirit of programming.

    Just few quotes:

    Does a good farmer neglect a crop he has planted?
    Does a good teacher overlook even the most humble student?
    Does a good father allow a single child to starve?
    Does a good programmer refuse to maintain his code?

    There once was a master programmer who wrote unstructured programs. A novice programmer, seeking to imitate him, also began to write unstructured programs. When the novice asked the master to evaluate his progress, the master criticized him for writing unstructured programs, saying, ``What is appropriate for the master is not appropriate for the novice. You must understand the Tao before transcending structure.''

    The Tao gave birth to machine language. Machine language gave birth to the assembler.

    The assembler gave birth to the compiler. Now there are ten thousand languages.

    Each language has its purpose, however humble.
    Each language expresses the Yin and Yang of software.
    Each language has its place within the Tao.

    But do not program in COBOL if you can avoid it.

    --

    Less is more !
    1. Re:Tao of Porgramming by Weirsbaski · · Score: 1

      There once was a master programmer who wrote unstructured programs. A novice programmer, seeking to imitate him, also began to write unstructured programs. When the novice asked the master to evaluate his progress, the master criticized him for writing unstructured programs, saying, ``What is appropriate for the master is not appropriate for the novice. You must understand the Tao before transcending structure.''

      My college math prof put it another way- It's OK to say "ain't", if you know better.

      --

      I am not a sig.
  25. Re:Don't Forget School ... by Anonymous Coward · · Score: 0

    School is good for nothing more than the piece of paper required for most people to get a job as a programmer. If you need to go to school to learn to be a programmer please change your major now... There are enough mediocre programmers in the world and I'm tired of rewriting all your crappy code!

  26. Debugging is a lifestyle by PseudoThink · · Score: 1

    I had trouble getting the paper to have its intended effect, so I ran in through my grammar debugger and found the reason:

    Page 10, Line 30, Character 51: 'r' should be an 'f'

    1. Re:Debugging is a lifestyle by Anonymous Coward · · Score: 0
      I had trouble getting the paper to have its intended effect, so I ran in through my grammar debugger and found the reason:

      Page 10, Line 30, Character 51: 'r' should be an 'f'

      It seems to have slopped over into the B&N review which contains the fragment "... straight from the frenches...."

  27. how I started... by Anonymous Coward · · Score: 0

    #include
    int main(int argc, char *argv[]) {
    printf("Hello World\n");
    }

    1. Re:how I started... by Anonymous Coward · · Score: 1, Funny

      Heh, and you would have started with a compile error :) Nice.

    2. Re:how I started... by Anonymous Coward · · Score: 0

      I expect the was in the original posting, but got munched as an HTML tag.

      Sadly, main() is correctly declared as returning int, then doesn't return one. It had to contain an error somewhere. They always do.

  28. The trick is to write unmaintainable code by Anonymous Coward · · Score: 0

    The trick is to write unmaintainable code, therefore ensuring job security.

    Details are here:

    http://mindprod.com/unmain.html

  29. Okay, enough pronoun bashing by rela · · Score: 5, Interesting
    This has been up, what, 15 minutes, and already all I can see is posts bashing his use of feminine pronouns. No comments on the text itself? It's got some good points that would apply to working on any kind of project, not just programming.

    I especially like:

    There is a lot of room for miscommunication about estimates, as people have a startling tendency to think wishfully that the sentence:

    "I estimate it might be possible if I really understand that problem that it is about 50% likely to be completed in 5 weeks if no one bothers us in that time."

    really means:

    "I promise to have it all done 5 weeks from now."

    Heh heh heh...

    1. Re:Okay, enough pronoun bashing by Anonymous Coward · · Score: 0

      The author's use of the feminine pronoun is disturbing because of all the connotations associated with writers who are trying to prove some kind of sexist point.

      One should always use the neuter pronoun when referring to an individual in scientific documents.

    2. Re:Okay, enough pronoun bashing by jyoull · · Score: 1

      Well, i came here to complain about that too. There's a long preface in which the author describes what follows as a PERSONAL perspective on things, and then commences to refer to the protagonist as "she." It's just too damn weird. I had to stop reading it.

    3. Re:Okay, enough pronoun bashing by richieb · · Score: 1
      "I estimate it might be possible if I really understand that problem that it is about 50% likely to be completed in 5 weeks if no one bothers us in that time."

      I recently read an article which discussed this. It basically said "This is an ESTIMATE. By definition ESTIMATEs are not exact!"...

      --
      ...richie - It is a good day to code.
    4. Re:Okay, enough pronoun bashing by PhxBlue · · Score: 1

      If I say I'll have it done in five weeks, it means I can really have it done in two, but I'll be damned if I'm going to have management breathing down my neck in a week and a half because they changed the requirements and they need it all tomorrow.

      I know, I know, everyone's heard of this, right? But no one knows that's your formula unless you tell them. . . **sighs** besides, somehow, after all the requirements creep that I have zero control over, I manage to just make that five weeks anyway.

      --
      !#@%*)anks for hanging up the phone, dear.
    5. Re:Okay, enough pronoun bashing by RKBA · · Score: 1

      Ok, here are some comments on the text itself. I was going to email Ms. Read my comments, but since I see she is participating in this thread, I'll just post my comments here.

      1. In section 3.10 "How To Recognize When To Break or Go Home", I was surprised (even shocked) to find the most primary and basic reason for taking a break or going home missing from the text. The most important reason for going home isn't because we become homicidal/suicidal maniacs when we're tired as Ms. Read implies (we don't), the reason is that we make mistakes when we're tired. Beyond a certain level of fatigue, it is counterproductive to remain at work and attempt to continue writing code. I discovered this many years ago the hard way. There were a couple of times when I wanted to get something finished so much that I kept at it even after I couldn't think straight (though the point at which this occurs isn't always obvious at the time). In *both* cases, I spent the next morning either repairing the mistakes I'd made the night before, or deleting the code I'd written when I was overly tired and rewriting it. The increased number of errors we introduce into our code when overly fatigued is the most important reason to get some sleep, rather than the reasons Ms. Read mentions in her monologue.

      2. Use a word processor with a spell checker. There is no excuse for gross spelling and grammar errors these days.

      Overall, I thought Ms. Read's monologue was entertaining and perceptive in places. I also liked the author's sense of wit and humor, and got a couple of good laughs out of it. One puzzling thing is the use of the pen name "Robert" even though it's obvious from the text that the author is female. I know one girl who goes by the name of "Sam" (for Samantha), but what is "Robert" short for - "Roberta" perhaps?

      -- Ron

  30. -1 (Delusional Use of Pronoun) by Anonymous Coward · · Score: 0, Troll

    This essay abuses the English language and insults the programmer-reader with its persistent use of the female singular pronoun, where (actually gender-neutral) "he" would be correct.

    1. Re:-1 (Delusional Use of Pronoun) by GT_Alias · · Score: 1
      Yeah, I was curious about that. Seems that my CS profs here at school are doing the same thing. When did it become commonplace to use "she" when referring to "the programmer?"

      I mean, c'mon, in my higher level CS classes, there is (on average) about 1 girl for every 40 guys.

    2. Re:-1 (Delusional Use of Pronoun) by 6 · · Score: 2, Informative

      Actually I think it is a good use of language. His overarching goal for the text is to get you to think outside your normal conceptualizations about programmers. In this case by simply using the female pronoun he causes you to think about a) the stereo type of programmers as nerdy males and b) the way the language we use inherently supports a.

      Thinking about how language choice effects function IS something programmers should consider and he elegantly brings this out in the text.

    3. Re:-1 (Delusional Use of Pronoun) by EvilTwinSkippy · · Score: 1
      That would be because programmers have become the Wizards and Necromancers of our modern society. They have inherited the fantanstic ability to do the impossible. They also have a tendency to go a little loopy, and hallucinate too.

      Since when was LSD-25 a spell component for SELECT INTO?

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    4. Re:-1 (Delusional Use of Pronoun) by Anonymous Coward · · Score: 0

      I am a female programmer, and when I see the female pronoun, I think it's referring to a specific person, not a generic one.

    5. Re:-1 (Delusional Use of Pronoun) by broody · · Score: 1

      Oh yeah, bring on the pronoun holy wars. The pronoun use is probably wishful thinking during those long, lonely nights of paper writing.

      --
      ~~ What's stopping you?
  31. Perl that looks like assembler? by Anonymous Coward · · Score: 0

    Heck, my Perl code doen't look like assembler.

    It looks like machine code!

  32. School, instructions, study... none of the above by netsavior · · Score: 0, Informative

    You cannot choose or learn to be a programmer, you are born with it or you should get the hell out. No amount of school or instruction or determination can change you into a programmer.

  33. Twaddle! by OldCrasher · · Score: 3, Informative

    The script reads like a collections of untruths, half-truths, whinings, myths and philosophical twaddle. The person writing it does not have the experience to write it, nor the insightfulness to realise they should just put up and get back to work. Clearly written after too long a session in front of the glowing tube.

    The Glossary is outright wrong; maybe it's the footnote from some SNL show on educational tom-foolery?

    This rambling, ill-thought out work would be a terrible handicap to some junior scholar thinking they could read this and jump into the big pot we call IT.

    I guess if it gets published the author can collect their royalties. My advice to those that ask me, and many do, will be to avoid this like the plague.

    Well, I guess I just sank my Karma!

  34. those silly schooled engineers by Anonymous Coward · · Score: 0

    they use things like design patterns and standards that make code unmantainable. I mean why would I spend an evening learning a session facade when I could just call the EJBs remote interface directly from a JSP? Languages ussually only have 40 some keywords and who needs an education to know what 40 things do? I don't because I can just figure things out and the first thing out of mind is always the right and only solution to a problem.

    1. Re:those silly schooled engineers by Anonymous Coward · · Score: 0

      If your an writing EJB's you don't even count as a programmer in my book. Try writing the EJB container . If you can do that then you may indeed be a programmer.

  35. People are born programmers by Anonymous Coward · · Score: 0

    The ability to program is a gift from God. If you need to read books on how to be a programmer you are wasting your time and every real programmers time when they have to rewrite your crappy code.

    1. Re:People are born programmers by fishdan · · Score: 4, Insightful
      If you're one of those "blessed few" who doesn't have anything to learn from books, you're part of the problem too. Let me tell you, if you've never looked at a book, there's alot of code you've written that isn't gonna scale, and every "real" programmer hates the fact that you are wasting your intelligence by reinventing the wheel 9 times out of 10. Sad sad sad. You might be pretty damn smart, but it's always smarter still to read. I remember this guy who spent 2 weeks trying to come up with a GREAT random number aloorithm, because some giant DB company that shall remain nameless had a random number algorithm that sucked in early JDBC. HE came up with a pretty slick method, clever, etc. But he had a copy of Knuth on his desk! Inside of which is one of the BEST random algorithms you'll ever see! But instead, he *had* to write his own.

      And because he had never read -- because of the extra 2 weeks he took writing that function -- the whole dot com industry collapsed.

      --
      Nothing great was ever achieved without enthusiasm
    2. Re:People are born programmers by Anonymous Coward · · Score: 0
      But he had a copy of Knuth on his desk! Inside of which is one of the BEST random algorithms you'll ever see!

      I admire Knuth as much as the next nerd, but I don't think this statement is necessarily true. Granted, your friend shouldn't go ahead and try to write his own, but I think there's better sources available, especially if he was looking for a cryptographic PRNG.

  36. The Pragmaic Programmer by Hirofyre · · Score: 5, Interesting

    Another good reference for this type of info is The Pragmatic Programmer. It lays out how to write flexible, dynamic, and adaptable code, as well avoiding traps that a lot of new programmers fall into. It takes the time to explain the "why's" behind a lot of the engineering approaches advanced programmers take. It is definitely aimed at "junior" programmers, though. Usually when we get someone just out of collage, I point them to this book.

    1. Re:The Pragmaic Programmer by RobertLRead · · Score: 1

      I also love _The Pragmatic Programmer_ and recommend it in the introduction. It's scope is a bit different than this essay.

    2. Re:The Pragmaic Programmer by jgerman · · Score: 2, Funny

      I was just out of collage once. And a good think too, the Elmer's glue was starting to get on my nerves. Though I did have to walk aroung with bits of magazine stuck to my sides for a week or so. ;)

      --
      I'm the big fish in the big pond bitch.
    3. Re:The Pragmaic Programmer by LibertineR · · Score: 0

      Gotta agree with you, it's one of the best programming books out there. Some of it is stuff that any decent programmer should already know, but it is very nice to have it all wrapped up in a single book of best practices.

  37. "She" is now popular? by AbbeyRoad · · Score: 3, Insightful

    Most programmers are not female. Using "She" makes
    the work sound peculiar and unprofessional. It
    implies a anti-sexist bent which has nothing to
    do with the subject matter. Either write things
    in passive verse to avoid pronouns, use "they" or
    in the few cases where you really need to, use
    "he". Anyone who thinks this is sexist has a
    problem which your essay is not here to
    address.

    1. Re:"She" is now popular? by praksys · · Score: 2, Insightful

      Anyone who thinks this is sexist has a
      problem which your essay is not here to
      address.


      Anyone who thinks that using female pronouns is unproffessional has a sexist bent that really shouldn't be pandered to. One reason why women avoid programing might just be that everything they read about it reminds them that women are not supposed to program.

      Personally I think it is quite healthy for authors to remind themselves, and their readers (especially if those readers are typically male), that women exist as well and that they also might be interested interested in reading what the author has to say.

    2. Re:"She" is now popular? by The+Apostrophe+Guy · · Score: 0
      So the entire French language, where, in the the case of plurals the masculine form is taken is sexist?

      More than half of programmers (and their bosses) are male; he is the correct form

    3. Re:"She" is now popular? by praksys · · Score: 1

      So the entire French language, where, in the the case of plurals the masculine form is taken is sexist?

      No doubt if you asked a few French women about it then they would say that the language is sexist, and hard to fix. Fortunately in English it is much easier to avoid sexist language - which is why there is no good excuse for not doing so.

    4. Re:"She" is now popular? by Anonymous Coward · · Score: 1, Interesting

      I have to agree with this. When reading the essay, I wondered if the author of the essay thinks of himself as a "she"?

      To those who posted a negative reply to AbbeyRoad: Political correctness is old and stale. If women are turned off to programming because the "culture" says that they shouldn't program, then that means that women are more inherently influenced by external and superficial social factors than men. To wit: Being a programmer has long been equated with being an anti-social NERD and GEEK. These are not flattering labels at all. Yet we program.

      Only recently have nerds become fashionable because of the MONEY factor. Enter the GOLD DIGGERS, women who seek men for their money. Anybody watch "Joe Millionaire" on FOX, in which women are attracted to a dumb guy solely because they think he has mucho money? Similarly , when the feminists begin to ask, "Why aren't there more women doing computer programming?" in the back of their mind is really the money issue.

      We who program for a living, and even we who don't make a dime from our programs, program out of sheer joy and love of programming, not because of what society praises or rewards.

      Anybody who programs for other reasons is probably not a good programmer, and are pusuing high-tech for "glamour" reasons, in other words, the ability to say, "I make a lot of money" or for their vanity.

      Let me ask you: Do you think there are more comic book collectors who are men or women? Do you think the field of comic books should do more to cater to a female audience? By analogy to programmers, most comic book collectors are considered "dorks" or "nerds", and most are male. Lisa Marie Presley (daughter of singer Elvis Presley) and actor Nicholas Cage recently divorced because Presley wanted Cage to get rid of his comic book collection! There is nothing glamorous about comic books, unless there is money involved. Ergo, no feminists are going to complain about gender bias in the choice of titles, the oversized boobs, or the pandering to the testosterone crowd. You don't see rallys or essays about "gender discrimination" in the comic book field. Nobody cares about "reforming" the comic book industry, and elementary and teenage guys are still going to continue collecting them because they are genuinely fascinated by them, and not because society says they should.

    5. Re:"She" is now popular? by TC+(WC) · · Score: 1

      I doubt that. I assume that the French, due to the nature of their language, have a very clear conceptual boundry between gender with reguard to language, and a person's physical gender.

    6. Re:"She" is now popular? by praksys · · Score: 1

      I doubt that. I assume that the French, due to the nature of their language, have a very clear conceptual boundry between gender with reguard to language, and a person's physical gender.

      Your assumption turns out to be wrong. Take a look here for an example:

      http://abc.net.au/rn/arts/ling/stories/lf980919. ht m

    7. Re:"She" is now popular? by Sven+Tuerpe · · Score: 1
      Most programmers are not female.

      The most interesting are.

      --
      http://erichsieht.wordpress.com/category/english/
    8. Re:"She" is now popular? by hesiod · · Score: 1

      > > Anyone who thinks this is sexist has a
      problem which your essay is not here to
      address.

      > Anyone who thinks that using female pronouns is unproffessional
      [sic] has a sexist bent that really shouldn't be pandered to

      Wow, you just proved his point in your FIRST SENTENCE. Amazing sense of debate you have there. It is unprofessional because it is incorrect.

      Women avoid programming because they choose not to go into it. As far as I can recall I have never read anything saying women should not, can not, or will not go into programming for any reason other than lack of interest.

      I don't like this argument either, but if the large majority of the audience/subjects is male (as you claim) then why shouldn't the pronouns be masculine? If the target audience is female, feminine pronouns would be more than adequate.

      Personally, I think it is quite healthy for people to quit moaning about insignificant grammatical matters.

    9. Re:"She" is now popular? by neiljt · · Score: 1

      I think it's sexist to use the hypothetical "She".

      Gender is the last thing on my mind when reading a technical piece. That is, until I am jarred into unexpected gender-awareness as I trip into the first "She".

      My first instinct is then usually to glance back at the preceding text to remind myself of some character previously introduced who I must have too-quickly forgotten.

      Possibly even more irritating is the style which involves flip-flopping between masculine and feminine unnamed hypothetical subjects ... makes me feel kinda seasick.

      The most annoying part is that in the worst cases (of which this may be a fine example), I find this so distracting that I cannot bring myself to read any further.

      Sometimes a girl just has to get it off her chest.

    10. Re:"She" is now popular? by Anonymous Coward · · Score: 0

      That article is completely incomprehensible. Was it translated with babelfish?

    11. Re:"She" is now popular? by RogueMaverick · · Score: 1

      Maybe they see programmers as a species of their own? :)

    12. Re:"She" is now popular? by Strigiform · · Score: 1

      Do you think that the word "actress" sounds peculiar and/or unprofessional?

  38. eh by Anonymous Coward · · Score: 0
  39. "It's a Small World" Austin Geek SF Factoid by Nova+Express · · Score: 1
    I know this is going to be way offbeam for most people, but one of the first things I was struck with is the fact that guy lives on Norris Drive here on Austin, Texas, which is on the same street the guy who runs Adventures in Crime & Space science fiction bookstore lives. (In fact, I've occasionally gone over there to pick up some books.)

    This is where I would cue up "It's a Small World After All," were it not for the fact that Disney would sue me if I did so...

    --
    Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)

    http://www.lawrenceperson.com/

  40. Death March doesn't sound as glamorous ... by HealYourChurchWebSit · · Score: 1

    Cheez-Wiz, this paper doesn't sound anywhere as glamorous as those 'Lincoln Tech" ads on late night television promising me millions of dollars and pretty women. Foo!

    Actually, it is interesting to see he starts out with debugging -- how many of us have seen wanna-be programmers come and go when the project hits the dreaded maintenance cycle. Provided of course they can make it through the Yourdon-esque death-march.

    --
    --- have you healed your church website?
  41. Maybe a bit broad? by melonman · · Score: 1

    Just downloaded it, only skimmed the contents so far, but he seems to be trying to cover a load of stuff that isn't directly related to programming, and, in addition, is highly context-specific. For example, do all programmers have a team for which they have any responsibility? Do they all get involved in the quoting process? I wonder whether a couple of pages on how to negotiate a contract is worse than nothing at all...

    --
    Virtually serving coffee
    1. Re:Maybe a bit broad? by RobertLRead · · Score: 1

      Good points...it is of course very broad, and bound to fail in some ways because of that, but I had hoped it might be useful to someone anyway. As some others have pointed out I have inadvertently written mostly from a corporate-team point of view; perhaps I can improve that.

    2. Re:Maybe a bit broad? by technomom · · Score: 2, Funny

      I'm sorry, but even I (a female programmer) had to snicker at your Subject line given the abundance of the female pronoun in this article.

      Did you pun intentionally?

      JoAnn

    3. Re:Maybe a bit broad? by melonman · · Score: 1

      :-)

      Sadly not. To be honest, I can't believe how excited everyone is getting about the female pronouns. The man has an academic background, and such stylistic quirks have been the norm in many fields at least since I was at university 15 years ago. Personally, I'm with Strunk and White on this one, and stick to male pronouns (and in French, my working language, there is no option anyway), but I hardly notice (s)he or alternating he/she anymore. It certainly annoys me a lot less than Terry Pratchet style main clause impaired sentences!

      Anyway, as far as I can see, the world's first programmer was allegedly a woman, and the real weaker sex has been trying to catch up ever since...

      --
      Virtually serving coffee
    4. Re:Maybe a bit broad? by technomom · · Score: 1

      Well, this "bit broad" liked your comment anyway and is considering changing her handle to "abitbroad" :-)

      JoAnn

    5. Re:Maybe a bit broad? by Anonymous Coward · · Score: 0

      My recommendation would be to NOT lose any of what you have regarding playing nice with the other children, playing nice with the morons in management, and other useful corporate-life skills-for-nerds, but to add material about the difference between activities performed solo and as part of a team.

      After all, most of us DO have to play nice with the other children to get a raise - and the ones who don't often end up the first ones dropped when the economy sours.

  42. I''m sorry but a lot of this is common sense by Emperor+Shaddam+IV · · Score: 1, Insightful

    I saw the section on debugging and much of it is common sense. Unit testing is common sense. Personal Skills??? When did programmers get those?? Most good programmers figure all this out on their own. I'm afraid that most of the people reading this, will never be good programmers, because they lacked the initative to figure out most of this by themselves. I've been programming almost 20 years. Most of this stuff I figured out on my own when I started programming.
    Good programmers don't need to be told how to program.
    Bad programmers are always bad no matter how much they are taught or how much they read.
    90% of programmers are bad. 9% are pretty good. And 1% are incredible.

    I'm afaid most of the people that have to read this are lousy programmers or "script kiddies" anyway that won't be helped by it.

    1. Re:I''m sorry but a lot of this is common sense by Anonymous Coward · · Score: 0

      You are an idiot!

    2. Re:I''m sorry but a lot of this is common sense by RobertLRead · · Score: 1

      Yes, it is a lot of common sense. I think its at least theoretically possible to make something useful by summarizing common sense; for example, a lot of people describe XP as just a lot of common sense. I too have been programming for 20 years, and I can't disagree with your Good/Bad and 90%/9%/1% breakdown. But I've learned a lot in 20 years, even in just the last 4, and I still have a lot more to learn. If I can improve the percentage by a thousandth for 10 people, I'll be very happy.

    3. Re:I''m sorry but a lot of this is common sense by ibullard · · Score: 3, Insightful

      How elitist of you.

      Good programmers aren't born that way, they learn to be good programmers. Most "bad" programmers can be taught to be good programmers and those that teach them how are usually "incredible."

      From your attitude I'd guess you're a bad programmer because you think most of your co-workers are bad (can't be that you're bad, everyone else sucks). Since you don't need to be told how to program (you already know how and learned everything by yourself), I bet you don't listen to other people well so you're communication skills are lacking.

      Some people may be hopeless when it comes to being a good programmer, but 90% implies to me that they aren't the problem (but you may be). 5-15% sounds a little more reasonable (and my experience).

      I used to work with someone who talked like you and that person was the worst co-worker I ever had to deal with.

    4. Re:I''m sorry but a lot of this is common sense by avandesande · · Score: 4, Insightful

      Personal Skills are more important than most programmers think. With personal skills,a programmer is able to chat with marketing and managers to figure out what projects THEY should be put on, which helps build their skills and keep the job interesting. Personal skills gives the programmer the ability to influence managers to get the good projects. Personal skills will also promote a programmer in the eyes of of management, an equivelent programmer that doesn't communicate with management will be more quickly forgotten when raises are given out.
      Don't forget, the squeeky wheel gets the grease.

      --
      love is just extroverted narcissism
    5. Re:I''m sorry but a lot of this is common sense by Anonymous Coward · · Score: 0
      How elitist of you.


      Yes, and you are just a jealous, wannabe programmer. It is equally painful to work with your type as well.

    6. Re:I''m sorry but a lot of this is common sense by Neumann · · Score: 1

      100% of all programmers think they are in the 1% who are incredible

    7. Re:I''m sorry but a lot of this is common sense by Emperor+Shaddam+IV · · Score: 1

      Thats not what I was saying. What I'm saying is that in this particular write-up, most of the info was common sense. Of course I learned a lot from others over the years. I didn't say I was a good programmer. I just said that most programmers aren't that good. If you don't believe me, look at the state of most software today. Look at how many simple bugs get repeated in software packages over and over again. Maybe the 90% rule doesn't apply at your company, but that just means you work at a good company. Like one example, when I was on a team of 5 at a large company, every other member of the team, some people with supposed 5 years of C experience, have trouble with memory leaks and misuse pointers in EVERY program they write. Another company I worked at, most of the programmers only new maintenance. They couldn't even write a program from scrach. Good programming is learned, BUT there is essential logic and problem solving skills required.

    8. Re:I''m sorry but a lot of this is common sense by Emperor+Shaddam+IV · · Score: 1

      I agree, but you don't learn these from reading about them in a paper. You learn them from life experience.

    9. Re:I''m sorry but a lot of this is common sense by ibullard · · Score: 2, Interesting

      Unfortunately, common sense needs to be taught because it's not as common as people like to think.

      I've found in many cases the blame of bad programmers is on two sets of shoulders:

      - Management for not hiring enough senior programmers to teach junior ones and for not allowing time to teach junior programmers.

      - Senior programmers for not wanting to teach junior programmers because it'll slow them down or they should figure it out for themselves.

      I have no control over the first and I try not to be part of the second. From your comments it sounded like you were part of the second problem, I'm sorry if I offended you and that's not the case.

    10. Re:I''m sorry but a lot of this is common sense by Anonymous Coward · · Score: 0

      Personal skills are extremely useful when talking to
      the security nazi's who have to vet your code/system.

      If you have security people, they usually have a large about of input into what gets shove out the door.

  43. Re:School, instructions, study... none of the abov by Anonymous Coward · · Score: 0

    Yes! I completely agree with you! For those of you not lucky enough to be born programmers just think... You can always become a teacher or professor :)

  44. Ironic place for political correctness by Pac · · Score: 1, Interesting

    Some quotes from the first few paragraphs:
    "I confine myself to problems that a programmer is very likely to have to face in her work."
    "Even if she is perfect, she is surrounded by..."

    Considering that the female to male ratio in this business is something close to 1 to 100 and that some of us can still work many years in the field without ever meeting a female programmer, I found that somewhat amusing. But I guess it gets boring pretty quick, reading he talk about a generic "she" no one will ever meet...

    1. Re:Ironic place for political correctness by ProlificSage · · Score: 2, Insightful

      I have to agree. Why can't people just accept that in English the pronoun "he" is used for both male and undetermined gender. Instead, the author uses "she" as a pronoun, which, in normal, non-PC usage, refers only to females. It annoys me to the point of distraction. At the very least, he could have used "he or she" or, if that would add too much to book length, "s/he" might have been a more acceptable alternative. Personally, I avoid buying books where the author is obviously trying to be PC just for book sales, especially in a male-dominated industry.

      --
      Real software engineers regret the existence of COBOL, FORTRAN and BASIC.
    2. Re:Ironic place for political correctness by Anonymous Coward · · Score: 0

      I'm a senior in a C.S. Department, and the male female ratio is about 8:1. It's far from 1:1 but it's closer than it used to be.

    3. Re:Ironic place for political correctness by RobertLRead · · Score: 1

      ProlificSage, the book is free.

    4. Re:Ironic place for political correctness by ProlificSage · · Score: 1
      ProlificSage, the book is free.

      Yes, it is. My statement was a general one, not one particular to this book.

      --
      Real software engineers regret the existence of COBOL, FORTRAN and BASIC.
  45. Lies, damn lies, and schedule estimation by Anonymous Coward · · Score: 0
    In a team environment, you should try to have the people who will do the work do the estimate, and you should try to have team-wide consensus on estimates. People vary widely in skill, experience, preparedness, and confidence. Calamity strikes if a strong programmer estimates for herself and then weak programmers are held to this estimate. The act of having the whole team agree on a line-by-line basis to the estimate clarifies the team understanding, as well as allowing the opportunity for tactical reassignment of resources (for instance, shifting burden away from weaker team members to stronger.)

    Time estimation must be blind. Everyone should be working the estimates privately, and the estimates should be aggregated in such a manner that the source of each part of the estimate can never be uncovered. The group pressure to meet schedule is obvious to all concerned. Being the one who said the schedule is too agressive marks you as not being a team player, the "nail that sticks out". In the era of mass firings (er, "right-sizing") employees know the risk of being the department heretic. They learn to keep their opinions to themselves, lest they be the next one purged.

  46. Uhm by Garen · · Score: 2, Funny

    "... programmer does not live in an ideal world. Even if she is perfect, she is sur-
    rounded by and must interact with code written by major software companies,
    organizations like GNU, and her colleagues."

    Yeah, right. Next.

    1. Re:Uhm by Anonymous Coward · · Score: 0

      And what program did you use to type this stupid comment? And it runs over an operating system, right?

  47. performance and quality of code by KIngo · · Score: 4, Informative
    I thinks his comments on dealing with performance problems are especially helpful, even for experienced programmers. Most decent programmers know how to debug, but few programmers excel in tackling performance problems. I've found that profiling is a very fruitful activity even if there are no obvious performance problems, because it provides tremendous insight into the runtime behavior of your applications. Things are often very different from what you would guess intuitively.

    If you happen to work with Java, there are quite a few good commercial profilers around that are really easy to setup and use (such as JProfiler or Optimizeit). Try working with one of these for some time and observe how your way of programming changes for the better. Most importantly, you learn not to pre-emptively "improve" performance - one of the deadliest sins of programming which is responsible for a lot of bad and unreadable code.

    1. Re:performance and quality of code by Anonymous Coward · · Score: 0

      Why would you profile a Java application?

      If you coded it in Java, its performance will suck. That's a given. The best you might hope for is to make its performance marginally tolerable as opposed to downright unbearable.

      Really -- if performance is critical, you have
      no business coding in Java.

  48. How to become... by FosterKanig · · Score: 1

    First you gotta get a cool name like Compu-global-hyper-mega-net,
    Then wait for Bill Gates to "buy you out"

  49. How to *really* become a programmer... by T-Kir · · Score: 4, Insightful

    ...Is to use this site as your programming bible :-P

    It is a *must* read for any budding or experienced programmer! (You might split your sides from laughing too much).

    --
    Are you local? There's nothing for you here!
  50. The journey of a thousand miles... by EvilTwinSkippy · · Score: 4, Insightful
    The journey of a thousand miles begins with a step.

    I agree with the poster above, but I would like to add a twist. I have found that few successful programs are successful at simply programming. To be truely successful, you must be good at learning to program.

    It doesn't matter how much you can do or have done. The market for programmers will always be in untested areas doing the impossible, or at least the highly improbable.

    In the end, your actual training and experience is bunk, unless it used as the basis for learning more. The truely gifted programmer does not build static project. He or she builds a tome of routines and knowledge that are the foundations for code used decades later.

    Meditate on this, Grasshopper

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
    1. Re:The journey of a thousand miles... by ackthpt · · Score: 3, Insightful
      I agree with the poster above, but I would like to add a twist. I have found that few successful programs are successful at simply programming. To be truely successful, you must be good at learning to program.

      Agreed, yet...

      n the end, your actual training and experience is bunk, unless it used as the basis for learning more. The truely gifted programmer does not build static project. He or she builds a tome of routines and knowledge that are the foundations for code used decades later.

      I'll differ here. I once felt it was a good idea to build a library of routines. However, the flow and product of the routines is more important than actual code. Better still is the experience of writing the same program a thousand times. The experienced programmer/analyst hears someone describe a need and is already assembling it in their mind. Visualizing the manifestation of the concept is key, writing code is just manual labor. What's the saying? Success is 10% inspiration, 90% perspiration? Well, the 10% is what they're really paying you for.

      --

      A feeling of having made the same mistake before: Deja Foobar
    2. Re:The journey of a thousand miles... by Anonymous Coward · · Score: 0

      Sorry, but these are the musings of a poet, not a programmer. A teacher, not a doer. A spectator, not a participant. In other words, all balls, no cock.

    3. Re:The journey of a thousand miles... by vbweenie · · Score: 1

      I love the fact that there is always more to learn. In the past year I've learnt more than at the start of the year I even imagined there was to learn. If this coming year is likely to be the same, then welcome to it.

      The one feeling I've had all the time during my short (two year) career so far as a programmer is a feeling of profound dissatisfaction with the way I'm doing whatever I'm doing at the moment. How can a year of being dissatisfied be a fulfilling one? The answer is that next time around, next spin of the wheel, I know I will try to do it better, and I am already beginning to learn what "better" means.

      Right now I'm building a business objects layer for a client-server application, and confronting for the first time in practice the issues involved in mapping an "object model" made up of classes and contracts to a relational database. It's a fascinating and difficult area - grandiose schemas like EJB attest to the complexity of the problem domain. What I build today has to work reliably and hang together sensibly, and if it does that then everyone I work with and for will be satisfied. But the process of learning how to do it will affect the way I tackle the next problem, and the one after.

      I believe that learning to be a good programmer means having this dual perspective: doing what you have to do today, as best you can, so that you deliver what your bosses are paying you to deliver, and at the same time seeing it as a stepping stone, something where just dumbly applying what you know already will result not only in inferior code but also in inferior understanding.

      --
      Experience is a hard school, but fools will learn no other.
    4. Re:The journey of a thousand miles... by pi_rules · · Score: 1

      Better still is the experience of writing the same program a thousand times.

      Oi! I wish more programmers thought that way. I nabbed a little tidbit from Ars Digita once (right from Philip Greenspan ) I beleive. The tidbit was something along the lines of you haven't really got a handle on how to solve a programming problem until you've already done it 10 times. I just blinked in amazement, thinking that was alot (was on my 1st real job)... but now I really see how that holds true.

      What's more important than knowing HOW to do it after the first 10 times though is knowing that if you've only done it 2-3 times you probalby haven't got the problem domain really down yet. Rather, alwasys assume there's a better way to do it until you've actually exhausted all other possibilities.

    5. Re:The journey of a thousand miles... by ackthpt · · Score: 1
      What's more important than knowing HOW to do it after the first 10 times though is knowing that if you've only done it 2-3 times you probalby haven't got the problem domain really down yet. Rather, alwasys assume there's a better way to do it until you've actually exhausted all other possibilities.

      That, and after doing it several times you recognize certain techniques, which can be done differently, more efficiently or with an eye toward compatibility.

      I once recoded a college test scoring system, in DEC RSTS Basic (using virtual arrays: Open "x.tmp" as file 1 : dim #1, X.ptr(32767)). Next I recoded it for new hardware, in PL/1 (of all languages on the PR1ME, it handled large buffers better than Pascal and Fortran, though required static arrays to the nth position, ugh!), lastly I wrote it in C (the best language and easiest implementation.) In three versions, in three operating systems, and three languages, the process performed the identical task, capitalizing on essential features of each language critical to the product. I could write it again and again in the same language, and still identify better ways to do it. (Though I was very happy with the c version as it was rock solid and very fast for 600+ 160 question tests, statistical analysis and all :)

      --

      A feeling of having made the same mistake before: Deja Foobar
  51. Re:Don't Forget School ... by Anonymous Coward · · Score: 1, Insightful

    Wrong. If you want to get into computers and don't know where to start, don't go to college/university. You'll end up wasting major bucks on four years, 75% of which you'll never use.

    Start with either computer classes at a local community college (save big $$) or a technical school for computers or engineering.

    Four year public college will teach you a bit about computer theory and algorithms, but not much else useful in the real world. I know, I went. And for that little piece of paper, you have to wade through countless hours of "well rounded courses" like child psycology, Ethiopian woman's studies and pottery.

    I'd hire someone with a technical or vocational degree and two years real world experience over someone fresh out of a four year liberal arts school.

  52. "How to be a programmer"? by Order · · Score: 1

    I'd much prefer a "Why be a programmer".

    --

    I am a genius; therefore, you suck.
  53. Isn't it ironic, don't you think? by ggruschow · · Score: 5, Insightful

    I like this quote from the document:

    "Life is too short to write crap nobody will read. If you write crap, nobody will read it."

    As I read through the comments here, it's apparent that virtually none of the posters clicked on the link much less read the document, and a good 90% of them didn't even read past the posting title.

    Anyway, the article touches on good points, but it's very clear where the author has personal experience with something and where he doesn't. Some of those times he starts to sound like the books he recommends (all excellent recommendations). Other times (e.g. 4.1. How To Stay Motivated), he simply states something that would be good, but doesn't describe how it should be done.

    He recommends "Succinctness is Power" by Paul Graham. Given the document's spottiness, he probably should've gone alnog those lines instead. Written down a little ditty about why you should read the material, and then his list of books and articles to read on how to be a programmer.

    If half of the programmers I've known had read his recommended list, I'd have a hell of a lot more trouble staying far enough ahead to have time to review articles and post on slashdot.

  54. Chop the tree down! by czth · · Score: 2, Interesting

    It looks fairly sensible, but the main problem is that (1) good programmers know these things and (2) bad programmers usually can't or won't learn. This makes the audience pretty narrow, i.e., inexperienced programmers with decent raw skills.

    And this bit made me laugh (2.5):

    What do you do when you start to run out of low-hanging fruit? Well, you can reach higher, or chop the tree down.

    It just seems like a funny metaphor (picture it in your head, chopping down the tree is sort of overkill just to get more fruit :), although I understand what he's getting at.

    czth

  55. *Don't* be a programmer! by Anonymous Coward · · Score: 1, Insightful

    When I teach intro-level university CS courses the first thing I tell students is to forget everything they know about "programming" and spend the semester learning to be a problem solver. "Programming" seems to imply throwing syntax at a problem, and experience shows that the typical programmer just keeps throwing more syntax at a problem until no more bugs are visible. If we're ever going to get IT out of the mess it's in, we're going to have to encourage higher-order thinking than to "program".

    1. Re:*Don't* be a programmer! by russellh · · Score: 1

      Well, well, well. I agree sort of... but ideally a programmer starts much younger than university age. IMHO, by the time intellectual learning has overtaken sensory learning, it's in many cases too late to be a great programmer, or great software designer (whichever term is better) I don't think most of us solve problems by being logical intellectual problem solvers; I would say that our intuition built up from experience is most critical. It is the foundation on which we can use logic. Thus, quantity, quantity, quantity - especially when your mind is young and free to experiment without fear.

      --
      must... stay... awake...
  56. Addition things one needs to know... by aggressivepedestrian · · Score: 0, Redundant


    Rule number 1: do not put PDF on your website

  57. How to Be a Useless Desktop Tile Programmer by Booie+Paog · · Score: 0


    first...write microblogger.

    then, complain about something.
    then, post to slashdot as if you have some brains, which you don't.
    then, act like calling people "fags" is the most fun EVER.
    then pretend like you have something better to do than boost your tiny ego.
    then complain that no one is listening to you. (aw.......poor baby)

    then that's it!!! you're a famous fucking jackass!!! like MEEEEE!!!! whooopeeee!



    Bowie J. Poag
    Project Founder and Head Jackass, PROPAGANDA Desktop Enhancement Dweeby Useless Background Tiles

  58. No, accurate assesment... by Anonymous Coward · · Score: 0

    With these 4 easy steps, you too can be one of the last people to be laid by your employer!

    Mere typo, or Freudian slip?

    No, just an accurate assesment of the workplace - if no-one but you can understand your code then you'll be one of the last to get f**ked over by your company.

  59. Re:Don't Forget School ... by ragnar · · Score: 1

    I'm not disagreeing with you, but the author of the paper is a PhD, so I suspect he values a college education.

    --
    -- Solaris Central - http://w
  60. MOD THIS UP! by Anonymous Coward · · Score: 0

    Right on. Been there, rewritten that.

  61. Optimise for Source Code Legibility by DG · · Score: 5, Insightful

    I've been coding in an enterprise environment for quite some time now, and I have one rule that is cast in gold:

    Always optimise source code for legibility above all else. Never trade legibility for performance unless you have no other choice, and then document your cleverness in the code so that those who follow behind you can keep up.

    Here's why:

    When you first write a system, it will spend its first few months of life in a very intensive quality control feedback loop. Bugs are found and very quickly exterminated. The code is still fresh in your mind and you're "in the zone".

    But as the system stabilises, there is less and less reason to go back to the code, so that freshness wears off. After a little while, other priorities will take over and the internal model of the code will fade away.

    But there's still bugs in there - there always is. But any bug that makes it past the first few months is non-obvious, intermittant, rare, and so on (thus, harder to find)

    When one finally surfaces, _somebody_ is going to have to fix it. Sometimes it will be you, and you will appreciate code legibilty when you have to dust off source that has laid untouched for years. Not only does it increase the probability that you'll be able to actually find the bug, it cuts down on the time needed to fix it.

    There's nothing like being the guy who finds and fixes bugs within seconds of them being pointed out to enhance your reputation.

    But more often than not, it will be some other poor sap who gets saddled with your code and a deadline to get it fixed - and the guy who draws the short straw is normally not the biggest brain in the shop. There is no gratitude like the gratitude from someone forced to dive into somebody else's code, and who subsequently discovers that you have gone out of your way to make it easier for them to understand.

    This is _also_ a reputation enhancer. "That code was so well written that not only did it take no time at all to track down the bug, but I also learned a couple of new techniques in the process!"

    The true guru is a TEACHER.

    Oh, and ALWAYS check the return code from every system call and provide appropriate error trapping. That's good too.

    DG

    --
    Want to learn about race cars? Read my Book
    1. Re:Optimise for Source Code Legibility by avandesande · · Score: 1

      My classic argument with other Java programmers are the ones that insist on using the StringBuffer class instead of just appending strings together in the code (jsp). They are all worried about the performance of 1ms lost on cocantanating strings together, while the server is sitting around waiting for a 30 ms database query to complete. The result is needlessly hard to read and edit code, with no noticable performance advantage. This is a situation with a intranet application that would have at most 4 or 5 users at one time.

      --
      love is just extroverted narcissism
    2. Re:Optimise for Source Code Legibility by smallstepforman · · Score: 2, Informative

      What you're talking about is Refactoring - please read the book from Martin Fowler, it will open your eyes.

      --
      Revolution = Evolution
    3. Re:Optimise for Source Code Legibility by inerte · · Score: 1

      Summarized: Use Python ;)

    4. Re:Optimise for Source Code Legibility by Merk · · Score: 1

      Uh... forced indentation does not a legible program make. I, for one, find the syntax for object orientation in python pretty ugly.

      But while on the subject of indentation, how about this one. Do one of the below, preferably #1

      1. don't use tabs. ever
      2. don't ever mix tabs and spaces
      3. explicitly declare the size of the tabs used in every file

      If you want to get rid of tabs, check out Jamie Zawinski's page.

    5. Re:Optimise for Source Code Legibility by Anonymous Coward · · Score: 0

      Depends on the situation. A few months ago I rewrote a function in one of the library routines we use to replace String with StringBuffer. It reduced the time spent in the entire library by a factor of 20. Building a 2MB string 20 bytes at a time with + simply takes a long time. Of course, if your application is already as fast as it needs to be, why bother with optimization at all?

    6. Re:Optimise for Source Code Legibility by gaj · · Score: 1
      If there is no performance hit, I agree with you. Certainly, unless there is a significant amount of concatination, it should be written with String "+" first. Only if testing shows a performance issue and profiling shows that it is the String concatination.

      A few months ago, I achieved a performance improvement on the order of 2x-3x just by eliminating needless String concat. I only made the changes because our app was bogging down quite badly under certain conditions. Profiling showed that farking huge numbers of Strings were being instantiated because of String concatinations in a section of code that, under said conditions, was run many times. Between the String creation, char array copying and garbage collection, the cycles were few and far between to get anything else done. After cleaning up the two worst sections of code, the app was consistantly responsive and, as an added bonus, total heap size was smaller. That wasn't the first time, either.

      Moral of the story: Knuth was right. But that doesn't mean that optimization is never usefull.

  62. One big thing... by dasmegabyte · · Score: 4, Insightful

    Be prepared to be wrong.

    Be prepared to be proven stupid, to go in the wrong direction and have to forget it, to bust your ass for weeks only to discover you're doing it the dumb way.

    Be prepared to take criticism at this point, to learn the right way and actually practice it, to laugh at yourself and to not gloat over your fellows when they make the same mistakes. After all, the next time you do something dumb, they're the onces who will be pointing it out.

    These are skills that will get you by in any field, but in programming they'll save your ass.

    --
    Hey freaks: now you're ju
    1. Re:One big thing... by betis70 · · Score: 5, Insightful

      One thing I have learned is to not invest a lot of prideful ownership in a particular design decision I make. When reviewed by the team, it invariably gets modified somewhat, sometimes outright rejected. Taking ownership of a subproject (in my case) is one thing, but you have to be malleable enough to "give them what they want". Otherwise you end up beating your head against a wall.

      Oh and lose any aversion to eat crow is also a good idea. At some point you will pronounce "There is no way I made that mistake" only to see your log-in in the RCS/CVS log.

      --
      I forget...are we at war with Eurasia or East Asia?
    2. Re:One big thing... by droleary · · Score: 4, Funny

      Be prepared to be wrong.

      Ah, now you've gone and reminded me of my favorite interview moment. The manager sat smugly behind the desk and asked me the age old "What do you consider your greatest strength?" to which I promptly replied "I like to be wrong."

      The look of horror on his face spoke volumes, both of what he no doubt thought of me, and of exactly why that wasn't the kind of company I'd want to work for. I couldn't get out the door fast enough, and he couldn't wait to see me go. So I highly suggest doing the "brimming over with wrongability" thing right off the bat. :-)

    3. Re:One big thing... by dasmegabyte · · Score: 1

      My current company sent a questionnaire asking what the toughest part of my job was. I had to admit it was a time when I spent two months developing an application that I couldn't make work, and having to walk into a department head's office and tell her that it was not only broken, but that it was my fault.

      The interviewer (who turned out to be an incredibly interesting woman, curse this ring, my precioussss) spent most of the follow up convincing me to take initiative and ask for exactly what I wanted. I didn't get it, exactly, but I have been very satisfied so far that the company understands that good software takes above all other things time, planning, and room to fail. But of course, they have the luxury of being in a market where you get payed WELL before you delvier anything, and nobody grouses if you don't at all (government, nuff said)

      --
      Hey freaks: now you're ju
  63. Re:Get a computer... by pyrrho · · Score: 1

    offtopic!!!??

    no, this is the best way.

    --

    -pyrrho

  64. Engineers & engineers by Knacklappen · · Score: 4, Interesting

    4 years ago, I (Mechanical Engineer, major in Design Engineering) was involved in a bigger software project: Building a modular simulation system for vehicles, based on a database and a Multi-body code with output to Excel and lots of fancy stuff in between to make it all work. Since the customers and users were the people from our Design Dept, i.e. Engineers, I asumed that they would have thought through all the specs and that we basically just had to start.
    Big mistake! Being good and great Design Engineers in the mechanical and electrical domain, regarding software they were as clueless as any Marketing Drone. Whenever we tried to extract specifications, all we got was "make it work like that old APL code we have, but better and more modern and let is calculate/simulate more correct results". Aaaarrrrggggghhh...
    Unnecessarily to mention, that only very few actually knew how the old system worked and under what assumptions it was built.
    Well, we boxed our way through and today I am the only person in the company that has the total insight (the other 2 left). Unfortunately, we were never given time to properly document the system (of course the code itself is quite well documented but there is more to do than just that). In my naïvité I thought that the Design Dept with their fixation on drawings and Supplier Specs and Purchase Reservations and Engineering Change Notices should understand the value of proper documentation...
    A reflection I can now make: Hiring us Design Engineers to make the work instead of professional Software Engineers was probably the only way for the company to get the job done within reasonable time & budget. Non-existent specs, poorly understood assumptions for certain calculations - what a nightmare for any professional software developer!

    --


    Excellence: Moderate (mostly affected by comments on your karma)
    1. Re:Engineers & engineers by AndroidCat · · Score: 1
      Non-existent specs, poorly understood assumptions for certain calculations - what a nightmare for any professional software developer!

      Welcome to the world of software development. There have been some projects that I've worked on that weren't like that, but they've been rare.

      --
      One line blog. I hear that they're called Twitters now.
    2. Re: Engineers & engineers by varjag · · Score: 1

      Non-existent specs, poorly understood assumptions for certain calculations - what a nightmare for any professional software developer!

      Yes, we have these nightmares routinely. As the time passes you get used to that, and learn to extract and document as much domain knowledge and requirements of customers as possible.

      --
      Lisp is the Tengwar of programming languages.
  65. Spelling by The+Apostrophe+Guy · · Score: 0
    Dammit, I make a trolling account for bitching about typos, and then this story comes along! :)

    I'd love to just print this out and give it to my boss, because once you've gotten over the typos it's an effective piece of writing.

    But when it contains paragraphs like this:

    The solitary program[er] who loves his work can use the best language for the task. Mosting programmers have very little control of the language they will use. [snip] In other cased the very real benefit of unity among the team....

    I ge the feeling that the author thought that the spell checker did the same job as proof reading. In actual fact they do two different jobs; spell checking corrects spelling mistakes, proof reading ensures it makes sense.

    1. Re:Spelling by DuBois · · Score: 1
      Either there is a pointer in that graph that points to the wrong node, or my the algorithm that adds up the variables in that graph doesn't work.
      Another unproofread sentence from page 6.
      --
      The IPCC has purposely engineered a massive scientific fraud.
  66. Re:Don't Forget School ... by Anonymous Coward · · Score: 0

    Yes, the author has a better chance of becoming a dull professor than a programmer of any significance....

  67. Re:School, instructions, study... none of the abov by KalvinB · · Score: 2, Informative

    Like any profession you're born with some inate abilities to do things which schooling can then direct and improve towards being skills you can use to make a living.

    Some people are born to be athletic but without the proper training those people will never reach their full potential and make a living out of it.

    Ben

  68. Gender Specific by Parsa · · Score: 0, Redundant

    Are there any male coders out there? Or is this HowTo aimed at women?

    --
    Abiit, excessit, evasit, erupit.
  69. Re:School, instructions, study... none of the abov by Cipster · · Score: 2, Funny

    It's true! My cousin was finger painting in BASIC when he was a baby. When he turned three he hacked his Etch a Schetch to run Linux. He's seven now and he is writing his own OS! ;)

  70. Anonymous Coward... by ackthpt · · Score: 4, Funny
    debugging can fix logic errors, but not design flaws.

    Such sagely wisdom

    With anonymity you write

    Knowing and unknown.

    --

    A feeling of having made the same mistake before: Deja Foobar
    1. Re:Anonymous Coward... by Anonymous Coward · · Score: 0

      such sagely wisdom
      without seven syllables
      unknowingly known

  71. SHE?? by brrrrrrt · · Score: 1, Troll

    I stopped reading as soon as I realised he was consistently referring to the programmer as "she"... YECH!

  72. Necromancers? by SlightlyMadman · · Score: 1

    > That would be because programmers have become the Wizards and Necromancers of our modern society. They have inherited the fantanstic ability to do the impossible. They also have a tendency to go a little loopy, and hallucinate too.

    Lisa: Dad, we did something very bad!
    Homer: Did you wreck the car?
    Bart: No.
    Homer: Did you raise the dead?
    Lisa: Yes.
    Homer: But the car's okay?
    Bart & Lisa: Uh-huh.
    Homer: All right then.

    --

    Money I owe, money-iy-ay
    1. Re:Necromancers? by EvilTwinSkippy · · Score: 1

      Yeah, Necromancers. How many times has someone come to you asking to revivce as dead machine or restore a delete file?

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
  73. Re:School, instructions, study... none of the abov by Anonymous Coward · · Score: 0

    Maybe, buy you are assuming that one becomes a programmer to "make a living out of it". Sure school is necessary for that. But a programmer reaching his full potential may not have anything to do with proper training and money.

  74. I sure he missed by dubbayu_d_40 · · Score: 1

    as well as everyone here... treat your peers with respect. A real programmer has nothing to prove.

  75. change she/her/hers to he/him/his by Kris+Warkentin · · Score: 1, Interesting

    Using the masculine sense for the indefinite article is correct. I don't know about you but all that 'she must do this with her whatever' stuff is quite distracting.

    --

    In Soviet Russia, hot grits put YOU down THEIR pants.
    1. Re:change she/her/hers to he/him/his by RobertLRead · · Score: 1

      I'm sorry so many people find it jarring; I may change it. I had planned on using alternation eventually.

    2. Re:change she/her/hers to he/him/his by Gannoc · · Score: 0
      I'm sorry so many people find it jarring; I may change it. I had planned on using alternation eventually.

      Thank god. Trying to think of programming and boobs at the same time is making my head hurt.

    3. Re:change she/her/hers to he/him/his by grlcdr2 · · Score: 1

      Shock!! What if there is a programmer out there that posseses both breasts and the abilitiy to code? Something maybe wrong with nature and the universe as we know it?

    4. Re:change she/her/hers to he/him/his by belroth · · Score: 1
      Female programmers do exist but they are a depressingly small minority, and the number appears to be dropping iirc something I read recently on the bbc website (I know, but I'm too lazy right know to 'google' for the link).
      So apart from the jarring use of she when he is the proper usage in English, she is also statistically likely to be incorrect.

      Just as dog is used for the canine race (i.e. both dog and bitch) man is used for the human race (i.e. man and woman).If you really want to avoid he then one is acceptable (also oneself etc.).

      --
      I hereby inform you that I have NOT been required to provide any decryption keys.
    5. Re:change she/her/hers to he/him/his by Anonymous Coward · · Score: 0

      depends on how many cheetos that software developer has been eating lately. Some of them get some pretty big breasts.

  76. STRUTS by avandesande · · Score: 0, Offtopic

    Abstraction is key to programming. One should choose how abstract one needs
    to be carefully. Beginning programmers in their enthusiasm often create more
    abstraction than is really useful. One sign of this is if you create classes that
    don't really contain any code and don't really do anything except serve to ab-
    stract something.


    You think they are talking about struts?

    --
    love is just extroverted narcissism
  77. answer by jbischof · · Score: 0

    write code.

  78. Unconscious Sexism by meehawl · · Score: 1

    Most programmers are not female. Using "She" makes the work sound peculiar and unprofessional. It implies a anti-sexist bent which has nothing to do with the subject matter.

    Methinks this non-lady doth protest too much. Why should it be "weird" to use she? Is it any mistake that when we think of great doings of the past we think of HIStory and hot HERstory? As a society we are gradually unburdening ourselves from centuries of ingrained racism and classism that permeated our unconsciousnesses. It seems fitting to me that we make strenuous efforts to also rid ourselves of unconscious sexism. I think this poster needs to think about why using the female pronoun makes him feel uneasy.

    --

    Da Blog
    1. Re:Unconscious Sexism by Anonymous Coward · · Score: 0

      Well I don't know about you, but when I think of great doings of the past, it is usually a hot HERstory

    2. Re:Unconscious Sexism by Lodragandraoidh · · Score: 1

      When a man writes a paper, I expect to see he, him, his.
      When a woman writes a paper, I expect to see her, her, hers.
      If the gender is unknown, I expect to see it or its.

      When either of those conditions are not met, it sounds conflicted - and takes away from the smooth reading of the passages. The mind skips on these items, and stops to consider why the choice of gender - looking for some hidden context that is not there.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    3. Re:Unconscious Sexism by ohboy-sleep · · Score: 1

      Why should it be "weird" to use she?

      For no other reason than the way that the phrase hits the ear. Stating that it sounds weird doesn't indicate that the person is some sexist pig.

      Is it any mistake that when we think of great doings of the past we think of HIStory and hot HERstory?

      It is a mistake, because herstory is not a word. Neither is him-icane nor shero.

    4. Re:Unconscious Sexism by grammar+fascist · · Score: 2, Interesting

      The grammar fascist agrees.

      The basic problem is that there is no unique pronoun to reference objects of undetermined or unknown gender. Any book setting forth rules of grammar will tell you to use the word "he" in those cases. Nearly every work ever written uses this convention, which is why it sounds "weird."

      It's training: when we see the word "she," every one of us is used to that pronoun referencing a person with a known gender. Similarly, depending on context, we're used to "he" referencing a person of known or unknown gender. So rather than suggesting a mild anti-sexist stance (which the author is no doubt doing, since he's male), it's doing the following two no-nos:

      1) Bringing images of a known-gendered person to mind when the person's gender is in fact not known
      2) Causing almost all of us - who are used to the "he" convention - to get distracted trying to rembember that the "she" could also be a "he"

      The moral arguments can proceed forever, but those two facts remain. One thing to remember is that they are not necessarily logical when considered in a vacuum, or in the context of gender equality. Consider it in the context of training (from a very, very early age - from when the average human starts understanding words), and it makes sense.

      Maybe one of these days we'll introduce a word like "hesh" and it'll all go out the window - after a generation or two.

      --
      I got my Linux laptop at System76.
    5. Re:Unconscious Sexism by marauder · · Score: 1
      You should know (and you probably do and were just repeating a silly epigram) that the word history has a Latin origin and the fact that it begins with a three-letter sequence his is completely non-significant. You strike me as the kind of person who might also complain about manual or manicure because they begin with man.

      Back on topic, I'm all for the use of she as a generic pronoun. I switch between them as often as possible without being confusing to the reader. I dropped the whole ``but he has become the de-facto generic pronoun'' line of argument when I realised that it has the same kind of effect as pirate being used as a term for copyright infringers.

    6. Re:Unconscious Sexism by RobertLRead · · Score: 2, Informative

      One of the two reasons I used "she" is to try to make the reader's visualization of the person being talked about a little more vivid.

    7. Re:Unconscious Sexism by Strigiform · · Score: 1

      Where gender is unknown, it's not unusual to see "we" (in some formal texts) or "their" (despite complaints from some, there is historical precedent for this use of the word - Lord Macaulay used it in some of his writings this way, IIRC).

  79. Re:School, instructions, study... none of the abov by loknor · · Score: 2, Informative

    haha nice troll. :)

    I have yet to meet someone that could not be taught to program. And if they are teachable they can become skilled if they are motivated. Sorry to have to be the one to tell you this, but your skills aren't 1337. I could teach anyone with algebra skills to program.

    --

    me karma am bad
  80. How to be a Programmer and get laid by zootread · · Score: 5, Insightful

    you end up having very little contact with the softer gender

    I don't know where everyone gets this from. Maybe this was somewhat true 10-20 years ago, but not now. Not all programmers are socially inept dorks with no lives outside of computers. Or am I the exception to the rule? I tell women I'm a software developer and it *increases* my chances with them (I suppose they think $$$). Hey, and I've been a geek most of my life--and I still spend much of my free time on computers. Women like a guy who can fix a computer. Trust me. Being somewhat successful in your profession helps also, so reading "How to get a Programmer" will indirectly help you get chicks.

    If you're a geek, you *can* have luck with the ladies; especially if you've got a job and some cash to spend. Shave that beard, get a decent haircut. Buy some nice clothes. Go out, drink a coupla beers, and just talk to women. There are ladies out there for everyone. Trust me, they are just waiting for you.

    --
    Zoot!
    1. Re:How to be a Programmer and get laid by andrew_0812 · · Score: 5, Funny

      Stage 1 -- Denial. How sad. Hmm, it might be possible to write a program to converse with a female. That would be a fun date...

    2. Re:How to be a Programmer and get laid by zootread · · Score: 4, Funny

      Hmm, it might be possible to write a program to converse with a female.

      Yeah, its called instant messenger. Then if things get serious, you can move on to video-conferencing. ;)

      --
      Zoot!
    3. Re:How to be a Programmer and get laid by Anonym0us+Cow+Herd · · Score: 5, Funny

      If you're a geek, you *can* have luck with the ladies; especially if you've got a job and some cash to spend. Shave that beard, get a decent haircut. Buy some nice clothes. Go out, drink a coupla beers, and just talk to women.

      You forgot one: take a shower.


      I swear, if this gets modded as Insightful or Informative, I'm gonna worry...

      --
      The price of freedom is eternal litigation.
    4. Re:How to be a Programmer and get laid by grlcdr2 · · Score: 1

      Question then I pose is...... What do you to if the "geek/programmer" is of the softer gender. Ya know, it goes both ways. How is a smart redheaded girl going to find a decent guy that is not intimidated by the softer sex?

    5. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      Well, staying indoors and posting on slashdot is sure not going to help you any! You'll have to do the same as us guys - go out and talk to people.

      You don't happen to live near Amsterdam do you? ;-)

    6. Re:How to be a Programmer and get laid by darxyde · · Score: 1

      How is a smart redheaded girl going to find a decent guy that is not intimidated by the softer sex?

      I don't think girl geeks find it too hard to find men. Everybody knows a coders ultimate lay is one that can code assembler. Intimidation is not a factor in such a situation... they turn into slimey drooling 'yes-m'am' lusers.

      The real problem emerges, however, when said female attempts to involve herself with a male that isn't a nerd - ie : one who doesn't smell and dress curiously (in a stupid coke-stained penguin shirt), harvest unsavoury facial hair with small crusty pizza attachments, who likes sport, doesn't think they're the 13373zt h4x0r on the planet, fails to recognise the practicality of 'all-niters' and has some semblance of social skill outside of IRC.

      Romanes eunt domus! People called romanes they go to the house!!??

      --
      Hey relax fella, you need a rest, guy.
    7. Re:How to be a Programmer and get laid by grlcdr2 · · Score: 1

      For your knowledge, I do go out occasionally but, what I find usually deteres me from any further exploration. As for me staying indoors and posting, I am currently at my office, trying to take a break FROM compiling code for a while. BTW: If I told you were I lived you would not even believe me :0)

    8. Re:How to be a Programmer and get laid by Satoshi+Harada · · Score: 2, Funny

      Yeah, its called instant messenger.

      Woah, woah, take it slowly. Start with e-mail :)

      --
      Error: .Sig fault
    9. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 1, Funny
      I don't think girl geeks find it too hard to find men. Everybody knows a coders ultimate lay is one that can code assembler. Intimidation is not a factor in such a situation... they turn into slimey drooling 'yes-m'am' lusers.

      Really? News to me....I thought all those ASM type chicks had to be rolled in flour to kill the smell and find the wet-spot.

    10. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      I think his point was the workplace, when employed as a programmer, is predominately male. As are computer science courses. 95% we're talking.

      He wasn't doubting your prowess with the ladies, fret not.

    11. Re:How to be a Programmer and get laid by aulendil · · Score: 1

      WHAT! Romanes eunt domus!

      Should read "romani ite domum", now write that a hundred times before sunrise or I'll cut your balls of!

      Hell Caesar (duck and run for cover)

    12. Re:How to be a Programmer and get laid by kigrwik · · Score: 2, Funny

      Damn.

      Only here in /. would this be modded 'Insightful' ! :)

      --
      -- don't discount flying pigs until you have good air defense
    13. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      Well, I was going to say something about that as well.. and I did later in this thread.

      Plenty of good female coders out there, and the number will probably increase. A lot of the female coders I know did not initially pursue it as a career (not CS or CEN majors). Though, yeah, I agree with the ratio.

      zootread (posted AC so I don't flood this thread with my comments)

    14. Re:How to be a Programmer and get laid by orthogonal · · Score: 3, Funny

      >>> How is a smart redheaded girl going to find a decent guy that is not intimidated by the softer sex?

      >> You don't happen to live near Amsterdam do you? ;-)

      > BTW: If I told you were I lived you would not even believe me :0)


      I know where the cute red-headed geek girl who needs a date lives!

      Where?

      Right next to the Easter Bunny. Two doors down from the Tooth-Fairy. On Peter Pan's block in Never Never Land.

    15. Re:How to be a Programmer and get laid by aoteoroa · · Score: 1

      Assuming that you really are a girl coder I'll try to give you some insight into picking up guys.

      We are really easy to pick up, just give us the slightest bit of encouragement and we will do the rest.

      Go to a bar and look for a guy that fits your description of "decent". When you spot him smile at him.

      If I saw a red-head at a bar with a spark of intelligence in her eyes I would be interested and ask her to dance. Many of the girls at bars look shallow so you'll have a selling "point of significant difference". Maybe your chosen guy is a little shy so walk close to him at the bar. Smile at him again and let him know you're interested. If he still doesn't make the move then ask him to dance.

      If it works great. If not go back to phase 1. Look for another decent guy.

      ps. Ever been to Clinton, BC?

    16. Re:How to be a Programmer and get laid by zeath · · Score: 1

      I met my present girlfriend a year and a half ago on a MUSH I worked on (coding and administrative duties). Is that close enough?

    17. Re:How to be a Programmer and get laid by Bongalot · · Score: 1

      You are going about getting laid the wrong way, What you have to do is do the menial assignment( unless your a super nerd and did the assignment ahead of time and you can change variable names) wait until the last few hours then let'em have it. Both the girl then the assignment.

      --
      l33t...
    18. Re:How to be a Programmer and get laid by fccf · · Score: 1

      "Women like a guy who can fix a computer."

      Naah. I asked a fellow sysadmin if this is true, and she said "No."

    19. Re:How to be a Programmer and get laid by Isofarro · · Score: 3, Funny
      How is a smart redheaded girl going to find a decent guy that is not intimidated by the softer sex?


      Start off by reading the relevant RFC.
    20. Re:How to be a Programmer and get laid by Isofarro · · Score: 1
      (Sorry, couldn't resist...)
      What do you to if the "geek/programmer" is of the softer gender. Ya know, it goes both ways. How is a smart redheaded girl going to find a decent guy that is not intimidated by the softer sex?


      Well, most things come with a very well documented applications interface. So read up on the right method calls, paying special attention to the return messages and values. After a while a couple can be progressing to something more natural - like instantiating new objects.
    21. Re:How to be a Programmer and get laid by jez9999 · · Score: 1

      I don't know where everyone gets this from.

      I know where I get it from. Personal fucking experience. See, along with an adeptness with computers often comes an ineptness to socialize. Not always, but often. It's not that the very fact that people like me like computers that puts women off. It's that we're just plain shit at socializing :-) I can't approach a woman, even when drunk. I dunno, my brain is screwed up. The inhibitions just will not be beaten.

      So people like you should STFU about it being so easy to get laid!!

    22. Re:How to be a Programmer and get laid by BlueMonk · · Score: 1

      It's not about luck, it's about *contact*. About 5% of the programmers I know are female, and about 10% of the programmers I work with are about my age. So that's what, 0.5% of the people I work with being female and my age? Unfortunately, I don't work with 200 people so that doesn't get up to a whole person there ;)

    23. Re:How to be a Programmer and get laid by hesiod · · Score: 1

      I know where I get it from. Life experience. I'm not exactly socially inept (maybe slightly retarded, but not inept). It's hard enough to get a girl to talk to me at all, let alone to tell them I'm a SysAdmin. They always ask what that is, I explain, and they say "Oh" and move on to the next subject because they don't care. I don't even spend much time on computers... I go out almost every day (I'm not a gamehead any more, I got bored of all the same old crap).

      I'm well-groomed and well-dressed and well-ignored. In that, I am pissed off at your assertion that there are ladies for everyone, because I must not be part of that "everyone" group. I've been waiting, waiting, and actively searching, to get nothing but a quick conversation. Not that I blame you or anyone else for this, but some people are just destined to be alone. Hopefully I'm not one of them, but my situation is getting bleaker.

    24. Re:How to be a Programmer and get laid by zootread · · Score: 1

      So people like you should STFU about it being so easy to get laid!!

      I did NOT say it was easy. It just takes effort, and persistant effort (not necessarilly with the same girl, though). And most of us will get rejected a lot. But its a matter of statistics, the more you get rejected, the closer you are to meeting someone who won't turn you down.

      When I was in high school, I had a crush on this really beautiful girl, and I couldn't even manage to say two words to her. Got rejected plenty over and over again all my life. But once you realize you've got nothing to lose it gets much easier.

      --
      Zoot!
    25. Re:How to be a Programmer and get laid by zootread · · Score: 1

      Yeah contact is the most important part.. but work is not the place to meet people, especially not women. I go to work to work and not much else. I work in a small company, too, and not any hotties around here. My whole point, is go out on the weekends. Meet girls, get their numbers, and call them up and set up a date. It's not easy, but try enough and it'll eventually work.

      True, those people who work for large companies on huge campuses have it a bit easier. And yes, those people who don't have time to go out on the weekends have it more difficult. But I've seen the most busy, socially inept, hardcore geeks find a girl. All you gotta do is do it.

      --
      Zoot!
    26. Re:How to be a Programmer and get laid by jcknox · · Score: 1


      Gee. I was about to check on starting a Krispy Kreme franchise in Italy.

    27. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      You're just a loser. Don't worry about, the world needs to have at least a few complete losers to prop up the economy through purchasing doritos and jolt.

    28. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      truth comes out. Hate to break it to you, but that's not what most of us would consider "contact." You're evidence of the problem, not the solution. Geeks used to play D&D to escape to a fantasy world. Now they join porn sites. It's much the same thing, except your hand cramps slower rolling 20 sided dice.

    29. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      act dumb.

      I'm not trying to sound chauvanist. Once he's tamed a bit you can start making sudden moves and debugging his algorithms. I was going to say something about flashing headlights in case he gets startled, but I said I'm not trying to sound...

    30. Re:How to be a Programmer and get laid by neolazer · · Score: 1

      Maybe try a different approach. Trust me, getting a girl to like you is not as hard as you think it is once you just relax. Just KNOW they want you, not because your a programmer or anything like that, but because your a fun interesting guy that can make them smile. From there its golden. Show a genuine interest in them, work up guts and ask a few out. If they only say yes 1 in 20 times, well ask 20 girls out.

    31. Re:How to be a Programmer and get laid by Anonymous Coward · · Score: 0

      I hate to break it to Slashdot here, but girls who are even slightly attractive do not exist to please and seek out obese sloths (who just have intelligence going for them ... if that!) and enter into relationships with them. Most will be disgusted even if you take initiative to approach them and will leave. Get off your ass, work out, get outside and get a life. Otherwise, have fun getting off on porn for the rest of your miserable life if you expect any contact with good looking girls. Not to troll, just stating facts. I am excluding the one-in-a-million type girls here as well, but expect to find them right after winning the lottery twice in a row. Anybody who replies talking about how I am wrong and how they found the love of their life can either shut up because their significant other is more than two hundred and fifty pounds and smells like ape; or if I am completely off base, can live their life in happiness :P. Good day, Slashdot. -AC scared of losing karma for flaming the fat brigade with an actual account.

  81. Maintaining your own code by Skapare · · Score: 1

    Too often there is no opportunity to maintain your own code. I find I'm sitting around idle most of the time if all I'm doing is maintaining my code. So of course if I were working in the programming field (I'm not, although I have done some programming projects on the job before) the project manager would end up moving me around to keep me busy (and challenged). Where's my old code? It's running in that other department or that other company. If I do end up doing any code maintenance or changes, it's someone else's POS.

    --
    now we need to go OSS in diesel cars
    1. Re:Maintaining your own code by axxackall · · Score: 2, Insightful
      At least do you usually create unit tests, diagnostic API, comments in the source code and clear documents?

      If you think about other people who maintain your code and you make their job easier - then good maintenance of your code begins from you.

      But if you think that you are too busy for that then it's a big (and growing) chance that your code is useless and another programmer will dcide: "it's easier to re-write it".

      See the thread about JUnit for example.

      --

      Less is more !
    2. Re:Maintaining your own code by OneEyedApe · · Score: 1
      At least do you usually create unit tests, diagnostic API, comments in the source code and clear documents?

      Or you could write clear, simple, efficient, and elegant code whose every meaning is immediately obvious.

      Of course the least complex answer is usually the most difficult.

      --
      Life sucks, but death doesn't put out at all....
      --Thomas J. Kopp
  82. "Good usage"? It's not a question of style. by Anonymous Coward · · Score: 0

    It is straight-ahead, grammatically incorrect to use a pronoun other than "he" when one refers to a gender-nonspecific third person. "He" in that sense does not even indicate male-ness by default, although unfortunately it is the same 2-letter combination we use for the male pronoun.

    It's unfortunate that geeks so often exercise subjective opinions about what makes acceptable English, but will go nuts over marginal overuse of the C preprocessor...

    You, neckbeard! Mod me down some more for my insensitivity to the social agenda of your sandal-wearing, military- and sports-hating claque.

  83. Re:Don't Forget School ... by Anonymous Coward · · Score: 0

    >>I'd hire someone with a technical or vocational degree and two years real world experience over someone fresh out of a four year liberal arts school.

    More than likely that person will have the interpersonal skills of a Gila Monster and all the critical thinking skills of an American Idol poseur.

  84. I have uncovered your secret! by mekkab · · Score: 1

    This is a pretty good troll, my man.
    But its still a troll.

    The only thing you attempt to refute, is HIS OWN glossary! I can say "to beeblbrox: act like a king while involved in shenannigans" and be correct. Why? Becuase its MY terminology I'm explaining.

    The rest of your wide sweeping generalizations are baseless.

    Grade: D+

    Please have your parents sign this assessment and return to me.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:I have uncovered your secret! by OldCrasher · · Score: 2, Interesting

      Probably true, but I felt as I read the thing that the author did not understand that making the sort of gross generalizations they were making they were falling into the very same same holes that all other pontificators on the subject fall into. The understanding of how we work becomes a very personal thing, it is brash move for the author to suggest that THIS IS HOW IT IS.
      Hence the Twaddle, myth, etc.

      Hope I didn't disturb anyones sleep.

      Better yet,

      BELGIUM! MAN! BELGIUM!

    2. Re:I have uncovered your secret! by mekkab · · Score: 1

      Its for freshman year CS majors, or anyone who takes an INTRO to programming class. I found a lot of the generalizations useful from that perspective.

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    3. Re:I have uncovered your secret! by OldCrasher · · Score: 1

      I, too, was once a first year CS student (back when the 8080 was a cool processor, meaning it was good, not that the latest PIV runs hotter in comparison, if you know what I mean %-) ) Fortunately, I had done summer work and a year out before doing my University course, so I knew that what this person has written about was simply not true. Now, that was my experience. Your experience and everyone elses experience WILL vary. That is life.

      To tell a 1st yr CS, or any other student, that the way to get a pay raise is X, or that you don't document if you have written code correctly, is simply asking for trouble from all the people that will later in their lives start to send you letter bombs having learned a different truth.

      As for the Glossary, there are words there that the individual has incorrectly used, several of the words have alternative real meanings. I grant several of the words are just inventions, but even those have real equivalents in meaning - showing a complete lack of lexicon or research on the part of the author.

    4. Re:I have uncovered your secret! by Anonymous Coward · · Score: 0

      The 8080 was never a cool processor.

  85. I would add... by mikey504 · · Score: 1

    that focusing on producing legible code can reduce the number of bugs you have to begin with.

    I have seen programmers (myself included) be a "victim of their own cleverness" too many times. These days I spend a lot of time thinking about how to make the overall structure of my code clear and directed for a long time before I start pounding the keyboard. It has made all the difference in the world, both in the quality of my code and my stress level as deadlines loom.

    I have become a big fan of simplicity and clarity.

    The funny thing is, my pursuit of these things has taught me more about unravelling needless complexity than just "hacking away until it does what I want" ever did.

    1. Re:I would add... by Anonymous Coward · · Score: 0

      Actually, programming style was shown to be largely uncorrelated with error rates in a bunch of studies in the mid-80's. What's really helping you out is:

      "I spend a lot of time thinking"

      which is a great thing to do no matter what the code you write looks like.

  86. umm the best containers are written in Java by Anonymous Coward · · Score: 0

    I'm not sure if your smacking the language are smacking EJBs or are just ignorant about Java.

  87. I agree completely by Celandro · · Score: 4, Interesting

    The biggest clue that the writer has no clue about computer programming is his statement that 50 hour weeks are typical and 60 hour weeks are his limit. If you are writing code for more than about 2 hours a day, you are writing bad code that is horrible and buggy. I always try to explain what I do to people as very complicated math homework. Noone can actually do math homework for 60 hours a week. It is far too draining.

    The majority of most programmers days at work is spent processing ideas in the back of their heads while they do other things (like post on Slashdot). The 2 typical tasks in programming, adding a new small feature to an existing program and debugging a bug are about 100 lines of code and 2 lines of code respectively. These would take in theory half an hour and 2 minutes respectively. But as the old story goes, its knowing which $1 component to replace in the $1,000,000 machine that costs the $10,000. So it is in programming.

    Knowing how to integrate the new features and bug fixes without horribly ruining the existing design is the mark of a good programmer. Actually coding the fix or feature once it has been designed (on paper or in your head) is trivial. Overworking yourself leads to bad design and more bugs, which take even more of your overworked self to fix. This escalating behavior leads to burnout as well as the human brain can not spend that much time working on difficult problems every single day.

    Anyhow, now that my brain has figured out how it wants to implement the new feature Im working on, while writing this comment, its back to work to toss out my 100 lines of well designed code. If my writing seems confusing or poorly structured, its because my brain was working on code design, not paragragh design.

    1. Re:I agree completely by Anonymous Coward · · Score: 0
      If you are writing code for more than about 2 hours a day, you are writing bad code that is horrible and buggy.


      Another pompous holier-than-thou slashdotter....

      Some programming tasks are more complicated than others. I've done programming for various companies where I've written code for half the day. Not because it's sloppy, but because it was some simple code.

      Just because the programming YOU do is that complicated and draining, doesn't mean everyone else's job is the same way. There's a lot of simple code that needs written!
    2. Re:I agree completely by ckaminski · · Score: 1

      Without wanting to harm the parent posters sensibilities or reputation, the post itself has the earmark of coming from someone who's never written a system from the ground up before. I've counted many a time when I've written 10,000 lines of code in a day just to get a workable system going (doing fly-by-wire system design). In many of those cases I have rewritten perhaps 5000 of those lines down to 1000 or so, as the system got more mature and robust and we could address more time to reliability as opposed to feature implementation.

      In my particular case, there were a dozen programmers who couldn't do ANYTHING until I got my job done. Bug fixing does NOT a programmer make.

    3. Re:I agree completely by Anonymous Coward · · Score: 0

      no one can dig ditches for 60 hours a week, it is too draining, but it happens. Not that I think many people code for 60 hours a week. I probly put in (on a good day) 2 coding, 2 thinking, 2 learning, and 2 killing time to let the eureka seep back in.

  88. Reveal yourself, simpleton by Anonymous Coward · · Score: 0


    Come on, taking shots at the prez as AC? Amateur.

  89. Other things you're supposed to be by doc_traig · · Score: 1


    If you're a programmer (well, IT geek in general, really), you're also:

    Supposed to hate watching football (US-style) and love to tell everyone about it,

    Attack people on message boards in a way you never would dare to in person,

    Let yourself go physically and emotionally so you're nothing but a soft shell that likes to poke holes in anything anyone says, and

    Lean way to the left.

    So, get going, it seems you have some work to do.

    --
    So long, michael. Don't let the door hit you...
    1. Re:Other things you're supposed to be by Wheaty18 · · Score: 2, Funny
      Attack people on message boards in a way you never would dare to in person,

      Worst. Comment. Ever.
  90. Regarding pronouns (sorta OT) by IIRCAFAIKIANAL · · Score: 1

    A lot of people are claiming that using "he" is gender neutral and/or the correct pronoun to use when the gender is indeterminate.

    However, my girlfriend (who has an English degree and a diploma in technical writing, although she's more of the researcher type) once told me that the way she was *always* taught was that the only correct way to refer to a gender indeterminate human in a document is to say "he or she" (and it has nothing to do with being PC either - she's about as PC as a smoking monkey in a leather thong). Also, IIRC, using past tense or "it" is incorrect and even s/he is frowned upon. All her style guides and textbooks back her up on this. A lot of the technical writers in her classes argued against this point but the instructors always backed her up.

    Does anyone actually have a source on "he" being a gender neutral pronoun? What major style guide is this rule published in? (This isn't flamebait, I am honestly curious).

    --
    Robots are everywhere, and they eat old people's medicine for fuel.
    1. Re:Regarding pronouns (sorta OT) by Satoshi+Harada · · Score: 1

      Check out Meriam-Webster.
      Second definition of 'he':

      2 -- used in a generic sense or when the sex of the person is unspecified <he that hath ears to hear, let him hear -- Matthew 11:15 (Authorized Version)> <one should do the best he can>

      --
      Error: .Sig fault
  91. Woah there buddy. 8D by Anonymous Coward · · Score: 0

    #include <stdio.h>

    int main (int argc, char *argv[])
    {
    printf("\n"):
    printf("To first learn howto write software,\n");
    printf("you must first recognize the syntax \n");
    printf("of the programming language chosen \n");
    printf("%s its standard %s operate\n", "and how", "IO functions");
    printf("The reason is to %s", "find the tao.\n");
    return(0);
    }

  92. Re:Don't Forget School ... by Rat+Tank · · Score: 1

    Prediction: Thousands of angry followups to this post by people who taught themselves to write C, consider themselves to be 'hackers', and think untypesafe code is 'l33t', saying something along the lines of; "People who teach themselves are just as good as people who have had a proper education".
    Fortunately, most sensible employers ignore this kind of attitude... ;)

  93. Feedback by Ninja+Programmer · · Score: 4, Interesting

    Here's some feedback.

    Re: Divide and Conquer debugging approach ...

    Knowing *where* to split requires less skill than he suggests. While binary-splitting is useful from an algorithmic point of view, in the arena of debugging, there is no reason to be binary. I will typically split the problem many times (8 or more) at each step. This observes the fact that usually the cost of splitting the code is much less than re-running the scenario to test to see which split it makes it past, or fails to run properly.

    Neglecting examples in the debugging section is bad. In particular miss-synchronization of multi-threaded applications is an example that should be shown.

    Re: 2.6 How to Optimize Loops

    Ok, this is a really short list, and it misses the important principle of "caching", and some of the suggestions are wrong, or typically inconsequential.

    1. Sometimes floating point can actually be faster than integer code. This is especially true if the code can be completely pipelined. In particular trying to change from floating point to fixed point algorithms in modern CPUs may actually *decrease* performance. The details of this requires a lot more discussion.

    2. Inlining will be ineffective if the function routine is too large, or if the procedure prologue/epilogue cost is either low or unremovable.

    3. Fold constants together -- you should be more explicit about what you mean here. Certainly sub-expression elimination is a common technique that usually works well (but compilers are pretty good at finding that for you) but in some CPUs like the x86, immediate absolute value operands are practically cost-free. Perhaps he means "hoist" whenever possible? That certain does help.

    4. As to moving I/O into a buffer ... there is even more you can do. Move I/O handling to a seperate thread (more on this in my next comment.)

    5. Try not to divide and avoiding expensive casts requires much more detail. The best thing to say here is the understanding these costs requires understanding the underlying machine code that results from these operations. (Floating point division can actually be relatively cheap in the right context, and differentiating between cheap and expensive casts can sometimes be difficult, and require context as well.)

    6. Using pointers rather than indicies -- x86's have sophisticated addressing modes wherein there is commonly no difference between these two alternatives.

    Re: 2.7 How to Deal with I/O Expense

    An important principle to apply is to realize the parallelism via multithreading can substantially assist these problems. For example if some IO is non-negotiable, or non-predictable, then at least it can be blocked, or streamed in a seperate thread. The reasoning behind this is that modern operating systems can yield (i.e., block) program control (i.e., your execution resources) from a slow to respond thread to the faster ones. So you can overlap all your algorithmic work with the delays while waiting for the data.

    Re: 2.8 How to Manage Memory

    Something should be said about caching versus non-caching. First of all, point out the cached memory can be tens to hundreds of times faster than main memory (in modern CPUs.) Variables on your local stack, and globals that are commonly used in your inner loops, will tend to be cached. However array streaming will tend to de-cache your data.

    Running through your streamed data in multiple passes is especially bad, as it will require reading your data into the cache multiple times.

    Again much more can be said here.

    Re: 2.9 How to Deal with Intermitten Bugs

    This is an important topic. Its because it represents the hardest debugging problem. We all run into it sooner or later. Even if it is a hard subject to tackle, it has to be expanded on. Giving examples here are invaluable. You have to show that as hard as it is, it is possible to ferret out such bugs.

    Re: 2.10 How to Learn Design Skills.

    The biggest thing to explain here, I think, is to just explain that all code can and should have seperate documentation corresponding to it, that is written *before* the actual code is written.

    Re: 3.6 How to Work with Poor Code.

    Remember that people may be more open, or willing to learn than you think. If you decide you have to recode something for someone, it may be beneficial to be explicit about this and show them the results. But for such a thing to be effective, and to get over any potential ego problems, you have to make sure the rewrite is absolutely, clearly, obviously better (it should be shorter and more easily readable.) Your goal should be to make sure the programmer that is the target of the rewrite, considers the results to be a better approach that is worth emulating themselves. (Give a man a fish ...)

    Section 3.7 needs to be tied to the last paragraph of section 2.1. Scribbling over some "pristene" (sp?) code is irrelevant if you can easily recover it (which you can with good source control.)

    Re: 3.8 Unit testing -- my experience with this is a bit depressing. Unit tests always start out being a good thing, but over time, they are an extreme PITA to maintain. Unit testing is a good thing for what I consider *totally generic modules*. The reason being that truly generic modules do not evolve over time, while other code invariably does.

    Unit testing can only be effective if there in an enforced automated testing mechanism. I.e., a failure causes an automatic and non-negotiable rejection of code checked into the tree. I have found it remarkably difficult to convince people that such a policy is worthwhile. (SGI used to use such a mechanism, and, of course, it worked wonderfully for them.)

    Section 3.9 and 2.4 Belong together. How is 3.9 a team skill?

    Re: 5.2 How to Manage Third Party Software Risks

    In my experience, this is trivial -- rely on track record. Its more indicative than anything else. If the software has already shipped and has a history, then there is no problem. If it has not yet shipped (and you are hoping that it will in time for you to use it), then you are going to get version 1.0 software at best and more likely you are providing a beta test environment for the third party developer. Just put yourself in the shoes of the third party developer. In what way will they maximize the take away from their involvement in a relationship to sell you software? Remember business relationships can tend to dominate technical ones.

    Re: 5.4 How to Communicate the Right Amount

    In here you write: It costs its duration multiplied by the number of participants. Please underline and boldface this. It amazes me how managers don't understand this.

    Re: 6.1 How to Tradeoff Quality Against Development Time

    Remember that a good *design* will be resilient against poor code implementations. If good interfaces and abstractions exist throughout the code, then the eventual rewrites will be far more painless. If its hard to write clear code that is hard to fix, consider what it is wrong with the core design that is causing this.

    Re: 6.2 How to Manage Software System Dependence

    The harps back to a concept I referred to above as *totally generic modules*. These are just libraries that provide useful functionality and can take input without making any non-trivial assumptions, and contains no dependencies whatsoever.

    An example of this is the C run time library. A good example that will help make this clear is that the C run time library is able to provide a quicksort implementation without knowing anything about the underlying array it is sorting.

    State-less, assumption-free, zero-dependency code is very valuable. Its maintenance and development will be finite in cost, while its utility is on-going. Imagine the cost of rewriting the C library every time you use it.

    Impressing this upon programmers will help them recognize the value of reducing dependencies.

    Re: 7.2 How to Utilize Embedded Languages

    Ony option you seem to have avoided is the possibility of embedding pre-canned languages. The real problem with embedding a language is that useful language design is harder than you might think at first. People's aversion to using/learning it is bad enough, what happens when they uncover a flaw in your language that is fatal to its design? People who design real languages put a lot of work in them, that cannot be trivialized. Whipping up an embedded language is unlikely to yield the most stellar results.

    That said, there are currently numerous options for embedded other pre-canned languages. Python, Lua and Ruby come to mind. Before going off on some adventure of trying to design your own language, consider whether or not you are going to be able to do a better job than what you could do by embedding one of these languages. From my personal experience, I can tell you that Lua can be embedded in a few hours, and has probably the smallest learning curve of any language in existence.

    1. Re:Feedback by RobertLRead · · Score: 1

      Thank you for this excellent comment. I will try to incorporate this into the next version.

  94. How to be a Professional Programmer: by rufusdufus · · Score: 3, Funny

    How to be a Professional Programmer:
    Demand to get paid for your work.

  95. Re:Get a computer... by Anonymous Coward · · Score: 0

    Why is this offtopic? I think it is good advice.

  96. How to be a programmer... by kenthorvath · · Score: 4, Funny

    One day a Novice came to the Master.
    Master, he said, How is it that I may become a Writer of Programs?.
    The Master looked solemnly at the Novice.
    Have you in your possession a Compiler of Source Code? the Master asked.
    No, replied the Novice. The Master sent the Novice on a quest to the Store of Software.

    Many hours later the Novice returned.
    Master, he said, How is it that I may become a Writer of Programs?.
    The Master looked solemnly at the Novice.
    Have you in your possession a Compiler of Source Code? the Master asked.
    Yes, replied the Novice.
    The Master frowned at the Novice.
    You have a Compiler of Source. What now can prevent you from becoming a Writer of Programs?.
    The Novice fidgeted nervously and presented his Compiler of Source to the Master.
    How is this used? asked the Novice.
    Have you in your possession a Manual of Operation? the Master asked.
    No, replied the Novice.
    The Master instructed the Novice as to where he could find the Manual of Operation.

    Many days later the Novice returned.
    Master, he said, How is it that I may become a Writer of Programs?.
    The Master looked solemnly at the Novice.
    Have you in your possession a Compiler of Source Code? the Master asked.
    Yes, replied the Novice.
    Have you in your possession a Manual of Operation? the Master asked.
    Yes, replied the Novice.
    The Master frowned at the Novice.
    You have a Compiler of Source, and a Manual of Operation. What now can prevent you from becoming a Writer of Programs?.

    At this the Novice fidgeted nervously and presented his Manual of Operations to the Master.
    How is this used? asked the Novice.
    The Master closed his eyes, and heaved a great sigh.
    The Master sent the Novice on a quest to the School of Elementary.

    Many years later the Novice returned.
    Master, he said, How is it that I may become a Writer of Programs?.
    The Master looked solemnly at the Novice.
    Have you in your possession a Compiler of Source Code, a Manual of Operation and an Education of Elementary? the Master asked.
    Yes, replied the Novice.
    The Master frowned at the Novice.
    What then can prevent you from becoming a Writer of Programs?.

    The Novice fidgeted nervously. He looked around but could find nothing to present to the Master.
    The Master smiled at the Novice.
    I see what problem plagues you. said the Master.
    Oh great master, please tell me. asked the Novice.

    The Master turned the Novice toward the door, and with a supportive hand on his shoulder said, Go young Novice, and Read The Fucking Manual. And so the Novice became enlightened.

  97. Giving job interviews - good advice! by FuzzyDaddy · · Score: 3, Interesting
    You should at a minimum give the candidate the equivalent of an oral ex- amination on the technical skills for two hours. With practice, you will be able to quickly cover what they know and quickly retract from what they don't know to mark out the boundary. Interviewees will respect this.

    This is right on - the jobs I've been most attracted to are the ones where they asked me the most technical questions. I'm surprised how little of this sort of questioning many people do when hiring. When I'm interviewing people, I try to put them through their paces as much as possible.

    I had one engineer help me take apart a vacuum feedthrough, clean it, and put it back together. She jumped right in and did it. I offered her a job on the spot.

    --
    It's not wasting time, I'm educating myself.
    1. Re:Giving job interviews - good advice! by CleverNickedName · · Score: 1

      A common problem with much new management is that they prefer unconventional, obscure and, above all, dramatic interview techniques to the more mundane, thorough, tried-and-tested ones.

      Such interviews tell you more about the interviewer than the interviewee.

      Unless you were hiring a vacuum-repairer, that interview was a farce.

      --


      Unfortunately, I am not Wil Wheaton
    2. Re:Giving job interviews - good advice! by FuzzyDaddy · · Score: 1
      I was hiring a process engineer for a small lab who would need a good working knowledge of the equipment she was working on, including the ability to repair it. I also needed someone who was not afraid of the equipment, and would be willing to make improvements on it.

      Her ability to jump in on a new piece of equipment and try it out and figure out how to use it, without damaging it in the process, has been a big asset for us as we have asked her to do this many times. Often there is no one that knows how to use or fix something, and we need people who can figure it out.

      If I was hiring a design engineer or a computer programmer, I certainly wouldn't have asked them to do that. The point isn't to ask something unexpected and irrelevant. The point is to actually test the relevant skills of the person, not just sit and chat with them to see if they're amiable. Amiability is crucial, of course, but so are skills.

      --
      It's not wasting time, I'm educating myself.
  98. hire.com and extrememe programming? by mcguyver · · Score: 2, Insightful

    Anyone else think it is strange that the author has an email address at hire.com and dedicated the paper to hire.com? He also cited the book Extreme Programming in the references. Those two points make me skeptical about the integrity of the paper however the paper is pretty good.

    1. Re:hire.com and extrememe programming? by RobertLRead · · Score: 3, Informative

      I just really like the people I work with. I also really like Extreme Programming, and we use it at Hire.com.

  99. Origin of Samizdat word ;-) by Anonymous Coward · · Score: 0

    JFYI,
    Samizdat
    Literally, self-publication. Russian word for the printing and circulating of literary, political, and other written manuscripts without passing them through the official censor, thus making them unauthorized and illegal. If published abroad, such publications are called tamizdat (q.v.).

    Source http://memory.loc.gov/frd/cs/soviet_union/su_glos. html

  100. From the article... by Graspee_Leemoor · · Score: 1

    "If you want an opinion or a value judgment that takes into account some
    unique circumstance, talk to an expert. For instance, if you want to know if
    it is a good idea to build a modern database management system in LISP, you
    should talk to a LISP expert and a database expert."

    Or just Ask Slashdot!

    graspee

  101. Quick question for anyone who knows by Linknoid · · Score: 1

    Should I check for the failure of malloc in C? I mean, if malloc does fail, what's the proper way to handle it? Print "Out of memory" and then exit(-1)? How is that any worse than just catching SIGSEGV and aborting the program more gracefully in that case? Could someone enlighten me?

    1. Re:Quick question for anyone who knows by hyperturbopete · · Score: 1

      short answer: always check. What you do depends on whether it's realistic to expect it to fail.

      If there's no chance of failure, the response is to exit with a message and leave it at that. That way, if it ever happens it will be an easy-to-find bug.

      Otherwise, take the time to handle error gracefully :-)

  102. How to Stay Motivated? by scharwenka · · Score: 1
    Overall an interesting read... but I'm upset by the way the author glossed section 4.1, "How to Stay Motivated."

    His advice seems to be "To stay motivated, work on things that are motivating." At the same time he admits that programmers often end up working on things that are not motivating. Thus he leaves the big question unanswered: How do we stay motivated when working on things that are not motivating?

    Anybody have any thoughts on that? Favorite tactics? A few years ago, a good response would have been "Just quit and find a new job that's more fun." That's not so appropriate these days, it seems.

    1. Re:How to Stay Motivated? by Raiford · · Score: 1
      Depending on how established you are as a programmer you can always consider consulting. A good rep allows you to pick the projects that you want. If you are on the path to establishing yourself and you find that your projects are just not setting you on fire you will have to get your motivation out of a job well-done. You may have to build a portfolio outside of your job (like you have time to do that). Either way, the motivation is going to have to come from within.

      --
      "player 4 hit player 1 with 0 stroms"
  103. Re:School, instructions, study... none of the abov by OneEyedApe · · Score: 2, Insightful
    I could teach anyone with algebra skills to program

    I, at least, would consider algebra skills to be part of the basic abilities/skills needed to be a programmer.

    --
    Life sucks, but death doesn't put out at all....
    --Thomas J. Kopp
  104. Geesh by Herkum01 · · Score: 1

    Do we need another "How to be a Computer Person book?"

    I am already a programmer, and systems technician, I don't need a book on that any more than Snoop Doggy Dog needs a book on how to be a rapper. How about a book on "How to be a CEO", now that is something that I would want.

    In the big leather CEO chair, talking to the intercom

    Me: Louise, hurry up with my Chocolate Latte, I got a business to run!

    Louise: With, or without whip cream?

    Me: What do you take me for a fool, WITH!

  105. How to be a ______ by janda · · Score: 1

    Step 1: Be sure you are doing it because you like it, not for the "money", "publicity", or something else.

    Step 2: Get hired in that field, somewhere, anywhere. You might need to get a degree of some kind, so find somebody who will help with your tuition and other costs.

    Step 3: Profit!

    --
    Karma: Food Fight (Mostly affected by Date Plate).
  106. Re:School, instructions, study... none of the abov by Rick+BigNail · · Score: 1

    Someone suggests not all people could grasp pointer/reference.

  107. Teach Yourself Programming in Ten Years by Anonymous Coward · · Score: 0
  108. Re:"Good usage"? It's a question of sexism... by LordDragonstar · · Score: 0

    It is straight-ahead, grammatically incorrect to use a pronoun other than "he" when one refers to a gender-nonspecific third person.

    Nice way to emphasize a point with "straight ahead." Unfortunately, you're wrong for a few reasons.

    1. It is arguable that "he" is the only acceptable neutral gender pronoun.

    2. It is "staight ahead" sexist. Right or wrong, it's still sexist (period, bold, underline, exclamation mark.)

    3. It's isn't "unfortunately" the same word used for the male pronoun, it was made to be that way by sexist dominant males because most people in gender neutral situations were men. Now it's changing, and the language needs to change too.

    4. Your last statement is unnecessary.

    --
    sig: There are two mistaakes in this sig.
  109. Misread PDF title... by marko123 · · Score: 1

    First look read as:
    "How to be a Short, Comprehensive and Personal Programmer"

    But I already am.

    --
    http://pcblues.com - Digits and Wood
  110. He gave man speech, and speech created thought by meehawl · · Score: 1

    For no other reason than the way that the phrase hits the ear.

    "Phrases" don't hit your ear. Amplitude- and frequency- modulated sound vibrations are detected by your ear and eventually converted into electrical impulses that are interpreted by your brain. During the initial construction nothing jars. Yet at some level, the phrase "she" is recognized within your mind and this is what you find upsetting. "grammar fascist" is right. You need to ask yourself how deeply ingrained is sexist language within our minds that some simple pronoun usage can feel deeply disturbing to us. How important you think language is to the development of people's minds depends really onyour attitude to the Sapir-Whorf Hypothesis (linguistic determinism and linguistic relativity).

    --

    Da Blog
    1. Re:He gave man speech, and speech created thought by Anonymous Coward · · Score: 0

      Bleurgh! Whorf is a little discredited these days.

    2. Re:He gave man speech, and speech created thought by ohboy-sleep · · Score: 1

      Say the following out loud: M-I-S-S-I-S-S-I-P-I
      Likely, that sounded a bit strange to your ear (btw, that's a term of language. Obviously a phrase doesn't literally hit your ear.) The reason it sounds strange is due to the fact that you expect to hear two "P"s. No malice behind that thinking. No negative sentiment towards southerners. It just sounds weird.

      The same thing occurs, but purposely, when a poet rearranges the order of words in a line or offers a play on words. It's done specifically because it grabs the reader's/listener's attention.

      Considering the different ways people can listen to something and find it linguistically jarring, you're jumping the gun if you assume anyone who finds a generic "she" to have sexist attitudes.

    3. Re:He gave man speech, and speech created thought by meehawl · · Score: 1

      Whorf is a little discredited these days.

      Ah yes, the slings and arrows and unsubstantiated mutterings of Anonymous Cowards are really refuting this hypothesis. Some substance please?

      --

      Da Blog
    4. Re:He gave man speech, and speech created thought by meehawl · · Score: 1

      The reason it sounds strange is due to the fact that you expect to hear two "P"s. No malice behind that thinking ... Considering the different ways people can listen to something and find it linguistically jarring

      You're quite right, it's about the qualia of the sensation. I am loathe to go all metaphysical, but you can derive a similar approach from using something like the Personal Construct Grid to ascertain a ladder or hierarchy of responses so that two people, who both seem to react manifestly similar to a stimulus, turn out to have quite different subconscious motivations.

      However I submit to you that playing a child's spelling game and playing with people's perceptions of gender roles are quite, quite different, and we should not expect much concordance in the psychological reaction to both, despite perhaps similar neurological responses.

      --

      Da Blog
  111. Re:You'll eat shit if you're hungry enough and... by Pinball+Wizard · · Score: 1

    Please expand on this, and try to post earlier next time. I see the makings of a really good troll here. Good start.

    --

    No, Thursday's out. How about never - is never good for you?

  112. Mod parent up by Skapare · · Score: 1

    That reply to my comment is excellent. It deserves the mods.

    --
    now we need to go OSS in diesel cars
  113. The Jag helps me. by BoomerSooner · · Score: 1

    lol, guess my wife gets pissed though when our waitress gets a $50 tip.

    Being a software developer is like winning the lottery, just a tad slower to collect the earnings.

    1. Get degree
    2. Get job/apply degree
    3. Find area of need or opportunity
    4. Start own business in field (if fail go back to #2)
    5. Profit!!!! (just starting to get there...)

  114. MOD PARENT UP by The+Panther! · · Score: 1

    While I'm not a grammar fascist, I am irritated by the uncommon usage of she in contexts where clearly the accepted use of the word 'he' applies. The worst offenders are typically baby raising books, the section where I presume the most liberal authors hang out. They literally switch pronouns every few sentences, just to see if you're paying attention. They're unfuckingreadable. I use them for kindling now.

    Technical papers should steer clear of using gender pronouns entirely, instead choosing 'the programmer' or 'the user', or avoiding them entirely. At least, that's what I've been instructed to do when writing documentation.

    --
    Any connection between your reality and mine is purely coincidental.
  115. My 2 cents by coday · · Score: 1

    Having developed for many years as a profession as well as a hobby. I manage and design more these days however. I believe that the 'HowTo' should have focused more on two things. 1) Problem solving. languages, architectures, and methodologies come and go. What remains constant are the problems. I consider myself more of a problem solver than a programmer. Programming is just the media in which we implement solutions. 2) Design. How can I put this....Bad Design = Bad Programs. It causes, bug-riddled, and potentially unmaintainalble products. The bigger the product the bigger the problems. Design allows us to think thouroughly about our problem (most of the time), which allows us to identify, potential problems and exeptions before a line of code is even written. Life is much easier this way.

  116. If you're not there its incomprehensible by mveloso · · Score: 1

    If you're not a good programmer none of that will make sense. If you are, then it's stuff you already know. Go figure, huh?

    As a programmer, the three most important things you need to be able to do are:

    debugging
    optimization
    implementation

    probably in that order. Note that there isn't much difference in the skillset needed to debug and to optimize. The basic techniques are the same, it's just the specific tools for each are a bit different. Both require that you keep the model of your thing in your head for extended periods of time, as well as the execution environment.

    Implementation is easy once you look at it from a debugging and optimization standpoint. Design becomes a bottom-up process; whether that's good or bad is subjective, but it sure does make it easier to debug when a program is written to be easy to debug and optimize :)

  117. Warning! by Anonymous Coward · · Score: 0

    When a person on slashdot identifies themselves as a member of the female gender, DO NOT BELIEVE THEM! They are really hairy old men sitting in front of their computer wearing stockings and high-heels getting off on the fact that they think that others think that they are women!

    1. Re:Warning! by aoteoroa · · Score: 1

      Believe it or not some cute girls do read slashdot. I met 3 of them last summer driving home from Clinton to Vancouver (BC Canada). While heading down the highway I spotted a car with three cute girls, and realized that I had met one of them in Clinton. I pulled over at the next rest stop (appropriatly the town's name was 'Hope') hoping they would stop. They did. These girls were cute so I naturally assumed that they knew nothing about computers and when one of them asked what I do for a living I gave them the dumbed down version: "I write software". I totally misjudged them. One of them is a CS major at a local University, and they all read and post to slashdot. So there are at least three cute girls who read slashdot. I've met them. However your odds of meeting them online are pretty slim.

    2. Re:Warning! by grlcdr2 · · Score: 1

      Thank you for the chilvary. And I thought it was dead. The last time I looked I do believe I had all the necessary equipment to be classified as a female. Just because a programmer is a girl should not matter IF she can produce good code. If not, then "she" is just a wanna be wanting the glory and recognition that society has placed on being a "information services" employee.

    3. Re:Warning! by aoteoroa · · Score: 1
      <OldBritishAccent value="fake">
      A pleasure m' Lady (SR?). Always 'appy to come to a Lady's defence. That chap tryin to warn people was uninformed. You set the record straight.
      </OldBritishAccent>

      Connor of the Clan Cameron.

  118. One thing I forgot..... by DG · · Score: 1

    90% of our codebase is perl.

    Yes Virginia, perl source CAN be written to optimise for legibility.

    DG

    --
    Want to learn about race cars? Read my Book
  119. sure that's one approach but. . .. by Anonymous Coward · · Score: 0

    I find that avoiding computer talk at all costs also works.

    A girl might might start the conversation by asking what you do but don't interpret that question as an invitation for a 1/2 hour lecture on the merits of postgres over ms sql server. Instead move the conversation back to what she does for fun. If you can't think of anything to say then say nothing at all!!

    The later technique worked for me this weekend. I was in a local pub with a couple friends. After dancing close with a cute blonde we sat down to talk and have a drink.

    The conversation lasted about 1.5 minutes. I tried desperately to think of an intersting topic to talk about but could only think of that days slashdot headlines. So instead I asked her back to dance. While dancing to some salsa music I tried the "Joey Tibbiani" approach. You know . . . .look her up and down then look her in they eyes and smile. To my surpise she asked me to kiss her?!? Naturally being a geek I fumbled the first attempt . . . but she wasn't put out and stuck around for another round. It get's better from here but I'm digressing from advice to bragging. The point is I supressed my natural urge to talk about programming, said nothing of importance, danced close and held her tight then got laid. Don't talk about programming.

    1. Re:sure that's one approach but. . .. by HyperLemur · · Score: 1

      That's kind of sad, actually. Sure, it will work in the short term, for a night or so or even for a couple of weeks. But can you refrain from talking computers for the rest of your life with a woman like that? I am not a programmer (yet) but my father was a software engineer. I married a computer scientist. I can't imagine being with a man who couldn't program. There has to be a middle way. No, I don't want to hear the gritty details of my husband's sixteen-hour debugging session (after I learn Fortran I might feel differently). But you could explain why you do what you do, what you get out of it, how what you do relates to the tech issues she might be familiar with from mainstream news sources. You could explain how things work, like wireless networking or parallel computing, or what the difference is between open-source and proprietary software. It takes practice and patience and discipline. You have to try to explain things in lay terms, but you also have to do so in a way that isn't patronizing. I kind of resent the way the author of this essay implies that programmers and nonprogrammers are inherently different. That's balderdash. We learn quickly, especially if you have faith in us.

  120. An interesting read, but just a few comments by Anonymous Coward · · Score: 0

    You should go home if you are thinking suicidal thoughts.

    Umm, are you sure that being home will help if you're suicidal? I mean really... how many people *actually* commit suicide at work?

    You should take a break or go home if you think homicidal thoughts for more than a few seconds.
    Actually, if you are a programmer and aren't planning on committing homicide at some point during the day - I'd be worried... Those damn users!

    You should send someone home if they show serious mental malfunctioning or signs of mental illness beyond mild depression.

    Oh yeah, that's gonna help them... You send them home and they think that they're getting fired... it's realllllly gonna help the depression eh?

    If you are being tempted to be dishonest or deceptive in a way that you normally are not due to fatigue, you should take a break.

    Naaaa... how else are you going to come up with those fantastic ideas to score with chicks if you're not hallucinating due to fatigue? Come on... be a REAL programmer!

    Don't use cocaine or amphetamines to combat fatigue.
    In THIS economy? Are you kidding? Maybe during the dotcom era when the employers were sharing theirs, but not now... The last thing I need is to sell the TV in order to score a line or two...

    Don't abuse caffeine.
    OK, now I know this guy abuses coke... Is he fucking kidding? I took a solem oath long ago to abuse caffeine and I plan to do it for as long as I possibly can... For me to not abuse it, I'd probably go into shock and die... Now where's that coffee...

  121. I think you've just proved a point. by crashthud · · Score: 1

    My SO used to get pissed when told "of course 'he' doesn't imply exclusively 'male'; get used to it, 'he' is inclusive and generic, why are you so sensitive?"...

  122. The Practice of Programming by z01d · · Score: 1

    i don't know, but if someone really want to read a book/article about How to be a Programmer?. i always recommend this book: The Practice of Programming, by Brian W. Kernighan and Rob Pike.

    you know what's wrong with your article? you just list a few books, and say: "go learn programming there", then you start talking about debugging, in section Beginner! what a misleading...yes, i know bug happens, we can never finish a project without debugging, but, you should not emphasize this and forgot the more important thing: Write Simplicity/Clarity/Generality code, eliminate bugs (not all, of course) at the first place.

  123. Don't Comment - Document Instead by EvlG · · Score: 2, Insightful

    To be fair, commenting code is a slippery slope.

    A little commenting can go a long way to helping someone else understand the system.

    A lot of comments can be a burden. Why?

    Nobody updates them, and lots of people don't read them. Additionally, it takes a long time to write lots of well-written comments - time that is usually better spent re-architecting the system to make it easier to understand.

    Every day I come to realize more and more that comments are, on the whole, a waste. Sure, a little comment here and there when something non-standard is going on, or unintuitive. But it is neither feasible nor necessary to comment all the code in a large system - just write better code!

    Note that this is NOT meant to say that documentation is worthless. On the contrary, in my experience, the most useful documentation is that which describes the system as a whole, the assumptionst that are made, how the subsystems interlock, etc... Those are things that are not easily gleaned from code, no matter how well written.

    Additionally, lots and lots of comments get in the way for the coder navigating the source. It can be a serious slowdown if comments are used too much.

    Don't comment, but DO document.

  124. "There's an ass for every seat"-used car salesman by lukme · · Score: 1

    I knew one programmer who didn't shower (except maybe once a year), didn't wear nice threads, was a very difficult person to deal with, and I really wished that they would have either moved his office or given him a chair with a full back to hide his plumbers butt that was stairing at you as you climbed up the stair. Ya know what, he found a wife who was just like him. To each their own.

  125. What about "understanding why you are there"? by waimate · · Score: 3, Insightful
    Something many programmers fail to understand is exactly why they are given their monthly pay cheque. It's not to write great code, or to do clever things, or to be the only one who can solve problems when they occur. It's to bring about a business benefit.

    Your employer may make widgets, or run delivery trucks, or process financial transactions, or manufacture cars. Your goal is to help in that process.

    Programmers can have a tendancy to be easily "disconnected" from the mission of employer, and can think the goal is to write some cool Java, or to make the source code library work better. Yes, that's the job at hand, but it's not why they pay you each month. They pay you to help them build cars and sell them at a profit. It's an important thing for programmers to have at least somewhere in their conciousness.

  126. If it said "Get rid of Linux!", by Anonymous Coward · · Score: 0

    it'd probably be modded as Flamebait.

  127. That isn't how to be a programme by Anonymous Coward · · Score: 0

    The author only mentions how to be a decent programmer for your employer. What I want to know is how to be a programmer; I and almost everybody else I know have followed the following steps:
    1) go to college
    2) get accepted into the CS program
    3) graduate with a very good GPA
    4) have employers tell you to piss off because you don't have experience
    5) have other employers invite you to come back after finding the fantasy, nonexistant company that hires entry level programmers
    6) have most employers just ignore your resume
    7) have non-computer employers look at your resume, see your education, compare what they are paying to the $50,000 a person could get if entry level jobs existed, and label you overqualified
    8) get accepted into grad school
    9) listen to the people who just earned their MS degrees describe steps 4, 5, and 6

    1. Re:That isn't how to be a programme by dubwai · · Score: 2, Insightful

      "The author only mentions how to be a decent programmer for your employer. What I want to know is how to be a programmer; I and almost everybody else I know have followed the following steps:" What poeple rarely consider when choosing a school is how well the school does at placing graduates. I had three offers before graduation and I didn't even start interviewing until 2 months before graduation. Of course that was then and now we have a huge glut of experienced programmers looking for work. One word of advice, though, if you are trying to get a job at a small company where everyone wears jeans and sneakers, forget it. Those companies have neither the time nor the resources to train and nuture you. Unless you graduated top of your class from MIT, you're going to have to put in your three years in cubicle hell. If you live in California, consider moving. Washington D.C., where I happen to reside has tons of job opportunities and never fear, the traffic is almost as bad (anthrax and small pox are survivable.) Last of all, get a decent suit, cut your hair, smile, be polite and humble, and read a book on interviewing for jobs. Never, ever BS in a technical interview. Good luck to you.

  128. Your obviously a ex-hardware person -- SQL(errr?) by lukme · · Score: 2, Insightful

    Who is enamored with SQL.

    You have selected a certain case where it may make sense to use SQL, however, you have missed the large picture, since it is absoultly pointless just to move some data.

    Part of the decision you need to make is where to partition the process(es). How much should you do in SQL, how much should you do in C, how much should you do in whatever and so forth.

    All of this depends on which system you are developing, who your users are, and how you are planing to administrate/upgrade. There are more reasons to use something else than SQL.

  129. Programming. by methangel · · Score: 1

    See, I like to program. In relation to the article, I don't mind team-work if my team is somewhat knowledgeable with coding as well as the problem presented. What I DON'T like is having someone added to our team simply to please the "brass."

    This lowers morale. Has anyone else felt utterly expendable even though they literally gave their life to a project?

  130. Damn! Busted! by HyperLemur · · Score: 1

    Now, where did I put that depilatory?

  131. What would you use for--- by lukme · · Score: 1

    1) distributing a UI over the web to be used within a web browser?

    2) The other reason to use java is when you bills are being paid by programming in java.

    reguardless of the reason, if you need to know why your app is running slower than it should, profile it if possible.

  132. Ok but kind of sparse in some areas by humblecoder · · Score: 2, Insightful

    In general I thought that the author's heart was in the right place, but I thought that the text needs work in some areas - especially if this article is supposed to be read by novice programmers.

    For instance, the section on Source Control boils down to "Source Control is good. I use it all the time". Why not describe what Source Control is, give arguments as to why it is useful, and give some tips on how to use it to its fullest potential.

    There are other sections that need similar fleshing out, beyond just the mere mention.

    Also, I would play with the ordering of things. It doesn't quite seem right to dive right into a detailed discussion of debugging at the beginning. I think it would be better to take on some of the more general issues first in order to ease into the technical stuff. Alternatively, you may want to split the article into two. One which discusses the "soft" issues, like working with teams, etc, and another which discusses the more meaty subjects like logging and code comments.

    Anyway, best of luck to you in your endeavors.

  133. Oh fuck off you lazy bastard by Anonymous Coward · · Score: 0

    I've had employees try this shit on me and they're out the door. If you can't work more than 2 hours a day then you're just not cut out for a programming job. You're only being a asked to work for 8 hours out a 24 hour period. I suppose you expect to be paid thousands for your 2 hours of hard labour. Do you even have a job?

  134. Comments in code by Anonymous Coward · · Score: 2, Insightful

    The article recommends against comments in code using the usual lameass excuse:

    Code and comments might get out of sync due to maintenance

    Hogwash. Try maintaining code you yourself wrote 10 years earlier and see if the egotistical horseshit that "reading the code is all you need" for documentation is as true as you think...

    On second thought, nevermind... come back and read this in 10 years after you -have- 10 years of experience!

  135. How not to make easy to read code: by Mark+(ph'x) · · Score: 1, Funny
    Been waiting for an excuse to post this ;)

    Doing some work on a object management system for games... and i think this is heading towards the worlds worst c macro :)
    #define foreach(CLASS, ITER) Item* _livITER=CLASS::All.First(); if(_livITER!=NULL) for(CLASS* ITER=(CLASS*)(_livITER->Data); _livITER!=NULL; _livITER=CLASS::All.Next(_livITER), (_livITER!=NULL?ITER=(CLASS*)(_livITER->Data):NULL ))
    hehehehhehe :) its an iterator of sorts ;)
    --
    those who control the past, control the future. those who control the present, control the past.
  136. What excactly is small enough? by IncarnationTwo · · Score: 1

    I have worked on 3 person company. And that never happened. So you must be talking about 2 person company, right?

    But in that case, who the fsck is the sales/marketting manager... Aaah, I get it. It is the sales and marketting manager of next door neighbour two person SW shop.

    Now, that sounds industrial espionage to me. And that is not nice. Did he even buy you people beers for using your code, or was it that you were wrinting free ("as in freedom") software?

    --
    In dream society, people could be given the ability to mod replies. In real life, it would be disaster.
  137. There is no holy grail guide for being programmer by master_p · · Score: 3, Insightful

    Guys, there is no holy grail guide for being a good programmer. It's all down to a person's abilities to understand the system overview as well as the local details of each subsystems and how those subsystems corellate to each other and how they affect the overall progress of the total system.

    I've seen quite a few programmers. The best ones are those types that are really interested in the programming concept, and what makes a program beautiful. Once these concepts are understood, then the programmer ceases to be interested in using the latest and greatest features of the underlying development environment and only cares to leave behind a system that works, is easy to expand and debug and easy for others to understand.

    A key point to being a good programmer is understanding why an API is bad or good and why the programming language X is better than the programming language Y for project Z. I may not be a good programmer, but I really understand why MFC sucks and why WxWindows is better and Qt the best; or why Visual Basic sucks as a programming language, C and C++ are difficult languages but the most rewarding and why Java is better for most projects(of course this is my opinion and you don't have to agree or disagree, I just mention it here as an example of the issues a programmer has to understand).

    But all these are down to personal interest and abilities rather than some guide that people can follow to become successful. I guess this is true for every profession, but it is more important in programming.

    All these have a direct impact on the social aspect of the programmer job. A programmer that cares more about programming than others may initially be more drawn to his/her computer rather than to the social interaction with his/her colleagues, but in the end that person will have a much better understanding of what is going on and be a much better candidate for a job that is higher in the company's pyramid (manager, engineer, architect).

  138. Re:"There's an ass for every seat"-used car salesm by ayjay29 · · Score: 1

    I knew one programmer who didn't shower (except maybe once a year), didn't wear nice threads, was a very difficult person to deal with, and I really wished that they would have either moved his office or given him a chair with a full back to hide his plumbers butt that was stairing at you as you climbed up the stair. Ya know what, he found a wife who was just like him. To each their own.

    Yeah, maybe owning Microsoft does have an effect on the chicks.

    --
    Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated up.
  139. Re:"There's an ass for every seat"-used car salesm by Anonymous Coward · · Score: 1, Funny

    That's no way to speak about Alan Cox.

  140. You can publish it, but... by Masik · · Score: 1

    That's quite valuable topic. You can publish it. :) But you just forgotten one thing, in order to be a programmer, a good programmer, you must be born for programming, and have a logic turn of mind. If you don't interesting in it or like it, you will never be a programmer. Even if you'll read that topic thousand of times... So, don't be mistaken in yourself and in your abilities, don't be a programmers!!! ...if you don't want it indeed.

    --
    With the best regards, Masik
  141. Change isn't bad... period by lyoz · · Score: 1

    Change isn't bad unless it is change for the sake of change.
    Isnt this a cheezy cliche. Change for the sake of change.
    Its always good to change and shuffle things around, whatever the reason is. It eliminates monotony.

    As a programmer, I think the most important thing that often works for me is change for the sake of change. U can easily be stuck with the same old techniques that u learned in college, courtesy ur teacher and colleagues. There are so many different ways to implement the same thing. You should, every now and then try to shuffle things a bit and in the process learn new, efficient metthods.

    --
    ... hee2 is stuck under the bed.
  142. What is Franklins Method of Divination? by iion_tichy · · Score: 1

    I find myself unable to decide all the time, so I would be really curious about this method. Google produced unconclusive results, though. So any hints as to the nature of the method mentioned in the book would be most welcome!

  143. Step 1 by pjdoland · · Score: 2, Funny

    Write using TeX.

    --
    -- "The reward of suffering is experience." - Aeschylus
  144. programmers have magic powers? WTF? by nickos · · Score: 1

    Eveything was fine until I got to this bit at the end. What's he talking about?

    9.10 How to Deal with Organizational Chaos

    There are often times of great organizational chaos. These are unsettling to everyone, but perhaps a little less unsettling to the programmer whose personal self-esteem is founded in her capacity rather than in her position. Organizational chaos is a great opportunity for programmers to exercise their magic power. I've saved this for last because it is a deep tribal secret. If you are not a programmer, please stop reading now.

    Engineers have the power to create and sustain.

    Non-engineers can order people around but in a typical software company can create nothing on their own and only have the power that engineers grant them. They can create and sustain nothing without engineers. This power is proof against almost all the problems associated with organizational mayhem. When you have it you should ignore the chaos completely and carry on as if nothing is happening. You may of course get red, but if that happens you can easily get a new job because of the magic power. More commonly, some stressed-out person who does not have the magic power will come into your cube and tell you to do something stupid. It is best to smile and nod until they go away and then carry on doing what you know is best for the company.

    This course of action is the best for you personally, and the best for the company you work for. If you are a leader, tell your people to do the same thing and tell them to ignore what anybody other than yourself tells them, including your own superiors.

  145. Motivation by Pr3d4t0r · · Score: 1

    "Oh!" I said to myself as I skimmed the table of contents, "there is a section on How to Stay Motivated". I've haven't been tearing it up lately and so I quickly scrolled to page 20 looking for some helpful ideas... in a nutshell the author suggests I work on "beautiful, useful, or nifty" things.... Great. Thanks. I'm fired up now.

  146. congratulations, good sir! by mekkab · · Score: 1

    You have upgraded from a troll to a critical analysis!

    And I think you have valid points- telling anyone "This is the way to get a promotion" is absolute crap- but thats a flavor of "advice" that everyone gives and no one has a clue about.

    As for not documenting code, this dewd should put in a MAJOR revision. I work on legacy systems and I've seen places where the commentary in the code is just plain factually incorrect. Which is right? THe code? or the comment? Was the code changed by a developer 8 years ago and he didn't update the comment? WTF?! You need to get a consensus between the docs, the comments, and the code to figure it all out.

    As for the glossary, maybe he needs to put a disclaimer on it (These are all my words and my meanings) and put that in the FRONT of the book, so you can speak the authors brand of geek from the get go.

    If you aren't gonna e-mail these revisions to him, I'll do it for you!

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
  147. ...have a huge ego by zitsky · · Score: 3, Insightful

    Flame suit on...

    I found his paper interesting for the most part. It's very helpful in giving new programmers an idea what to expect.

    Is it just me, or does this guy seem to have a huge ego? I've worked with enough programmers to know there are good and bad ones, easy going and egotistical ones. He seems to have a pretty low opinion of "non-engineers", by which he means non-programmers as opposed to mechanical engineers, electrical engineers, etc.

    My favorite section is "How to talk to non Engineers".

    Non-engineers are smart, but not as grounded in creating technical things as
    we are. We make things. They sell things and handle things and count things
    and manage things, but they are not experts on making things.

    They are not as good at working together on teams as engineers are (there
    are not doubt exceptions.) Their social skills are generally as good as or bet-
    ter than engineers in non-team environments, but their work does not always
    demand that they practice the kind of intimate, precise communication and
    careful subdivisions of tasks that we do. Their teams are more like groups.

    Non-engineers may be too eager to please and they may be intimidated by
    you. Just like us, they may say yes without really meaning it to please you or
    because they are a little scared of you, and then not stand behind their words.
    Non-programmers can understand technical things but they do not have
    technical judgment. They do understand how technology works, but they cannot
    understand why a certain approach would take three months and another one
    three days.

    It's obvious to me when an engineer has this attitude. They usually come across as cocky and condescending. I find that if you treat your coworkers with respect, and assume they have a clue, that your working relationship will be much better for doing it.

    I have a B.S. degree in Comp. Sci. but work as a sysadmin now. Everyone knows that without sysadmins like me, everything would fall apart, and engineers would never get anything done. Ask me how many times I've had to fix an engineer's CVS repository because they didn't have a clue how it worked. ;-)

    I think engineers/programmers need to have more appreciation for their fellow technical workers. Maybe I'm just being sensitive, but last time I checked, my job required building things & fixing problems (complex server systems, and repairing many system level and code level problems). I also have to do job estimation with a good understanding of the technical merits of different approaches.

    And, I hate to disappoint everyone.... but non-engineers are not eager to please or intimidated by you... They might just be too polite to laugh at you to your face when they see how big your ego is getting. ;-P

    The best engineers I worked with were extremely bright, did an excellent job, and were very good at getting along and working with everyone, whether engineer or sales rep. They were recognized by everyone, technical and not, as our best engineers. Everyone knew they were the core of our company. I would break my back to get those guys what they needed, because they treated me as an peer, and respected my own expertise.

    The worst engineers I've dealt with had egos bigger than the buildings they worked in, and chips on their shoulders almost as big. Those were the type I stayed away from. They were also the type that insisted their ideas were right regardless of the facts.

    The last jackass engineer/programmer I worked with insisted our company of 50+ people didn't need a corporate firewall "because we use Windows development systems, and Windows software is secure". And this guy was our most Senior Engineer, I am NOT making this up.

    Well, thanks for letting me get that off my chest!!

    1. Re:...have a huge ego by RobertLRead · · Score: 1

      I think I should adjust the language of this section; I did not intend to slight any non-engineers, though some people are bound to take it that way, no matter what I say.

      I think some people would interpret those same words as being flattering to non-engineers; but I don't want there to be any mistake on this point, so I'll hammer home that I am not encouraging a condescending attitude.

      I actually go out of my way quite a bit to be not only trustworthy, but accessible to all the non-engineers in our company, and I think this is a very important habit that I have not spelled out in the essay but plan to soon.

      I think most people understand the value of sysadmin, salespeople, marketers, managers, technical writers, receptions and janitors. They are all valuable; I don't think programming is in itself more valuable. However, I'm not ashamed to celebrate the act of mental creation of a useful artifact; and celebrating that wonderful act should not be taken as putting somebody else down.

      I also think I'll add a section about serving the business interest better. To me, the model of a programmer is similar to the (perhaps mythic) Samurai---loyally putting out best effort even if disagreeing with the orders.

      It's clear from some comments I've gotten that some people who do have huge egos have created enough bad feelings that we need to explicitly combat that.

      Here's a question for you: How should one speak to non-engineers? I personally don't think:
      "Exactly as one speaks to one's teammates" is really a realistic answer.

  148. Am I the only one.... by trainsnpep · · Score: 1

    Am I the only one who has (a) never used the term unk-unks, and (b) would never dare refer to them as that?

    --
    --<Mike>--
  149. she by Anonymous Coward · · Score: 0

    The table of contents sounds exciting, but I can't see the point of a male, writing to a mostly male audience in english referring to people of unspecified gender as "she." Yeah, it was funny the first time it was done, in 1832, but now you just sound ignorant.

  150. I think you've just proved a point. by Anonymous Coward · · Score: 0

    the sad thing is, that I know what SO stands for

  151. Why should it be "weird" to use she? by Anonymous Coward · · Score: 0

    to describe a man? That would be weird.

    to describe a neutral gender? Not weird, just wrong.

  152. NOTHING TO LOSE!! by Anonymous Coward · · Score: 0

    What do yo mean nothing to lose. I lost my virginity that way.