Why most programmers are lousy

Mar 08 2007

I’ve been in the IT field long enough to get to know many pro­gram­mers, both expe­ri­enced and just wanna­bies. Dur­ing this time, I’ve real­ized that most of them are just bad pro­gram­mers, sim­ply said. I find myself agree­ing with a bril­liant post by Jeff Atwood, which alleges that pro­gram­mers can’t pro­gram. What are the rea­sons for this? Many. Prob­a­bly, IMHO, the main fault has to be addressed to the lousy edu­ca­tion that peo­ple receive. But then again, the abil­ity of giv­ing edu­ca­tion remains directly pro­por­tional to the abil­ity of get­ting it, and where I see peo­ple com­plain­ing about low qual­ity of edu­ca­tion in Uni­ver­sity, I also see stu­dents with no inter­est in learn­ing. Let’s see some of the rea­sons why pro­gram­mers can’t really program.

  1. Young peo­ple study Com­puter Sci­ence just because it’s a trend. It sounds almost unbe­liev­able to me, but I must admit it’s mostly true. The vast major­ity of my old Uni­ver­sity mates just applied to the Com­puter Sci­ence depart­ment because… well: every­body was doing so. They fol­lowed the rest of the sheep.
  2. Young peo­ple study Com­puter Sci­ence because they wouldn’t know what else to do. That’s really another strong source of appli­ca­tions to Com­puter Sci­ence. A lot of young peo­ple in their teenage years just don’t know what they want to do as grownups. Com­puter Sci­ence still seems to be a good career oppor­tu­nity, so they just go for it.
  3. Young peo­ple study Com­puter Sci­ence because they think it’s a sure way of get­ting a job. 10-something years ago there was a big boom, and if you just knew some HTML, were thought to be a com­puter guru. These types of belief mark a deep foot­print on pop­u­lar say­ings, hence the wave of peo­ple apply­ing to Com­puter Sci­ence just because they can work, is still there.
  4. Many of today’s pro­gram­mers, were doing noth­ing else than surf­ing the net or using Word till last year. Espe­cially in small and ver­ti­cal based mar­kets, impro­vi­sa­tion just rules. Peo­ple learn some­thing, and lit­er­ally throw them­selves on the field. Draw­backs for qual­ity of their work are sim­ply inevitable. This is not only a group of illit­er­ate peo­ple that just jumped in to catch the big wave (what big wave, nowa­days?), but peo­ple with no pas­sion what­so­ever. In other words, I don’t think it’s pos­si­ble, nowa­days, to become a great pro­gram­mer if you didn’t start get­ting some inter­est in the field when you were very young, say about 10 years old (with the due excep­tions, of course).
  5. Many of today’s Com­puter Sci­ence stu­dents have no inter­est what­so­ever in what they’re force­fully study­ing. Just put together the pre­vi­ous items in this list and what do you get? A bunch of peo­ple who just don’t care, who want to get their piece of paper (the degree) as soon as pos­si­ble, and have absolutely no pas­sion in what they learn. That’s the worst. I strongly believe that pro­gram­ming is not just a job like many oth­ers, but you need pas­sion to get best at it.
  6. A lot of pro­gram­mers just don’t like to pro­gram. This goes for 100% of my ex Uni­ver­sity mates! Think of that: 100%. Of course it’s not the whole world but it makes a small statistics.
  7. A lot of pro­gram­mers just don’t get it. Not even the easy things. I was asked, few weeks ago, by a friend of mine who’s been study­ing Com­puter Sci­ence for now 4 years, what the dif­fer­ence is between a private and protected method in Java. Appar­ently read­ing the books isn’t enough any­more, nowa­days. Another guy asked me: “I’ve stud­ied point­ers in C, and I think I under­stood them. Still I can’t find any use for them… are they really used at all?”.
  8. Basi­cally all of the pro­gram­mers, or wannabe pro­gram­mers, men­tioned above, are miles away from the tech­ni­cal com­mu­nity. These peo­ple will totally ignore the exis­tence of:

    Slash­dot and sim­i­lar
    RSS
    Usenet
    IRC (“Is that like MSN?”)
    SVN and similar

As you can see, a really strong point, in my opin­ion, is the lack of care and pas­sion for the sub­ject of pro­gram­ming itself. Lousy pro­gram­mers are bound to pro­gram to take a wage home; good ones are bound to pro­gram for the sake of pro­gram­ming itself. Or course you can do that but still miss to be a good pro­gram­mer, but all falls down to numbers.

86 responses so far

  1. Agreed. I’ve been involved in IT and soft­ware since I was 7 years old, and I love it and I can’t tell you the times I am asked what vari­ables are really for, why a for loop is called a for loop, what’s an iter­a­tor, what’s the dif­fer­ence between an object and an asso­cia­tive array, what’ s a hash, why hashes? the list goes on and on and it’s ridiculous.

  2. @bryan
    Yeah, that’s par­tic­u­larly doomed to hap­pen if your the most techie or savvy of your friends.
    Peo­ple just find so much eas­ier to waste your time than just google for it.

  3. Fur­ther agree­ment here. The boom of 1015 years ago is still affect­ing the indus­try; kids who wit­nessed that big IT Craze decided to go into Comp Sci/programming because of the per­cep­tion that it was a lucra­tive career choice, with a lot of money and even a lit­tle bit of glamor in it; many smarter, less fad-driven young peo­ple were turned off and got into other careers. Fast for­ward to present day and that first crop of kids have since fin­ished their degree and are now out in there try­ing to pre­tend to be pro­gram­mers and BS their way through. Along the way I think they even ended up effect­ing a low­er­ing of stan­dards at any uni­ver­sity CS depart­ments, which is not going to help mat­ters in the future. It’s a sad state of affairs for the grow­ing com­pany that needs to hire pro­gram­mers and really can’t afford to take on ones that are dead weight. They get tons of appli­cants and have to fig­ure out how to pick out the one in a hun­dred that’s actu­ally worthwhile.

  4. Wow, these are the same thoughts (and even some of the same exam­ples) that I’ve been try­ing to put into words for quite a while.

    100% agree!

  5. I def­i­nitely agree with your obser­va­tions. It’s sad to see so many clue­less indi­vid­u­als in this field.

    I just have one ques­tion… what’s SVN? (just kidding!)

  6. Yep, years back I thought that pro­gram­mers are really smart and very pro­fes­sional and you need to gain a lot of knowl­edge to become one. Then I got to a com­pany work­ing with few dozens other devel­op­ers and I became enlight­ened. Most devel­op­ers are really really bad. They suck big time. Actu­ally almost all of them shouldn’t be devel­op­ers at all.

  7. @karol
    Iron­i­cally — if all of those bad pro­gram­mers were to dis­ap­pear, I’m cer­tain that world­wide mean of pro­duc­tiv­ity would be about the same as it is now. How sad is that?

  8. Mmmm — I agree to a degree. See responses inter­spersed below:

    1. Young peo­ple study Com­puter Sci­ence just because it’s a trend. — I think this is really not the case any­more. CS entrance rates (and Engi­neer­ing across the board) are decreas­ing every year. I think the trend is over.

    2. Young peo­ple study Com­puter Sci­ence because they wouldn’t know what else to do. — This hasn’t been my expe­ri­ence. I think that’s what many busi­ness majors do, but peo­ple who try to do this in CS often have a rude awak­en­ing at the math involved.

    3. Young peo­ple study Com­puter Sci­ence because they think it’s a sure way of get­ting a job. — Maybe, but there’s not as much money in it as there once was, and I think they know it by now.

    4. Many of today’s pro­gram­mers, were doing noth­ing else than surf­ing the net or using Word till last year. — It’s pos­si­ble. A friend of my wife’s once com­mented that she’d prob­a­bly enjoy get­ting a CS degree — since she likes writ­ing emails.

    5. Many of today’s Com­puter Sci­ence stu­dents have no inter­est what­so­ever in what they’re force­fully study­ing. — I totally agree here. I LOVE to pro­gram — but I HATED get­ting my CS degree. Why? Because I could care less how a micro­proces­sor works, or MIPS, or what dif­fer­en­ti­ates super-pipelining from multi-processing. For me, those are prob­lems that other peo­ple can solve — I just want to CODE! Unfor­tu­nately, there was no “Soft­ware Engi­neer­ing” cur­ricu­lum at my uni­ver­sity — so CS was the next clos­est thing.

    6. A lot of pro­gram­mers just don’t like to pro­gram. — I’d prob­a­bly use some­thing a lit­tle stronger. For exam­ple “A lot of pro­gram­mers just don’t LOVE to pro­gram”. In my expe­ri­ence, a lot of the pro­gram­mers I’ve worked with did it because it paid the bills, with no spe­cial inter­est or aver­sion to it.

    7. A lot of pro­gram­mers just don’t get it. Not even the easy things. — Agreed — as illus­trated by the FizzBuzz phenomenon.

    8. Basi­cally all of the pro­gram­mers, or wannabe pro­gram­mers, men­tioned above, are miles away from the tech­ni­cal com­mu­nity. — Maybe so.

  9. Posts like these are totally non-productive in the long run. Replace ‘pro­gram­mer’ with ‘black­smith’ and you are hear­ing a lament that has gone on for thou­sands of years.

    “In my day, were stronger, bet­ter, smarter, all above aver­age, etc. When we used punch­cards, we had to be so much more clever.…”

    The real issue at hand is, how do we pro­duce more and bet­ter programmers?

  10. […] This says it all March 8th, 2007 Sal­va­tore Iovene » Why most pro­gram­mers are lousy […]

  11. I agree.
    Work­ing with peo­ple who don’t have a pas­sion about their work does suck.

    but I think the sen­ti­ment applies to all forms of tech­ni­cal careers.

  12. @chuck

    Indeed. Luckly, this trend is going to dim over the years, as it seems to be start­ing to.

  13. I think the fact these ‘devel­op­ers’ can get hired is even more amaz­ing than how much they over­state what they know.

    It’s not just these pro­gram­mers who are to blame. Com­pa­nies should have peo­ple who know what they’re talk­ing about do the interviewing.

  14. @ Jim R. Wilson

    Thanks for the insight­ful comment.

  15. @ Jens (com­ment #13)

    Prob­a­bly that’s just because in a lot of cases, the qual­ity of code, and the hap­pi­ness of the employ­ees doesn’t really mat­ter. Con­sider all the busi­ness around the sim­ple state­ment of “Let’s keep the cus­tomer happy, and who cares if the code sucks”.

  16. I’d say there are those peo­ple who learn to code, the ones that aren’t inter­ested in the “sci­ence” but mass pro­duc­ing soft­ware and get­ting payed. And there are those who learn com­puter sci­ence and/or to program.

    I don’t really see the prob­lem, the sit­u­a­tion seems to me to be the same in most other areas.

    One would be math, there are those who learn math to get a job, not really under­stand­ing it, and those who under­stand it.

  17. You make it sound like young peo­ple just don’t care. I really think that’s the wrong atti­tude to have and stereo­typ­ing a bunch of indi­vid­u­als like that is wrong. I’m not sure what encour­aged you to write a blog of this nature, but I find it insulting.

    I’m in my mid 20s and have a few years of pro­gram­ming expe­ri­ence under me. I’m not in it because all my friends pro­gram. I’m not in it for the money. I’m in it because I like solv­ing prob­lems and fac­ing new chal­lenges every­day. …and here I get stereo­typed because of my age.

    I know noth­ing about you, but I can make one edu­cated guess. If you were to inter­view a 35 year old pro­gram­mer and a 25 year old pro­gram­mer, you wouldn’t even lis­ten to what the 25 year old pro­gram­mer has to say. You’d blow him off before the inter­view even started because you have this crazy idea in your head that all young peo­ple have no pas­sion, no care to write good code, and prob­a­bly assume they’ve never heard of a com­piler before.

    You said: “In other words, I don’t think it’s pos­si­ble, nowa­days, to become a great pro­gram­mer if you didn’t start get­ting some inter­est in the field when you were very young, say about 10 years old (with the due excep­tions, of course).” This makes no sense. I know a lot of peo­ple around where I live that never received a com­puter till they were 15 or 16 years old. They’re now mov­ing up the cor­po­rate lad­der in their pro­gram­ming gig very fast — blow­ing peo­ple out of the water that have worked for the com­pany over 10 to 15 years. I know a lot of peo­ple that had com­put­ers their whole life and still have no idea how to remove a virus from their Win­dows box.

    You’d be amazed how many good young pro­gram­mers are out there if you just opened your eyes a lit­tle more and stop get­ting dis­tracted by script kiddies.

    Blame it on the HR folks that actu­ally inter­view these young peo­ple with no cares. A good pro­gram­mer is a lit­tle odd on the out­side and inside, but HR depart­ments look for “nor­mal” indi­vid­u­als. They only screw them­selves and pol­lute the work force.

  18. @ Tilo (com­ment #16)

    I don’t know. To me it seems like pro­gram­ming requires more pas­sion than a lot of other jobs, if you want to excel. It might be the same with math and other sci­ences, as you say, but since there are way much more pro­gram­mers than math­e­math­i­cians, I’d say the prob­lem is more seri­ous in the IT field.

  19. @ Dave (com­ment #17)

    Dear Dave,
    I’m afraid you took this too per­son­ally. I wasn’t any­where say­ing that “all young peo­ple, with no excep­tion” suck, or what­ever. Actu­ally, should you have taken the time to find out more about me, you’d have found out that I’m right about your age.

    When you com­plain about me say­ing that “I don’t think it’s pos­si­ble, nowa­days, to become a great pro­gram­mer if you didn’t start get­ting some inter­est in the field when you were very young, say about 10 years old (with the due excep­tions, of course)”, you’re for­get­ting the “with the due excep­tions” part.

    Sure I believe very well that you know some 15-year-old phaenom­ena, and so do I. This just proes that start­ing young does actu­ally help (prob­a­bly just like­wise any other field).

    Fur­ther­more, the whole post was about the sub­set of young CS stu­dents who do actu­ally not care, as a mat­ter of fact, because that’s what I hear from their own words.

    I’m happy that you enjoy your IT job, and so do I, being and employee myself, but you (or me) don’t prove that the peo­ple I was talk­ing about exist. I wasn’t stereo­typ­ing by age, and you can con­sider a proof of that the fact that I’m the same age.

  20. I think what you’re try­ing to say is pro­gram­mers who have a life other than pro­gram­ming tend to be bad programmers.

  21. @ jc (com­ment #20)

    I think that you’re actu­ally the one who says that being good pro­gram­mers being lack­ing a life out­side a computer.

  22. Per­haps you should find bet­ter friends or cowork­ers if they all suck?

    If you con­stantly look around and you’re the smartest guy in the room that prob­a­bly means one of two things: a) you’re delu­sional or b) you set your sights too low in accept­ing where you cur­rently are.

  23. @ Blo­gReader (com­ment #22)

    Or then maybe:

    c) where I work, all of that doesn’t apply, because everyone’s so god­dam good and I’m not even farly the smartest guy.

    In other word, I’m not nec­es­sar­ily speak­ing of what’s hap­pen­ing to me right now and right here.

  24. @Salva 23:

    so you’re just being a cur­mud­geon com­plain­ing about the kids of today and your only data point are the peo­ple that grad­u­ated in your col­lege class? Your other data point dis­proves your the­sis as well.

    Now I’m agree­ing with the “black­smith” com­ment above.

  25. @ Blo­gReader (com­ment #24)

    My data are the peo­ple that grad­u­ate in my col­lege class, the peo­ple I worked with in the past, the peo­ple I get to talk to on usenet or IRC.

    Nowhere I stated I had any rock solid data, nor researches whatsoever.

    I hap­pen to work in a kinda leet place (well at least I like it very much and it’s leet to me), so it’s pretty much an exception.

    Also see the post from Jeff Atwood that I linked in the article.

  26. […] Why most pro­gram­mers are lousy — Sal­va­tore Iovene […]

  27. I might agree that tak­ing math­e­mat­ics as an exam­ple was a bad idea, but in a way it did make my point more clear.

    As soft­ware becomes more and more mass pro­duced, and less and less defined as indi­vid­ual packed solu­tions, we’ll need coders to write the code (“mon­key coders”). These peo­ple, from the lit­tle expe­ri­ence I have, aren’t inter­ested in advanc­ing the pro­gram­ming sub­ject as a sci­ence, art or craft, which ever term you like the better.

    This could give the more “tra­di­tional” hack­ers the chance to strengthen their role as a researcher and thus fur­ther­ing the sub­ject as a whole­and make what, at least I, find really inter­est­ing fur­ther­ing the sub­ject as a whole.

    What I’m really sick of is pro­gram­ming “wannabes” talk­ing about the by them so called “non-realworld” research as not help­ing them deliver their soft­ware to their oh so pre­cious customers.

    What you are sug­gest­ing might be true, although as long as they don’t make it harder for me to enjoy the sub­ject, which most of the time they don’t, I just don’t care.

    One way in which this does bother me is if uni­ver­sity research and edu­ca­tion gets dumbed down because of it.

  28. Well, I think you don’t have to over­es­ti­mate pro­gram­ming. There is a lot more about build­ing sys­tems than just programming.

    You’re right that there are a lot of really bad appli­ca­tions out there and I was one of those doomed who had to main­tain one. But the rea­son for this is that soft­ware engi­neer­ing as a dis­ci­pline is decades behind other engi­neer­ing dis­ci­plines. Hav­ing a bunch the most tal­ented pro­gram­mers doesn’t auto­mat­icly lead to success(and would also be boring).

    From my point of view, soft­ware engi­neer­ing is far to less inter­dis­ci­pli­nary. And if your work­ing with car­rer chang­ers in a project, their skill level in pro­gram­ming might not be the best. But you have a great chance of get­ting inspired, even in pro­gram­ming, by the ques­tions they ask. And the ques­tions they ask are spe­cific to their sci­en­tific education.

    I’m cur­rently engaged in Lean Man­age­ment and what we can learn from Lean Man­age­ment for soft­ware engi­neer­ing. And i would look for­ward to work­ing in a project with some­one who has a lot of expe­ri­ence in this area even if he’s not the most tal­ented programmer.

  29. Inter­est­ing; a lot of truth to this. Here are a cou­ple other perspectives.

    Eli Whit­ney and Fred­eric Taylor:

    (build­ing a bit off the “black­smith” com­ment)
    An inter­est­ing aspect of the long war (or love/hate rela­tion­ship) between labor and man­age­ment since the rise of the fac­tory sys­tem is management’s con­tin­ual quest to de-skill labor and make the major­ity of work­ers inter­change­able parts. Being a “mechanic” early in the Indus­trial Age was a com­plex, intel­lec­tual job, because every­thing was cut-and-try and one-of-a-kind. “Mechan­ics Halls” in many cities were basi­cally tech­ni­cal schools where rel­a­tively smart peo­ple came to learn the sci­ence and tech­nol­ogy of a skilled profession.

    Eli Whit­ney in the 1800s invented inter­change­able parts, turn­ing pro­duc­tion into a repeat­able sci­en­tific process instead of an art. Then Fred­eric Taylor’s “time and motion stud­ies” in the early 1900s applied the same approach to peo­ple. (Google “Tay­loriza­tion” if you want the bol­shie view of this.) Indus­trial engi­neers could look in a hand­book and spec­ify what job each worker on the pro­duc­tion line should do, exactly how they should do it, and how fast. Any aver­age human could learn a fac­tory job quickly. In the near future, man­agers expected, machines would do it even more quickly. Life was good for them; bor­ing and uncer­tain for the inter­change­able workers.

    In many cases this approach makes sense. Fac­to­ries’ mass pro­duc­tion blew work­shops out of the water — they could mobi­lize essen­tially the entire adult pop­u­la­tion of a coun­try (not always just adults) to pro­duce goods in unimag­in­able quan­ti­ties. For some per­spec­tive, the first big drop in Euro­pean death rates since medieval times hap­pened when the Eng­lish tex­tile mills made cloth­ing cheap enough that com­mon peo­ple could change their under­wear and stop coex­ist­ing with lice and fleas.

    Every job at McDon­alds is sup­posed to be learn­able in what — 15 min­utes? That’s OK; if I’m in a hurry, I can count on a clean restau­rant and hot food that won’t dis­ap­point me. How­ever I’m liv­ing in Paris now, where the cooks and bak­ers take quite a bit more than 15 min­utes to learn their trade. There’s no com­par­i­son in the results!

    It turns out that the human-as-robot-wannabe model was flawed even in fac­to­ries. Japan­ese fac­to­ries where work­ers were allowed and expected to think — lean pro­duc­tion — even­tu­ally blew the Gen­eral Motors workers-are-expendable-cattle approach out of the water even for jobs as sim­ple bolt­ing parts on auto bodies.

    SW engi­neer­ing, Domain Engi­neer­ing, and End-User Pro­gram­ming:
    There has been a great effort to indus­tri­al­ize pro­gram­ming, too. Again, there are many good fea­tures, and it’s a field I’m inter­ested in. Build­ing a large pro­gram requires a struc­tured approach. Lan­guage design, libraries, pro­gram­ming frame­works and IDEs can and should incor­po­rate as much exist­ing human knowl­edge as pos­si­ble — com­puter sci­ence, domain knowl­edge, solid pre-written code and human inter­face prin­ci­ples. (Check out Thomas Greene’s “Cog­ni­tive Dimen­sions of Nota­tions” for some of the lat­ter — I think of how pro­gram­ming tools fail to use them on a daily basis!)

    On the one hand, this can allow peo­ple who aren’t great pro­gram­mers — or even pro­gram­mers at all — to do pro­gram­ming that meets a lot of prac­ti­cal needs. There are hun­dreds of mil­lions of busi­nesses in the world; they have needs that can’t be met with a few stan­dard mega-programs, and they can’t all afford to hire Linus Tor­valds to do some­thing bril­liant for them. They need ordi­nary pro­gram­mers who can make com­put­ers do what they need. The anal­ogy isn’t per­fect (fac­tory work­ers all did the same job, while semi-programmers basi­cally cus­tomize), but there is a place for peo­ple who aren’t bril­liant thinkers in our pro­fes­sion. Whether it should be called “Com­puter Sci­ence” is a good ques­tion — there’s much less sci­ence pro­gram­mers need to know than physi­cists or biol­o­gists (although you can argue that biol­ogy is devel­op­ing a large fac­tory com­po­nent, too.)

    To sum up a ram­bling post: yes, if you are doing seri­ous, new work, you need peo­ple who are great pro­gram­mers. Yes, you need to win­now out a lot of chaff. If you are doing ordi­nary pro­gram­ming, you need to win­now out a lot of chaff, too. You need depend­able peo­ple who under­stand the kind of pro­gram­ming they will need to do, who have a work ethic, who aren’t try­ing to con you, and who under­stand a sig­nif­i­cant amount of com­puter sci­ence at an applied level. Just like you want a car­pen­ter or car mechanic who knows his trade but not nec­es­sar­ily sta­t­ics or ther­mo­dy­nam­ics, they need to under­stand a lit­tle about algo­rithm com­plex­ity so they don’t write a pro­gram that will crawl on more data; a lot more soft­ware engi­neer­ing so their pro­grams can be under­stood and play nice with other com­po­nents, and a lot of specifics about the pro­gram­ming you really need them to do.

  30. @ Howie Good­ell (com­ment #29)

    Howie, thanks for the really inter­est­ing com­ment. Very good ideas, there.

  31. […] After claim­ing that most pro­gram­mers just can’t pro­gram, and actu­ally address­ing most of the prob­lems to the lack of pas­sion of peo­ple who decide to start a career as a pro­gram­mer, I would also like to express my point of view on a tightly related sub­ject: what can be done to improve the sit­u­a­tion? The prob­lem that I was try­ing to bring up in the spot­lights, is that a lot of peo­ple just start (or wish to start) a career in the IT for no par­tic­u­lar rea­sons. Those are the ones who don’t love and don’t loathe pro­gram­ming, and they just see it as some­thing that pays their bills. Well, maybe the first ques­tion that I should address, actu­ally is: why is this bad? Sure there are so many jobs which don’t require pas­sion at all, and peo­ple just do them because a job is just a job, and don’t really care. In my opin­ion, being a pro­gram­mer is different. […]

  32. “Young peo­ple study Com­puter Sci­ence because they wouldn’t know what else to do.”

  33. lol, my com­ment was auto-cut :P but maybe that is better

  34. are this great guru blog is open for sql injec­tion? or my com­ment was too long?:>

  35. It is all about edu­ca­tion. The qual­ity and depth of edu­ca­tion for the aver­age per­son has steadily declined for the past 100 years. In Amer­ica, the last 4050 years have are espe­cially notice­able. Most Amer­i­cans, edu­cated in Amer­ica or not, know only a tiny sub­set of English.

    How­ever, the crit­i­cal ram­i­fi­ca­tion of edu­ca­tional defi­ciency is that peo­ple can­not think any­more. Obvi­ously with­out strong think­ing skills, mas­tery of soft­ware devel­op­ment will be next to impossible.

    In a sea of igno­rance and non-thinkers, one would think that smart peo­ple would be in demand, but they are not. The net­work effects of igno­rance and men­tal inca­pac­ity are pow­er­ful (think Metcalfe’s Law). So pow­er­ful that they will pre­vent most smart peo­ple from being hired. So when you are in a place that is pop­u­lated with hordes of bad pro­gram­mers, don’t be sur­prised. That is the wave of the future.

    The basic fact of today’s soft­ware world is that dumb igno­rant peo­ple hire dumb igno­rant peo­ple. If you want a job, remem­ber that in the king­dom of the blind, the one eyed man… pre­tends he is blind too.

    Which brings me to the point of this ram­ble about dumb peo­ple and jobs. If you are smart, Dar­win is against you today. You have to use your intel­li­gence to adapt, mean­ing learn how to pre­tend you are dumb. Oth­er­wise you, the smart pro­gram­mer, have no future.

  36. response to com­ment #22:

    Have you heard the old joke that goes some­thing like “Just because I’m para­noid doesn’t mean that they aren’t all out to get me” ?

    One of my prob­lems is that I usu­ally *am* the best in the room. And that’s sad, because I’m really not that great. It’s a bur­den, mostly because there’s nobody to chal­lenge me, to ask ques­tions of, to look up to. Thank good­ness for the Internet!

    If you live in an area (like I do) that has a high dropout rate, a low col­lege rate, a high poverty rate, the com­pany you work for will prob­a­bly take any pro­gram­mer they can find (because not that many live around here). I’m glad for the oppor­tu­nity to work here, because it’s bet­ter than teach­ing high school, and it has given me good expe­ri­ence in refac­tor­ing and redesign­ing poor code, and han­dling cus­tomers. But I’m equally glad I’m mov­ing to a bet­ter place in a few months. Maybe then, when I look around the room, I’ll actu­ally have peo­ple I can learn from.

    My solu­tion: go back to school (so recruiters will notice me), and get hired by a com­pany where I will find peo­ple bet­ter than me to work with.

    Some­thing (aver­age) peo­ple tend to for­get, is that being “smart” (how­ever you define it) can be a dis­ad­van­tage, or even an out­right disability.

  37. @ swan // com­ment #35

    Great response, swan. That’s so darn true. I also used to be the best in the room, so I moved to a bet­ter place with bet­ter peo­ple, from whom I have a lot to learn. And guess what? I’m get­ting bet­ter too, of course.

  38. 1. It also depends on what you want to do: I know a lot of pro­gram­mers who con­sider pro­gram­ming just a step in their careers. So, for exam­ple, they pro­gram from 25 to 32, then the same com­pany they work for take them to a “higher” career level for which pro­gram­ming skills are not directly required, they pay more for this job (project man­age­ment or so) and their lives get (maybe) less com­pli­cated or com­pli­cated in a dif­fer­ent way;

    2. Code, after all, is not really art and very often it gets trans­formed in very repet­i­tive tasks: you have “design pat­terns” because there are things you do a lot of times. Here we’re talk­ing about “vision” too and some com­pa­nies maybe believe a pro­gram­mer is just like a fac­tory worker;

    3. Pro­gram­ming –after the wide spread of the Inter­net– is not only a mat­ter of com­puter sci­en­tists but many other fields have been reached: com­mu­ni­ca­tion, adver­tis­ing, etc. So, today you can find peo­ple with no degree or with “human­i­ties” degree speak­ing of data struc­tures they met thanks to a com­puter pas­sion (we live in a post-commodore64 era, not at the first main­frame time): I’m sure they don’t com­pare them­selves to c++ devel­op­ers but very few c++ devel­op­ers with pedi­gree [ ;-) ] would like to pro­gram balls mov­ing on users’s screen, avatar chats, sim­ple PHP/MySQL web­sites, things where “robust­ness” is not required and so on. This is to say that not all pro­gram­ming is about low level, bits, secu­rity, etc. Pro­gram­ming is today many things and you can meet an engi­neer totally unin­ter­ested in pro­gram­ming (but very inter­ested in show its title and in mak­ing money by say­ing he is an engi­neer) and a curi­ous per­son com­ing from other expe­ri­ences totally attracted by pro­gram­ming things.

  39. 2. Young peo­ple study Com­puter Sci­ence because they wouldn’t know what else to do. — This is the rea­son why I stud­ied com­puter sci­ence but I am good at my job (I think!). On the other hand, most of the guys at my com­pany, love writ­ing code but they suck at it.

    3. Young peo­ple study Com­puter Sci­ence because they think it’s a sure way of get­ting a job. — To my detri­ment, I found that it took me almost a year to find my first real pro­gram­ming job. (I live in the UK).

    ——

    The rea­son why pro­gram­mers suck has very lit­tle to do with the eight points listed above.

    The pro­gram­mers at my com­pany seem to greatly enjoy pro­gram­ming but they get their sat­is­fac­tion from see­ing the results rather than writ­ing con­cise, ele­gant code.

    I, on the other hand, take pride in writ­ing con­cise code, refac­tor other’s crap code, give obvi­ous vari­able names, make it fast etc.

    ——

    A crap pro­gram­mer wants to see the results fast; that gives him a buzz. In con­trast, a good pro­gram­mer cares about the beauty and con­cise­ness of the code.

    A good pro­gram­mer is a bit like a math­e­mati­cian in that he cares about the beauty of the ideas not about find­ing a solu­tion quickly.

  40. I have been pro­gram­ming since I was about 12 (BASIC, and then c++, some PHP and quite a bit of Python)…
    I’m 18 and in first year of uni­ver­sity doing a BSc major in com­puter science.

    All I can say is that I agree with what your say­ing.. Seems like most peo­ple signed up with­out know­ing what pro­gram­ming even is.
    I got an A+ in the course, while my class’s aver­age was a C-…

    its really kind of pathetic.
    The most dif­fi­cult con­cept was linked lists =/

  41. I dis­agree. I do believe pro­gram­ming IS just a job like many others…But I don’t feel like dis­cussing it today, it’s New Year’s Eve.

  42. Kind of a lousy article.

  43. Slash­dot is NOT a use­ful resource for pro­gram­mers. It’s not a use­ful resource for any­one or anything.

  44. Well, first: StumbleUpon’d

    Sec­ond: I’m only in my third year of col­lege in CS, and I can see the decline solely because the intro­duc­tory classes are in Java. Just last year, one of my friends — who had com­pleted the Com­puter Orga­ni­za­tion and Assem­bly Lan­guage class (where they’re sup­posed to learn C and some Assem­bly) asked me what a pointer was.

    Not to men­tion a bunch of other stuff, but I must run now~

  45. I agree with most of that, but as some­one who just started pur­su­ing their CS degree, I’m not sure if you have to have started in the field by the time you were ten, I started at 14 and I still think that I’ve fos­tered a gen­uine inter­est in pro­gram­ming, some of the best nights of my life have involved stay­ing up till 4 A.M. work­ing on a program.

  46. Hon­estly… I think a lot of points in that arti­cle are really gen­er­al­ized and lousy. My grain of salt…

  47. This field is huge. It can be so many dif­fer­ent things to all sorts of peo­ple. You can’t grasp all of it, and you can’t expect every­one to value the very same bits of it which you value most. I think it’s great to have a pas­sion and to find a cur­ricu­lum that actu­ally feeds it. Very few peo­ple can be that grateful.

    I also per­son­ally find that great­ness, may it be in sports, pro­gram­ming or stock­broking, tends to be alien­at­ing, no mat­ter how admirable it can me. Maybe I’m a bit too touchy about the sub­ject. Ever seen Death of a Sales­man? This play tends to come to mind a lot when­ever I read arti­cles about being a great programmer.

    Have you really asked those peo­ple why they’ve enrolled in CS? Have you really listened?

  48. Per­haps if the “vet” pro­gram­mers weren’t such con­de­scend­ing ass­holes, peo­ple wouldn’t be so bad at it.

    I’m one of those peo­ple who is more than will­ing to check Google before I ask on a forum or on IRC. Unfor­tu­nately, when the first sev­eral dozen pages on Google are of peo­ple ask­ing said ques­tion on a forum, and get­ting no response (or the inevitable “RTFM” or “Google it”), ask­ing Google doesn’t help.

    Then attempt­ing to ask on IRC, the ques­tion is gen­er­ally (but not always) either ignored or responded with being told to Google it.

    By the time a per­son has reached page 30 of Google, being told to go Google it tends to piss them off quite a bit, and really kills any moti­va­tion to continue.

    So Google can be a real pain in the ass. OK. There are books out there we can look in to to get some answers.

    But which ones? There are hun­dreds of books on just about every non-obscure lan­guage out there, many not worth the paper they are writ­ten on. Ama­zon returns a lot of info about which may or may not be good, but when you start to read reviews and see the claims peo­ple are mak­ing, the inex­pe­ri­enced per­son doesn’t know enough about the lan­guage to make an informed decision.

    And when the inex­pe­ri­enced per­son asks about which books to get? Junk answers are gen­er­ally the result.

    My favorite is being told to get K&R C (I dropped out of the Java study and started study­ing C on my own). Why is K&R so good?

    The responses I usu­ally get are that it is the best book avail­able. Or because the cre­ator of the C lan­guage helped to write it.

    But then I have to ask, isn’t this book out­dated? Two or three ver­sions of C have come out since then.

    The response is that I should just read it anyway.

    OK, fine, I should just read it. Just as soon as I have a good source of dis­pos­able income that I can take risks with. “It’s the best book out there” isn’t good enough. WHY is it the best book? Why is a book about an old ver­sion of the lan­guage bet­ter than a book about the cur­rent version?

    And mind you, that goes for every book that peo­ple say to read. WHY should we be read­ing them? Say­ing they are good books is not good enough. Just about every book out there has been called a “good book” by some­body, and often sev­eral somebodies.

    Want to know my opin­ion on why pro­gram­mers are not nearly as good as they were 15 years ago?

    Because infor­ma­tion has got­ten damn hard to get ahold of. 15 years ago, when all of the “vets” were start­ing out, there wasn’t so much fluff and cruft sur­round­ing the infor­ma­tion they needed. They didn’t have to wade through a swamp of garbage infor­ma­tion to be able to find what they needed. The choices were much more lim­ited, and the paths to those choices were much more narrow.

    Now, the choices avail­able are myr­iad in num­ber, and the paths to those choices are wide and filled with holes.

    The “vets” always sound to me like they are apply­ing how THEY learned to how to pro­gram to the cur­rent gen­er­a­tion, com­pletely ignor­ing the fact that the world of pro­gram­ming has changed. It is no longer a niche study, but they con­tinue to treat it as though it were.

    Myself, I got into com­puter sci­ence because com­put­ers fas­ci­nate me. I was elated when I got my first pro­gram (not count­ing the tra­di­tional “Hello, World” pro­gram, it was a C++ pro­gram that added two num­bers and dis­played the out­put) to work. Hell, I’m STILL proud of it and still hold on to the source. I get excited when I learn some­thing new about the lan­guage I am study­ing. I eagerly await each new trick that peo­ple do with lan­guages and look for­ward to the day I can start play­ing with my own tricks.

    I am in com­puter sci­ence because it excites me.

    But it is damn hard to get reli­able infor­ma­tion, even when you know what to avoid.

    You say that a lot of young pro­gram­mers now just don’t care. Per­haps it isn’t that so many don’t care, so much as it is that we sim­ply can’t fig­ure out where the start­ing line is. When you can’t even find your way to the gate, run­ning the race is a sad afterthought.

    I was lucky. I had two great teach­ers who were able, and will­ing, to help me get started. Yeah, I needed to have my hand held a few times, but that wasn’t because I was unwill­ing to try.

    I’ll get to where all you “vets” are even­tu­ally; it’s just going to take a lot more effort for me to wade through all the garbage that lies between us. Just don’t be sur­prised when the garbage I was in is the garbage I put out.

  49. Either you are ter­ri­bly exag­ger­at­ing or there was some­thing ter­ri­bly wrong at your university.

  50. “Either you are ter­ri­bly exag­ger­at­ing or there was some­thing ter­ri­bly wrong at your university.”

    Ter­ri­bly wrong is cor­rect. There are no actual CS degrees offered. The only thing avail­able are cer­tifi­cates, which, when it comes down to it, mean jack squat.

    It’s a small-town com­mu­nity col­lege. They spe­cial­ize pri­mar­ily in auto maint., and what they did have for com­put­ing was rather poorly designed.

    Not every­body can afford a full-scale university.

  51. LoL at this post, igno­rance of the author is incred­i­ble. Comp sci is like, dying… No one sur­vives in comp sci if they take it with­out inter­est. If they did at your school ur school is a joke

  52. Your’re a whiney idiot and none of the above is true. You’re just claim­ing bull­shit and exag­ger­at­ing some indi­vid­ual cases. No real uni­ver­sity has peo­ple like that longer than 12 semes­ters max.

  53. Most of these prob­lems would not exist of CS courses were rig­or­ous. The “pass rate” in CS degrees should resem­ble a rate of sur­vival, rather than a rate of progression.

    Schools dropped the qual­ity of their courses to accom­mo­date the demand for pro­gram­mers, and now every­one is pay­ing because the qual­ity of work has declined. Dramatically.

  54. I have to agree with you. I’m a com­put­ing stu­dent and see what you mean. 100% of my class­mates dont want to pro­gram. They just want a degree. Plus our course is shit, peo­ple just use Visual stu­dio and net­beans to cre­ate gui and think their cool. None of them really under­stand pro­gram­ing. Every one just goes online can copies code.
    CS edu­ca­tion needs a HUGE update

  55. I’m defi­nately with you on this; I’m another CS stu­dent who actu­ally enjoys and under­stands what he’s doing, but so many of my peers are just able to “get it work­ing”, with the aid of what is essen­tially a tuto­r­ial, and get a degree.

    “We’re now going to extend the Chess­Piece class for the rest of the pieces, you’ll need to make a method called can­MoveTo() in each of the classes or your pro­gram won’t com­pile.“
    What, no men­tion of why you HAVE to over-ride the method? Not even a hint at what abstrac­tion is?

    They can make it work, sure, and that gives them the marks — but what about when they have to thing inde­pen­dantly. How well do they cope when the safety net is taken away and they have to design the objects, and more impor­tantly the rela­tion­ships between them, securely and effi­ciently. Where’s the actual under­stand­ing of how things work together, when to do things (rather than just how). There’s no effort to teach what an abstract class is and when it’s use­ful, just to make the stu­dent do it.

    It deval­ues the efforts of those of us who under­stand the con­cepts and enjoy the sub­ject, just because the uni­ver­si­ties want to throw out a decent pass rate and they know a lot of teenage boys want to “make com­puter games and stuff”.

    In short, it makes me look bad because they don’t actu­ally have to learn.

  56. Very much agree to it.

  57. I agree. Trendy is the key. For the same rea­son that a few years back it was super cool to study foren­sics in col­lege because CSI was the hot show. PLEASE. I know that every gen­er­a­tion says this about their young peo­ple, but the 2030 years olds today truly do not have a clue; but that is no crime. Every young per­son has to find their own way and stum­ble around a bit at first. But this gen­er­a­tion is dif­fer­ent. Not only are they com­pletely clue­less, but they are also cocky, ego­tis­ti­cal and com­plelty in awe of them­selves. And is it any won­der? When you have peo­ple like that ‘Joel On Soft­ware’ dude say­ing that new pro­gram­mers should be picked up in limos from the air­port? Are you insane? If any­thing they should be picked up and dropped on their heads. Stop com­plain­ing about want­ing to use the lastest tech­nol­ogy. Stop com­plain­ing that your chair at work is not ergonom­i­cal. Stop com­plain­ing period. Shut your mouth, do you work and save for your retire­ment. In short, take a least a lit­tle break from think­ing about your­selves. Or didn’t they teach you that in college?

  58. And let me guess, you’re one of the “skilled” devel­op­ers? That’s alway how it turns out.

    As a vet­eran pro­gram­mer, let me tell you the peo­ple lament­ing other’s skills are often the very same peo­ple giv­ing me the odd­est code. When no one can under­stand your code, the first defense is “you’re not smart enough to fol­low it” and then fol­lows an hour-long argu­ment of com­par­ing “dick-sizes”.

    After cod­ing at work for too many hours I AM NOT pas­sion­ate enough to pick it up again at home. I want to do other things. The pas­sion is gone. This does not mean pas­sion­ate peo­ple are any bet­ter at cod­ing; they just have less going on in their life, I suppose.

  59. I’ve been on all three sides of this fence. I started at five or so learn­ing Apple­soft and 6502 machine code from books. At that time, there were very few pro­gram­ming books and they were all writ­ten by peo­ple of the utmost qual­i­fi­ca­tion in their fields. Today, you can teach your­self to be an idiot in 21 days and a thou­sand screen shots. But there were other dif­fer­ences. Peo­ple treated soft­ware like bak­ing or brew­ing instead of like fac­tory work. You could get disks full of exem­plary source code for lit­tle more than the cost of dupli­ca­tion. (These days, there’s plenty of free source on the inter­net, but there’s no fil­tra­tion for qual­ity.) Also, today peo­ple expect more from a pro­gram. It has to work with a GUI or over the net on a time-shared mul­ti­task­ing oper­at­ing sys­tem. Expec­ta­tions are higher. The legal frame­work for soft­ware has changed. And quite frankly, most of the impor­tant, use­ful pro­grams have already been writ­ten. So at this point, soft­ware devel­op­ment has forked into research (what com­puter sci­ence is sup­posed to be) and busi­ness sys­tems (which is really about putting a pretty and secure face on a data­base) and a hazy middle-ground where peo­ple are try­ing to do all kinds of weird stuff for money, like fee-based wire­less print ser­vice in pub­lic places. The weird stuff is sys­tems inte­gra­tion, and it ought to be script­able, but it’s often attempted with poor tools and ill-prepared people.

    I don’t know of any­one that really teaches a sys­tems inte­gra­tion cur­ricu­lum, or even a course on doing weird stuff with com­put­ers. The MIT media lab is prob­a­bly a great exam­ple of sys­tems inte­gra­tion, but I don’t know if there’s a course cen­ter­ing on it and its evolution.

    Nobody com­plains about research pro­gram­mers, because they’re all bril­liant. And nobody com­plains about busi­ness sys­tems devel­op­ers, because they just need to be con­sis­tent and work in a frame­work that lets graphic design­ers do their work with­out get­ting in the way. The big noise comes from the hazy mid­dle, and there’s nobody teach­ing in that area. If you fig­ure out how, you’ll prob­a­bly con­sider it a com­pet­i­tive advantage.

  60. I’ve always said that real com­puter pro­gram­mers aren’t made… they’re born.

    Most of the top level com­puter pro­gram­mers I know don’t even have a tech­ni­cal degree: they’re music majors, patent attor­neys, Eng­lish majors… Every­one that I know that has a Com­puSci degree is ter­ri­ble at what they do.

  61. most peo­ple study com­puter sci­ence because they dont has any choice and the enroll require­ment was to low­est if com­pare to other course

  62. Ditto design­ers.

  63. I agree with your premise but I think your crit­i­cism could just as eas­ily be lev­eled at any pro­fes­sional field. Most peo­ple are lazy, and they don’t have pas­sion in their work. This isn’t some­thing that affects just the com­puter industry.

  64. The pro­gram­mer I work with is self taught– never went to school for one day– and he is absolutely fab­u­lous.
    He has worked for EDS and is now a full on pro­gram­mer for a Nat­ural Gas con­sul­tancy.
    I think what makes him good is that he keeps expand­ing his skills– and takes on projects that stretch him.
    Always learn­ing– but not once in a uni­ver­sity classroom…

  65. Hey there!

    Though I agree with most of what you said (most of the new stu­dents in my degree just goes thinks “I love to play Halo and GTA, I’ll han­dle com­put­ers!), I think you’re being too nar­row in con­sid­er­ing com­puter sci­ence = programming.

    I love to be a com­puter sci­en­tist (have an MSc, doing a PhD) and I know that I love com­put­ers, I love devel­op­ment, I love analysing and plan­ning, I love know­ing how every­thing works in the dig­i­tal, I love Win­dows, Linux and Mac OS X and yet, I don’t really love pro­gram­ming. I am not a hard­core pro­gram­mer. True, I like to code, I like to develop new soft­ware and try new tech­nolo­gies and solve dis­tinct prob­lems what novel strate­gies. But pro­gram­ming, that’s just a sub­set of com­puter science.

    I love my job. I love being a Com­puter Sci­en­tist. I (only) like pro­gram­ming. I bet there are bril­liant com­puter sci­en­tists that can’t under­stand the usage of assert() in Java and that doesn’t limit the qual­ity of their work!

  66. As Pedro has also stated, I feel that you can­not equate some­one in Com­puter Sci­ence with pro­gram­ming. Pro­gram­mers are a sub­set of Com­puter Sci­ence, and does not equate to Com­puter Science.

    As you should know, Soft­ware Engi­neer­ing is not all pro­gram­ming either. As a mat­ter of fact, pro­gram­ming is one of the eas­i­est parts of the process. I have fell in love with the art and cre­ativ­ity of soft­ware to fix prob­lems and the design process of soft­ware. I how­ever, am not in love with pro­gram­ming. I don’t hate it… but it’s apart of my job, not a pas­sion I pursue.

    There is a dif­fer­ence between a soft­ware engi­neer and pro­gram­mer, and please rec­og­nize that in your arti­cle. You con­tinue to crit­i­cize CS folks for not being good pro­gram­mers, even if they have no intent to pro­gram professionally.

    No offense intended, but this comes off as an extremely narrow-minded, arro­gant arti­cle that puts every­one in Com­puter Sci­ence in a box, when the pro­gram is meant to encom­pass many dis­ci­plines, not just programming.

  67. There is one catch: actual CS as a degree is NOT easy to get if you get a real BS of com­puter sci­ence at a decent or good uni­ver­sity. So you can’t say lousy peo­ple with CS degrees are dumb or men­tally lack­ing in any way. Any­one who can get a CS degree with good grades is a smart cookie, and could be a good pro­gram­mer if they just cared about it (mean­ing they have to have a nat­ural inter­est as well as the IQ). Also, you say “pro­gram­mers.” A lot of pro­gram­mers out there, both great and lousy ones, have degrees in every­thing under the sun except CS. I know a lot of pro­gram­mers with Infor­ma­tion Sys­tems degrees, which don’t teach squat for math or neck-deep sci­ence, and I even know plenty who don’t even have com­puter degrees.

  68. Also, I have to dis­agree with your state­ment that a good pro­gram­mer essen­tially has to be a child prodigy. 10-years-old? Fea­si­ble, but expect­ing that from every CS major is not reasonable.

  69. Work­ing in IT since you were seven? No offense, but that’s hard to believe.

  70. My grand­fa­ther bought a Tandy TRS-80 Model III in 1983 and intro­duced me to 1020-30 BASIC Pro­gram­ming when I was 6 yrs old. I’ve never done any­thing since except make myself a bet­ter pro­gram­mer. If bryan was intro­duced to IT at 7 then I was intro­duced to IT at 6. Were you using debug to type in com util­i­ties from pc com­put­ing mag­a­zines over 20 years ago? If not, get off your wall and real­ize that you may not know as much as you think you do.

  71. Yes, when i read your entry, i think yes. Because if IT is hot job so every­body fol­low. Now i study­ing in Aptech, i like have a com­puter when is a child, but when i 18 years old, lucky, i has it. I like pro­gram­ming, i like cre­ate some­thing big like game, OS, but some­time i bor­ing because to Pro­gram­ming very dif­fi­cult, some­time i don’t know what i need, Code, code again, code much but bug, error.

  72. I had a Video Genie, the poor man’s TRS-80. If you weren’t really into it the frus­tra­tion of pro­gram­ming in those days would have weede you out.

    There’s just so much pre-built stuff around now that a mediocre pro­gram­mer can get a long way before they come unstuck, and if you’re not a good pro­gram­mer your­self you’re too far into the project before you dis­cover the dif­fer­ence between the mediocre and the great.

  73. I was with you, till the end.

    I have been pro­gram­mign a LONG time pro­fes­sion­ally (25 years) and for fun before that — so I get where you are comign from… but you date your­self with the ref­er­ences to usenet and Slashdot.

    It has been a LONG time since Slash­dot was even remotely rel­e­vant to the “tech­ni­cal com­mu­nity” and even longer for Usenet. Stackoverflow.com? Sure. Twit­ter? Def­i­nitely… things change.

    When we mea­sure some­one on their skill it makes sense… when we decide they aren’t real pro­gram­mers because they don’t vir­tu­ally hang out the places we think are cool? Thats just bias.

    Ken

  74. Not that unre­al­is­tic. I ran a site at 4 and com­pleted my first pro­gram at 9.

  75. I agree entirely with this. There’s far too much empha­sis on user-friendliness. Any­one can just fire off a site with Tum­blr, a webapp with Wix, a pro­gram with Click­team, a game with Flixel. I know that this is sim­ply what hap­pened in real­ity hun­dreds of years ago and that I’ll soon be clas­si­fied a Lud­dite, but I can’t help being annoyed by the degra­da­tion of pro­gram­mers, and I haven’t even been around that long — I’m only just 13.

  76. This post is 3 years old. Stack­Over­flow wasn’t even there yet, and Twit­ter was in it’s infancy.

  77. The mark of a good pro­gram­mer, like in all fields of work, is that they never stop chal­leng­ing them­selves. They make a lot of mis­takes, but it’s those mis­takes, those fail­ures, that leads them to suc­cess and self-assurance. And they know it.

    Boat­loads of con­fi­dence helps because the more of it you have the more likely you’re to tackle new prob­lems and get back up after a failure.

  78. […] Jab­bar: Why Most Pro­gram­mers are Lousy. If you’ve ever expe­ri­ence a bad pro­gram­mer, now you know […]

  79. *lol* Yeah, sure. Says the guy who either A) has an IQ of 210 and is a VERY, VERY rare excep­tion, or B) is full of shit and toyed with com­put­ers until he actu­ally knew what he was doing much, much later.

  80. Except, no, you didn’t.

  81. Did I for­get to men­tion I’m in my mom’s womb still? Oops…

  82. As some­one who’s doing Com­puter Sci­ence (albeit the Games Tech­nol­ogy course avail­able at Charles Sturt Uni­ver­sity in Bathurst, Aus­tralia) I get a lit­tle ner­vous when I read these things.

    I don’t mind pro­gram­ming, but my biggest prob­lem is a lack of struc­ture. If there isn’t some­one giv­ing me ideas as to what kind of things I should try and pro­gram, I don’t do anything.

    On the other hand, I LOVE maths. I would pre­fer to sit in my room at uni and do maths stuff with the head­phones on than go out and drink.

    On the other hand, I know very lit­tle about the tech­ni­cal aspects of com­put­ers — and now that I think about it, a lot of the new trends have missed me by. Then again, this is what hap­pens when you spend your teenage years spend­ing 99% of your income on Warham­mer models.

    I know what RSS is, I don’t use it. I know what IRC is, I’ve just never used it or talked to any­one who has.

    Basi­cally, I think I’m ask­ing for guid­ance here on how to become a bet­ter pro­gram­mer and I sup­pose com­puter sci­en­tist in general.

    If any­one has got any­thing that can help me, shoot me an email to nerdyogre254@live.com.au.

    Per­haps this is my sec­ond wind from get­ting my Java assign­ment done, and stay­ing up all night, but I feel really moti­vated now. I sup­pose I should be thank­ful for this.

  83. I think this can be applied to any career/job a per­son does. If you don’t like what you are doing or get stuck in a field before you knew what you really wanted to do then…well you do only what you need to do to make a pay check.

  84. He said “involved with IT” which doesn’t mean he was a mas­ter at age 7. Instead of flam­ing him you should be out there get­ting “involved with Eng­lish” and maybe you can toy around for a while and get to learn the lan­guage properly.

  85. The sole pur­pose of this com­ment is to say that Wall­Mount­ed­HDD is a dis­gust­ing human being who puts down other peo­ple to feel bet­ter about himself.

    There are peo­ple out there who care deeply and pas­sion­ately about pro­gram­ming because they started at an early age. Is your per­cep­tion of pro­gram­ming so utterly dense and com­plex that you refuse to believe that it is pos­si­ble for chil­dren to get involved?

    Please. Just keep your self-esteem prob­lems to yourself.

  86. OP, it’s an inter­est­ing the­ory, but very sub­jec­tive really. If this is your com­mer­cial expe­ri­ence, then it’s your prob­lem I guess. If the pro­gram­mers you’ve worked with don’t under­stand the fun­da­men­tals of pro­gram­ming, then isn’t that down to the devel­op­ment man­ager? If you aren’t that man­ager, or don’t have any input into the hir­ing process at this point in your career, doesn’t that just reflect badly on you and your organ­i­sa­tion? Is that what you’re grumpy about? Also on the tech­ni­cal com­mu­nity issue, the ref­er­ences are just plain out of date.

    “Young peo­ple today!”.

Leave a Reply