It's All About C, The CIA Interview, & Not People Like You

  • ObiWayneKenobi 2009-01-07 11:06
    1st One: Funny.

    2nd One: Gotta love the government. Incompetence at it's best. Look at the pretty resume, he must know his stuff!

    3rd One: Yep, now we know what the Patent Office grants patents on nonsense. Real WTF is not mentioning that Computer Science IS an engineering (and math!) degree and is usually awarded by the College of Engineering.

    P.S. first!111shiftelevenitsover9000
  • DOA 2009-01-07 11:07
    Who puts HTML in their resume? Honestly!
    Not to mention DHTML... you might as well start putting Web 2.0, etc in there.

    Edit: I posted first, but ObiWayneKenobi's post was better formatted and got first place.
  • GWLlosa 2009-01-07 11:11
    I think anyone who didn't think that the formatting of your resume made at least a little bit of difference hasn't gone job-hunting recently.
  • DeLos 2009-01-07 11:12
    I always put puppies and kittens on my resume ... who doesn't love puppies and kittens?!?
  • JoJo 2009-01-07 11:17
    DeLos:
    I always put puppies and kittens on my resume ... who doesn't love puppies and kittens?!?


    I tried that, but it was hard to get them in the envelope. Plus the staples never held them very securely.

  • Anonymous Cowherd 2009-01-07 11:23
    The real WTF is that someone thinks it makes sense to write
    'C/C++'. That's about on par with 'JavaScript/Java'.
  • Robajob 2009-01-07 11:23
    "Let me show you something," the interviewer said, pulling out another résumé from his folder...
    "Just look at it," she responded...

    Good to know the CIA isn't prejudiced against cross-gendered individuals.
  • Eric 2009-01-07 11:33
    Robajob:
    "Let me show you something," the interviewer said, pulling out another résumé from his folder...
    "Just look at it," she responded...

    Good to know the CIA isn't prejudiced against cross-gendered individuals.

    It's more of a Schrödinger thing...
  • masonReloaded 2009-01-07 11:34
    Anonymous Cowherd:
    The real WTF is that someone thinks it makes sense to write
    'C/C++'. That's about on par with 'JavaScript/Java'.


    It's actually not as stupid as it looks. A recruiter/HR screener who is told "we only want applicants with C experience" might see C++ and disregard, or vice versa... and especially if we're talking about online resumes that people search for keywords.
  • Leak 2009-01-07 11:34
    DeLos:
    I always put puppies and kittens on my resume ... who doesn't love puppies and kittens?!?

    Ewww... if anything, that should be "puppies with ketchup". Just try eating one without ketchup...

    np: Tocotronic - Aber Hier Leben, Nein Danke (Kapitulation Live)
  • dubbreak 2009-01-07 11:35
    Anonymous Cowherd:
    The real WTF is that someone thinks it makes sense to write
    'C/C++'. That's about on par with 'JavaScript/Java'.


    C++ is a proper superset of C. Java and Javascript are completely unrelated to each other (syntax may look vaguely similar, but so does c# and a plethora of other languages).

    Putting JavaScript and Java together makes no sense (means the person most likely knows neither), but clumping C and C++ together does make sense. They ARE seperate skills (someone with skills in one won't necessarily have skills in the other), but the languages are directly related and it's quite easy to do a project as a mixture of the two.
  • testx 2009-01-07 11:35
    Comments unrelated to the wtf:

    1.) Don't put C down on your resume when you obviously don't know it.

    2.) The CIA guy is obviously a wtf, but I get the feeling a lot of people scoff at the idea of making their resumes look good. If you get 500 applications for a position, you're literally looking for reasons to skip reading a resume. Don't let formatting or general crappiness cause your app to be passed over.
  • Steve 2009-01-07 11:36
    #1 isn't really a WTF if they're building C/C++ modules for OKWS http://okws.org
  • James 2009-01-07 11:40
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.

    Sure this may rule out some perfectly good candidates but also some perfectly good candidates will get through along with many bad one obviously. If you apply for a popular position then you need to make sure you CV stands out before they even read it, and once they start reading it get’s their attention. Otherwise they won’t bother even reading it and hire the guy with required skills and the pointy bullet points.

    At least he/she gave them a chance to go away make it better and reapply with a fighting chance.
  • ih8u 2009-01-07 11:41
    testx:
    Comments unrelated to the wtf:

    1.) Don't put C down on your resume when you obviously don't know it.

    2.) The CIA guy is obviously a wtf, but I get the feeling a lot of people scoff at the idea of making their resumes look good. If you get 500 applications for a position, you're literally looking for reasons to skip reading a resume. Don't let formatting or general crappiness cause your app to be passed over.


    right, good formatting on a resume is a must but more from the idea of cleaning up clutter.

    as soon as you find some brain-dead recruiter who likes arrows over bullets, you'll find another that like smiley faces or thumbs up.

    skip these companies, they might be great but when the idiots with the right bullet-type character get interviewed, we get more WTFs.
  • Not A Programmer 2009-01-07 11:43
    In the case of the CIA guy, the "avoid being skipped over" issue doesn't apply. He was already looking at both resumes, but ignoring the content. It doesn't say that the poster's resume looked awful, just that it didn't adhere to some arbitrary criteria the CIA guy made up. There's no way to prepare for completely random and meaningless criteria.

    That said, I think it's a fundamental problem with our economy that so much of hiring decisions depend on factors irrelevant to the job. I don't have a fix, I just think it's unfortunate.
  • Gerhard 2009-01-07 11:43
    I'm not shocked about the C bit.. A couple of years back I wrote a comms system for multi player poker in C. I did a fairly good job and the performance was magnitudes better than several other attempts (mostly in VB or using MSSQL for comms). Next thing I know my boss wants to replace everything with C and I'm stuck trying to lower his expectations and explain why the PHP and flash apps shouldn't all be rewritten in C.
  • testx 2009-01-07 11:46
    Not A Programmer:
    In the case of the CIA guy, the "avoid being skipped over" issue doesn't apply. He was already looking at both resumes, but ignoring the content.


    He could just as easily be collecting resumes for someone else in HR to review.
  • Anonymous Cowherd 2009-01-07 11:48
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.
  • Code Dependent 2009-01-07 11:51
    Eric:
    It's more of a Schrödinger thing...
    I think the puppies and kittens would be more of a Schrödinger thing. At least, one of them.
  • BCS 2009-01-07 11:51
    I seem to recall someone giving advice on résumés and pointing out that some jobs get like 100x more applicant than they have positions and just to cut it down, some of those résumés get trashed in the first pass at a rate of about 1 a second. Never done it, never seen it done but if you have more résumés than you even have time to skim what else are you going to do?
  • rohypnol 2009-01-07 11:53
    GWLlosa:
    I think anyone who didn't think that the formatting of your resume made at least a little bit of difference hasn't gone job-hunting recently.

    You're right, it does make A BIT of difference and that BIT should stay such A LOW BIT that it normally wouldn't matter. Sure, someone with the exact same skills and looks and perfume as yours will get the job if they have arrows instead of bullet points, but TRWTF is why the hell am I bothering explaining all this?
  • blah 2009-01-07 11:53
    That's Clinton's CIA for you. Can't wait for Panetta to "change" things.
  • vt_mruhlin 2009-01-07 11:54
    They tried to get me in that patent job too. Evidently they had realized the value of having CS people on staff by that time, but they clearly had a problem with CS people getting bored and quitting.

    I think that's the real reason for the problem of wacky patents. The only people who stick around to do it are losers who can't get jobs elsewhere, or just have no motivation. Could possibly be why they didn't <i>want</i> a CS person anyway. Maybe this guy just knew you'd burn out in a few months. Of course, any other engineer probably would too, unless they scraped the bottom of the barrel and hired only civil engineers or something.
  • testx 2009-01-07 11:55
    The more I think about it, the first one isn't even necessarily a wtf (except on the interviewees part). It's an electronics manufacturer. Perhaps they were developing embedded web servers/applications for their electronics. In that case, C would be a perfectly acceptable language if not the best language.
  • Dirk Diggler 2009-01-07 11:58
    JoJo:
    DeLos:
    I always put puppies and kittens on my resume ... who doesn't love puppies and kittens?!?


    I tried that, but it was hard to get them in the envelope. Plus the staples never held them very securely.

    Remember to apply the postage manually. Kittens and Puppies will jam up the postage meter. The mail room hates that.
  • Sutherlands 2009-01-07 12:06
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.
  • DWalker 2009-01-07 12:08
    ObiWayneKenobi:
    1st One: Funny.

    2nd One: Gotta love the government. Incompetence at it's best. Look at the pretty resume, he must know his stuff!

    3rd One: Yep, now we know what the Patent Office grants patents on nonsense. Real WTF is not mentioning that Computer Science IS an engineering (and math!) degree and is usually awarded by the College of Engineering.

    P.S. first!111shiftelevenitsover9000


    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...
  • rohypnol 2009-01-07 12:12
    rohypnol:
    GWLlosa:
    I think anyone who didn't think that the formatting of your resume made at least a little bit of difference hasn't gone job-hunting recently.

    You're right, it does make A BIT of difference and that BIT should stay such A LOW BIT that it normally wouldn't matter. Sure, someone with the exact same skills and looks and perfume as yours will get the job if they have arrows instead of bullet points, but TRWTF is why the hell am I bothering explaining all this?

    Don't flame me... I wanted to explain the difference between what should be and what it is but I simply got bored before I even got to start. I've tried to explain it so many times to so many people that I gave it up a long time ago. I also knew someone who worked in HR and they got soe many resumes that they actually (as someone else said above) threw in the trash everything that wasn't pretty enough. His argument was "but if they won't even bother to make their resumes pleasant to reading, they don't deserve the job!" The problem is, some people are experts in the art of perfect resumes while some may have just written their first, but that doesn't make them less knowledgeable. On the contrary, instead of wasting time on adding *F*L*O*W*E*R*S* (I've seen one of those, for a developer position) to their resume, they might be wasting it in something that might help the possible employer.

    Sure, it's fun to work with fun people, but it's a lot more fun to work with smart people that do their job properly. I don't want to see ASCII flowers in comments, I want to see as few comments as possible, because the source code is self-documenting.
  • testx 2009-01-07 12:14
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.


    What kind of actual criteria can you get in 3 seconds? That's not enough time to actually read the resume. Do you mean stuff like reading the name, guessing the person's ethnicity, and letting your prejudices make the decision?

    If you really have an overload of applications (and there are many positions that fall in this category even in a good economy), filtering based on how the resume looks doesn't sound so bad. At the very least, it shows the person spent the time to make their resume look good.

    edit prior to posting: pretty sure the code for this website is one big wtf... so slow
  • Aris 2009-01-07 12:15
    I think the telephone is an invention already working in the US and other countries. Before spending time of two people for an interview that will fail in the minutes, you can make a basic interview by telephone, explain what you wait and listen if the guy is eligible for interview or not.
    I Got this while jobhunting, and generaly I skipped 90% of the nasty web development things through simple phone calls.
  • Code Slave 2009-01-07 12:16
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.


    Thankyou... as I said over on stackoverflow.
  • DaveAronson 2009-01-07 12:21
    testx:
    pretty sure the code for this website is one big wtf... so slow
    Obviously, it needs to be rewritten in C!
  • haruspex 2009-01-07 12:24
    rohypnol:
    "but if they won't even bother to make their resumes pleasant to reading, they don't deserve the job!"


    If a person considers text typed over lines and triangles to be pleasant to read, that person is a moron.
    Your know, black on white wasn't chosen by accident.
  • Anonymous 2009-01-07 12:24
    In regard to #2, no doubt it's a WTF to risk passing up a great candidate because you couldn't be bothered to read their drab CV. However, I wouldn't really count this as a true WTF because like it or not, this is just how life is. HR types are of limited intelligence; they need bright, bold colours to drag their attention away from their nail varnish. We all know this deep down.

    I always have a very pretty CV, it is currently fashioned in red and black type with an art-deco theme and a soft abstract background that I rendered myself specifically for it. That may sound like too much for a software developer but I would add that I have never been turned down for any position in my entire career.

    I like to think it's my experience and skill that gets me the work but there is no way I would ever rely on a plain old black and white CV.
  • Leo 2009-01-07 12:31
    I've always thought if you have a bunch of resumes, you should shuffle them randomly and immediately throw out the top half or so. This screens for luck. You don't want unlucky employees working for you, do you?

    (On the other hand, if the job you're trying to fill sucks, it might screen for luck the other way.)
  • mauhiz 2009-01-07 12:32
    I invented the comment! But my patent was refused :(
    That's why you may all post comments without paying me royalties.
  • ObiWayneKenobi 2009-01-07 12:35
    DWalker:

    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...


    Sieg heil, o Grammar Nazi!
  • blah 2009-01-07 12:36
    No grammar for you!
  • Daniel 2009-01-07 12:55
    these are my stories, and they ended up being posted on my birthday! Oh Alex, your mysterious workings worked out again.

    Captcha: appellatio. Is that like...fellatio...on an apple?
  • ruijoel 2009-01-07 12:58
    1st: if they are using C for web development, that's not a WTF. TRWTF, is that they seem to imply that they just shifted to C. We don't expect entreprises to shift to an older technology.

    2nd: Actually, it's well known that developpers are awful interface designers, so whoever has a cute CV either didn't do it himself, or can't be a true developper. So, this HR department has put itself in the position where it doesn't consider the CV of good developpers.

    3rd: erm, Computer Science is Engineering. Oh, and this WTF explains a lot about the state of patents today.

    ObiWayneKenobi:

    first!111shiftelevenitsover9000

    ROFL
  • Steve 2009-01-07 13:00
    Argh! I hate people who keep claiming that because C++ is not a proper subset of C that therefore they are completely different languages.

    Firstly, are we talking about K&R C, ANSI C, or C99(doubtful)?
    What code would you write in ANSI C that you would actually want to write that wouldn't compile in C++?

    Yes you can write crap C code that a C++ compiler won't compile, but why would you want to?

    For all intensive porpoises C++ is a superset of C.
  • Porpus 2009-01-07 13:01
    It's difficult for me to get upset or surprised about the fact that something's being written in C. To me, plain C plays the role of lingua franca in the world of programming.

    There are good reasons for this fact - C's not just an unfortunate artifact of the past. It manages to abstract the true nature of the hardware without hiding it, in a way that, uh, Anaconda, Gem, and Visual J-Widgets, for example, cannot.

    I'm not saying everything should be written in C. But during the tools selection phase of many projects, I think a good starting point is to ask "should we just do this in C?"

    And during the programmer selection process, one can ask "does this candidate know C?" and that question will basically be a proxy for "does this candidate know the basics of computer programming?
  • TheDev 2009-01-07 13:09
    Steve:
    For all intensive porpoises C++ is a superset of C.

    Homer Simpson voice: "Mmm ... intensive porpoises ..."
  • SomeCoder 2009-01-07 13:10
    Anonymous:
    In regard to #2, no doubt it's a WTF to risk passing up a great candidate because you couldn't be bothered to read their drab CV. However, I wouldn't really count this as a true WTF because like it or not, this is just how life is. HR types are of limited intelligence; they need bright, bold colours to drag their attention away from their nail varnish. We all know this deep down.

    I always have a very pretty CV, it is currently fashioned in red and black type with an art-deco theme and a soft abstract background that I rendered myself specifically for it. That may sound like too much for a software developer but I would add that I have never been turned down for any position in my entire career.

    I like to think it's my experience and skill that gets me the work but there is no way I would ever rely on a plain old black and white CV.



    This is completely a WTF. Passing over a resume because it has dots instead of arrows for bullet points is one of the biggest WTF I've ever seen and as someone who lives in America, I now fear for my safety if this is the criteria that the mighty CIA is using to select candidates.
  • Voodoo Coder 2009-01-07 13:11
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.


    Ok, but...

    For the purposes of a resume, I don't see the problem with relating the two languages. If you can write one, you can figure out the other pretty quickly, so if (as another poster pointed out), HR Guy is going off a checklist that says "C" or "C++", he will overlook a resume with the one that is not mentioned, whereas an experienced developer who sees a resume has a lot of great qualifications, with several years of C++ experience will say "Well, this guy/girl looks more than qualified, and with that experience, they will learn quickly".

    Hey, maybe tomorrow we can stop being insufferable nitpickers? At least through lunch, maybe....?

  • Yazeran 2009-01-07 13:13
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.


    Exactly. a few months ago I tried to upgrade one of our programs to C++ (an old C code for thermodynamically calculating gas compositions involving H2,H2O,CO,CO2 and CH4) in order to include it in a new interface which was to replace a Perl wrapper script. Turned out it was MUCH easier to just use the C executable as it was and call it from the C++ program when needed....
  • savar 2009-01-07 13:17
    Any interview where you have to sit in a room with other applicants is a WTF. If they don't schedule an appointment for your interview, politely decline. If you get there and there's a crowd of people you'll have to wait for, quickly exit.
  • Divide by Zero 2009-01-07 13:19
    Code Slave:
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.


    Thankyou... as I said over on stackoverflow.


    Stop trying to be obstinate. For all intents and purposes C++ is a proper superset. The is nothing wrong with writing C/C++ on a resume (while Java/Javascript is indeed wrong).

    From the IBM document in your own link (boldness emphasized by me):


    C/C++ Compatibility
    With minor exceptions, C++ is a superset of C (meaning C89, defined by ISO/IEC 9899:1990).
    Most differences stem from C++’s greater emphasis on type checking. Well-written C programs
    tend to be C++ programs as well. A compiler can diagnose every difference between C++ and C.


    and


    ‘‘Silent’’ Differences
    With a few exceptions, programs that are both C++ and C have the same meaning in both languages.
    Fortunately, these ‘‘silent differences’’ are rather obscure:


    and


    The C/C++ incompatibilities that cause most real problems are not subtle. Most are easily caught
    by compilers. This section gives examples of C code that is not C++. Most are deemed poor style
    or even obsolete in modern C.

  • clickey McClicker 2009-01-07 13:20
    At job fairs a company usually sends multiple people to talk to the prospects. Since you have to work a career fair you weasle into talking to the best person you can. You can't just say hi and give a resume especially with a small company.

    If the company isn't hiring people like you then grab the swag and go. Don't waste time on crap swag though. Go in pairs, one distracts while one grabs, take turns, make drop offs at the car when the bag is full. Some recruiters might remember you as a mooch, if you do it wrong. I now work for an awsome company. Awesome to hand me a 2% bonus last month. (economy problems are less important when you work at a company with people who work)
  • Kef Schecter 2009-01-07 13:20
    Porpus:
    It's difficult for me to get upset or surprised about the fact that something's being written in C. To me, plain C plays the role of lingua franca in the world of programming.


    Indeed, but the WTFness about it was the interviewer's "C is all the rage now!" attitude -- the way it's written, it's clear that the interviewer thinks there's something new about coding things in C and doing things in PHP, etc. is now obsolete.
  • Wizard Stan 2009-01-07 13:26
    Consider you get 100 resumes. After reading through all 100, 2 candidates stand out. One has a beautiful resume, the other is just ok. Either candidate will work out perfectly, but you spent a fair bit of time to find those 2 candidates.
    Now suppose you get 1000 resumes. Do you read all 1000 just to find the statistical 20 candidates that are a good fit for the job? I'm glad you have that much time and money to spend.
    First run, look for the nice resumes, cutting the task in half. You're down to only 500 to read through now. Still a lot, but much better than 1000. Boo hoo, you've thrown away 10 perfectly good candidates for the job. Big deal, you've still got 10 others that would be equally good. Or even better, take only the top 1/4 resumes. 250 applications to read now. You pass over 15 perfect candidates, but you've still got 5 left in that pile somewhere.
    Complain all you want about being passing up "the perfect candidate" because your resume might not look the prettiest, but remember, you're rarely ever the only perfect candidate for the job.
    And if it is the kind of job where I'm the only proper fit for the position that applied, maybe it's not the kind of place I want to work for anyway.
    That being said, arguing that arrows are better than bullets is asinine.
  • shepd 2009-01-07 13:26
    Dude, you could have easily gotten that CIA job. Your resume just needed...

    A BIT MORE COWBELL ^G^G^G
  • Jeff 2009-01-07 13:28
    I remember trying to write a *portion* (one feature) of a website using a C module (as I wasn't really a web developer and my main language was C). I did about 25% of it, thought "there must be an easier/better way". I then rewrote it in PHP. Even learning the language from scratch, I developed it a LOT faster and managed to add a lot more features by the same deadline :)

  • Tom Woolf 2009-01-07 13:39
    About #2...

    While searching through resumes for technical writers, I ran across one that had a bunch of bells and whistles. WordArt was apparently the applicant's favorite tool.

    The resume had about 15 different fonts, a mixture of bold, italics, underlines, etc. The thing that stood out the most on the resume was the phrase "I'm a lean, mean, tech-writing machine!" vertically in the margins.

    It reminded me of the class I was TA for in college many years ago, where the professor required we grade on the number of font changes on a document rather than how the document actually looked (it was a beginning computer class, and the assignment was a first use of a word processing program).

    Pretty does not mean quality (or qualified)...
  • Eric 2009-01-07 13:39
    Porpus:
    It's difficult for me to get upset or surprised about the fact that something's being written in C. To me, plain C plays the role of lingua franca in the world of programming.

    There are good reasons for this fact - C's not just an unfortunate artifact of the past. It manages to abstract the true nature of the hardware without hiding it, in a way that, uh, Anaconda, Gem, and Visual J-Widgets, for example, cannot.

    I'm not saying everything should be written in C. But during the tools selection phase of many projects, I think a good starting point is to ask "should we just do this in C?"

    And during the programmer selection process, one can ask "does this candidate know C?" and that question will basically be a proxy for "does this candidate know the basics of computer programming?
    This touches on something that I think about on occassion as a programmer (for reference, I started with C++ and now work with .NET). As I progress, the tools I use, and likely the tools I will use in the future, increasingly separate me from the hardware that runs the programs I write. I wonder how much more efficient my programs could be in a language like C++; on the other hand, there's the question of whether they actually need to be more efficient at all, which brings into play Moore's Law. I haven't had any poignant thoughts on the matter, personally, but ocassionally it bothers me.
  • IT Girl 2009-01-07 13:44
    testx:
    Sutherlands:
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.


    What kind of actual criteria can you get in 3 seconds? That's not enough time to actually read the resume. Do you mean stuff like reading the name, guessing the person's ethnicity, and letting your prejudices make the decision?

    If you really have an overload of applications (and there are many positions that fall in this category even in a good economy), filtering based on how the resume looks doesn't sound so bad. At the very least, it shows the person spent the time to make their resume look good.

    edit prior to posting: pretty sure the code for this website is one big wtf... so slow


    I've been on the receiving end of more resumes than one really wants to look at and it is possible to tell something about a resume very quickly. The first thing I looked for is exactly what the interviewee in question did in the story. That is, a section that just listed skillsets. Anyone who didn't have a quick reference to their skillsets was set on the "look at if you get time and there's no one skilled in the other pile" pile.

    I've never dumped a CS CV for not being pretty enough, but I have dumped a secretary's CV for that reason. It's all a question of what skillsets you're looking for and let's face it, a good coder doesn't need to know how to make a resume pretty.
  • blah 2009-01-07 13:49
    Tom Woolf:
    Pretty does not mean quality (or qualified)...
    More importantly, immense variety rarely ever means pretty or pleasing. Those people have no sense of aesthetics.
  • Steve 2009-01-07 13:50
    When .NET CF was first released for PDAs I did some performance tests of C# vs an app I wrote in C++. C# was something like 10-100 times slower for the things I needed to do :-(, worse than that, I wrote a very basic RDP & VM in C++ that was between 2-50 times faster than .NET CF.
    Needless to say most of my PDA code is still written in C/C++ :-) (I have not benchmarked latest .NET CF release...)

    On the desktop, our code is split about 50/50 between C++ & C#.
  • Neeneko 2009-01-07 13:51
    [quote user="dubbreak"]
    [quote]C++ is a proper superset of C. Java and Javascript are completely unrelated to each other (syntax may look vaguely similar, but so does c# and a plethora of other languages).
    [/quote]

    Not entirely accurate. C++ is almost a superset of C, but there are C programs that will not compile under C++ because the changed those aspects of the language.

    Objective C is a true superset though.
  • Smash King 2009-01-07 13:51
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.
    I disagree. I have never used or studied C++, but I often see C++ WTFs here and can fully understand them. It would take me just a few hours to grasp the differences, receive the official title of CPP programmer and start on the new project.
    I think a nice analogy is playing acoustic guitar and electric guitar. You can play almost anything you do in one with the other, but if you need to use vibrato or harmonics or pull the distortion lever on an acoustic guitar you're stuck.
  • anon 2009-01-07 13:53
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.


    I always go through a stack of resumes and throw away every other one. I mean, who wants to hire someone that is unlucky?
  • Rufus Brown 2009-01-07 13:58
    Founded and headquartered in the Netherlands? Sounds like Philips to me...
  • Steve 2009-01-07 13:59
    Smash King:
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.
    I disagree. I have never used or studied C++, but I often see C++ WTFs here and can fully understand them. It would take me just a few hours to grasp the differences, receive the official title of CPP programmer and start on the new project.
    I think a nice analogy is playing acoustic guitar and electric guitar. You can play almost anything you do in one with the other, but if you need to use vibrato or harmonics or pull the distortion lever on an acoustic guitar you're stuck.


    I would say that a good C++ programmer can write good C code straight away. A good C programmer can pick up C++ quickly but would need to learn the ++ part of the language/std library.
  • WayneCollins 2009-01-07 14:02
    C++ itself has been progressing as well, with more compliant compilers available and more libraries available. Boost in particular makes C++ a lot more usable and productive to code in.
  • yaff 2009-01-07 14:03
    ruijoel:


    3rd: erm, Computer Science is Engineering. Oh, and this WTF explains a lot about the state of patents today.



    I have to balk at that. CS is not Engineering. It's much closer to Math - a science. Now, there is a Computer Engineering as a major, and I suspect that many CS grads do much more hands-on architectural work as a profession. But, CS people and CpE people think VERY differently about problems. They've been trained that way.
  • Neeneko 2009-01-07 14:07
    Steve:
    Argh! I hate people who keep claiming that because C++ is not a proper subset of C that therefore they are completely different languages.

    Firstly, are we talking about K&R C, ANSI C, or C99(doubtful)?
    What code would you write in ANSI C that you would actually want to write that wouldn't compile in C++?

    Yes you can write crap C code that a C++ compiler won't compile, but why would you want to?

    For all intensive porpoises C++ is a superset of C.


    Who said they are completely different? They are an overlapping set, C++ derives from C, but it is by no means a superset. And simply writing off any difference as 'crap C' codes doesn't help your case.

    Some of the biggest differences are 'under the hood' in ways the fundamentally effect how you can interact with the language. Even if a C++ complier compiles a C program that does not mean it will behave the same way. When dealing with binary data, metaprograming, self-aware programs, or any other low level operation these differences can make a big deal.

    So what you are really saying is they are not different in any way that is useful to YOU therefor they are the same.
  • Neeneko 2009-01-07 14:12
    Steve:

    I would say that a good C++ programmer can write good C code straight away. A good C programmer can pick up C++ quickly but would need to learn the ++ part of the language/std library.


    I have to disagree. I've found that good C++ programmers THINK they are writing good C code, but often they don't. I used to work in a mixed C and C++ environment and sometimes got headaches when the C++ programmers tried to 'help' on sections of C code. They were bright programmers who really know thier C++ stuff but they just didn't think of the types of problems you encounter in C or how to deal with them. It got esp messy when try tried resource management, overloading, or polymorphisms.. things that are done magically for you in C++ but you have to do them manually in C.

    Now granted with had similiar problems when it came to the pure C programmers trying to help in C++ code.... usually they were unaware of all the things the language helps you with and thus kept doing things the "C" way... or they discovered a useful feature and used it to death rather then were it was appropriate.
  • halcyon1234 2009-01-07 14:18
    "Let me show you something," the interviewer said, pulling out another résumé from his folder


    w?t?f?

    So a dude from the CIA-- a agency whose job is to maintain and protect secrets-- just grabs someones private information and shows it to a random stranger?

    "Hey, buddy. Ever seen a cipher key? It's so cool! You should make all yours like it."
  • Steve 2009-01-07 14:21
    Neeneko:
    Steve:
    Argh! I hate people who keep claiming that because C++ is not a proper subset of C that therefore they are completely different languages.

    Firstly, are we talking about K&R C, ANSI C, or C99(doubtful)?
    What code would you write in ANSI C that you would actually want to write that wouldn't compile in C++?

    Yes you can write crap C code that a C++ compiler won't compile, but why would you want to?

    For all intensive porpoises C++ is a superset of C.


    Who said they are completely different? They are an overlapping set, C++ derives from C, but it is by no means a superset. And simply writing off any difference as 'crap C' codes doesn't help your case.

    Some of the biggest differences are 'under the hood' in ways the fundamentally effect how you can interact with the language. Even if a C++ complier compiles a C program that does not mean it will behave the same way. When dealing with binary data, metaprograming, self-aware programs, or any other low level operation these differences can make a big deal.

    So what you are really saying is they are not different in any way that is useful to YOU therefor they are the same.


    I disagree, can you give an actual example? (I will assume that you are talking about ANSI C and the current C++ standard.)

    C++ is definitely more useful for me than C, but can you show me an actual example of a C program with fundamental under the hood differences?
  • Steve 2009-01-07 14:24
    Neeneko:
    Steve:

    I would say that a good C++ programmer can write good C code straight away. A good C programmer can pick up C++ quickly but would need to learn the ++ part of the language/std library.


    I have to disagree. I've found that good C++ programmers THINK they are writing good C code, but often they don't. I used to work in a mixed C and C++ environment and sometimes got headaches when the C++ programmers tried to 'help' on sections of C code. They were bright programmers who really know thier C++ stuff but they just didn't think of the types of problems you encounter in C or how to deal with them. It got esp messy when try tried resource management, overloading, or polymorphisms.. things that are done magically for you in C++ but you have to do them manually in C.

    Now granted with had similiar problems when it came to the pure C programmers trying to help in C++ code.... usually they were unaware of all the things the language helps you with and thus kept doing things the "C" way... or they discovered a useful feature and used it to death rather then were it was appropriate.


    They can't be very good C++ programmers if they can't write decent C code. Seriously, I'd like to see some pure C code that a C++ programmer wouldn't understand.
  • Paul 2009-01-07 14:25
    Just so I get the CIA WTF - the person who was in charge of resume receiving gave the person criteria (pointless criteria from our POV) by which their resume would be considered - and - this is a bad thing?

    So what if the criteria was pointless/meaningless/useless - a specification was given to someone who, perhaps, would be given a large responsibility and strict legal requirements for their position and have access to sensitive, critical and personal information for the citizens of the country - and they didn't want to comply?

    Given I dislike the government, I seriously doubt they thought this deep in to the situation, but, it would be an interesting way to filter out people who will be subject to stupid laws (written by congress) and be unable to grasp their compliance is required in order to achieve the goals of the organization.

    All the applicant was asked to do was to get a pattern paper to print their resume and add some graphically interesting features to it. Not really a huge obstacle. Compared to the legal requirements in intelligence collecting agencies with the bill of rights and international laws... (ok, I don't assume they *follow* the laws, just that they exist and they need to cover up when the violate them...)

    Having said that - yeah, pretty stupid....
  • 5|i(3_x 2009-01-07 14:34
    Smash King:

    I think a nice analogy is playing acoustic guitar and electric guitar. You can play almost anything you do in one with the other, but if you need to use vibrato or harmonics or pull the distortion lever on an acoustic guitar you're stuck.


    Guitar troll? Enjoy your feeding:
    --You can add a bit of vibrato to an acoustic with your fretting hand although I've never seen an acoustic with a tremolo ('whammy') bar http://www.youtube.com/watch?v=WiI1maWrZHo.
    --You can still play harmonics on an acoustic guitar http://www.youtube.com/watch?v=laKU2ptXJ6Y.
    --Most electric guitars do not have built-in effects but outboard effects could also be engaged on an acoustic. I'll call this one imprecise rather than inaccurate.

    Barring a few details though, I think your analogy works.
  • Code Dependent 2009-01-07 14:36
    testx:
    What kind of actual criteria can you get in 3 seconds?
    Given that a resume should be one page in length, in three seconds I can get:

    Skill set
    Education
    What was last job
    How many jobs, and how long at each one

    That's enough to know in which pile this resume goes.

    Okay, maybe it would take five seconds.
  • Mike 2009-01-07 14:37
    Steve:
    I disagree, can you give an actual example? (I will assume that you are talking about ANSI C and the current C++ standard.)

    C++ is definitely more useful for me than C, but can you show me an actual example of a C program with fundamental under the hood differences?


    I suspect this is far less significant of an example than you are looking for but in C (I could be wrong about the specifics, its been some time since I dealt with this :)) enums are actually integers that can be incremented through with the ++ operator. In C++ this is not true.

    In our system we have some low level C modules while everything else is C++. Someone had the bright idea that for testing they could just add the pp to the .c extension for testing the .c modules but for this reason the module failed the test (or may have just failed to compile)...
  • shadowman 2009-01-07 14:39
    C'mon, prospective web developers! It's so simple maybe you need a refresher course. It's all ball bearings nowadays!
  • Neeneko 2009-01-07 14:43
    Steve:

    I disagree, can you give an actual example? (I will assume that you are talking about ANSI C and the current C++ standard.)

    C++ is definitely more useful for me than C, but can you show me an actual example of a C program with fundamental under the hood differences?


    The classic one is loadable modules. Not linking to an .so but actually loading object code at runtime. In C the function names are predictable strings while in C++ they are mangled. Under GCC at least there is no way to ask 'if I have a function that takes these parameters, what is it's managed string equivalent?'. So any C code that uses loaded modules will fail when compiled as C++.

    Any time you need to know stack details (frame format, backtrace data, i.e. runtime debugging) c++ also produces different code that will likely not work.

    They also handle enums slightly differently. C++ tries to scale the enum while C gives it a fixed size. This can make a difference when overlaying structs onto binary data (big deal in drivers, audio/video/sensor decoding, anything with memory mapped I/O).
  • Dirk Diggler 2009-01-07 14:48
    anon:
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.


    I always go through a stack of resumes and throw away every other one. I mean, who wants to hire someone that is unlucky?
    I only keep the resumes that have a $20 bill paper clipped to them. (But I deduct points if the paper clip is plastic or on the wrong corner.)
  • Neeneko 2009-01-07 14:50
    Steve:

    They can't be very good C++ programmers if they can't write decent C code. Seriously, I'd like to see some pure C code that a C++ programmer wouldn't understand.


    Oh they understand it, but people trained to rely on things like constructors/destructors doing all thier inits and cleanups for them tend to make a lot of mistakes when having to sit and manage their data manually.

    They also tend to forget that the language will not stop them from doing odd things (like calling a function with prototype foo(int bar) via foo("hello world!") since C functions do not carry type data with them).

    Such programmers understand the literal code, but they don't understand the pitfalls. Nor do they tend to know the classic C ways of solving problems and thus to not recognize say, an object in C or how a macro differs in use and behavior from a template.

    C++ has more tools, so it tends to have different solutions. And just because someone knows a language well and knows the syntax of another language doesn't mean they will magically know how to use the language well.
  • Brian C 2009-01-07 14:51
    SomeCoder:
    This is completely a WTF. Passing over a resume because it has dots instead of arrows for bullet points is one of the biggest WTF I've ever seen and as someone who lives in America, I now fear for my safety if this is the criteria that the mighty CIA is using to select candidates.


    Its not the CIA thinks this makes better agents, if thier final reports don't look the same way with pretty colors and bullets the politicians will never read them... you know how congress members like their shiny objects and pretty pictures.
  • Daniel 2009-01-07 14:53
    To respond to the many criticisms of post #1 on this story:

    HTML/DHTML are in there because they were still a big deal at the time. Also this was my first job out of college, I was attempting to take up space.

    The job posting for this company was very specific about developing "web sites," another reason why web languages and web markup were pushed to the top of the list.

    C/C++ were lumped together specifically because recruiters are stupid and I didn't want to confuse them.
  • Code Dependent 2009-01-07 14:56
    Dirk Diggler:
    I only keep the resumes that have a $20 bill paper clipped to them.
    Wow, a twenty dollar interview whore. Who knew?
  • Daniel 2009-01-07 14:57
    Oh, and I do know C and C++, which is why they're on my resume. I don't LIKE them, which is why I applied for a web programming job. I was attempting to downplay my C skills so that she wouldn't shove me into an embedded programming applicant pile, and was completely taken aback when she declared that C was the next Spice Girls.
  • Anonymous Cowherd 2009-01-07 15:03
    The following is a legal C program that will not compile with a C++ compiler:


    #include <stdlib.h>

    struct S
    {
    int x;
    };

    int main(int argc, char * argv[])
    {
    struct S * f = malloc(sizeof(struct S));
    free(f);
    }


    Are you seriously telling me C programmers never use malloc?
  • soup 2009-01-07 15:03
    What's ironic is that the CIA is probably one of the first organizations in the world to use OCR technology. I would have thought that most HR departments these days use it to scan resumes, especially for technical positions.

    I better update my triangle skills (and add that skill to my resume, of course.)
  • Neeneko 2009-01-07 15:04
    Daniel:

    C/C++ were lumped together specifically because recruiters are stupid and I didn't want to confuse them.


    *nods* which unless the company is specifically looking for a C specialist makes perfect sense. 99.99% of the time writing C/C++ is the way to describe one's skillset.

    And that remaining .01% of the time, any company that doesn't suck will include in the posting that they want C as a separate skill.
  • Bill 2009-01-07 15:05
    No word of a lie: I once got interviewed because I had a cartoon pig on my application letter. As they told me later: "We couldn't find anybody and then I said, "Why don't we call that guy with the pig on his resume?"... and the rest is history...
  • 01001001011101000010011101110011001000000110110101100101 2009-01-07 15:06
    DOA:
    Who puts HTML in their resume? Honestly!
    Not to mention DHTML... you might as well start putting Web 2.0, etc in there.

    Edit: I posted first, but ObiWayneKenobi's post was better formatted and got first place.


    What makes you think they don't? I frequently interview for web developer positions and I see "web 2.0", ajax, XML (as a language), etc all the time. Then you ask them an actual question about javascript and you get an answer like "I just write code in JavaScript, I don't try to understand it."

    And yes that is an actual quote from an interviewee. The interview ended shortly thereafter.....
  • Neeneko 2009-01-07 15:06
    Anonymous Cowherd:

    Are you seriously telling me C programmers never use malloc?


    To many this would simply be an example of 'crap C' since C++ makes a very big deal about compile time type checking. C++ would probably dropped void pointers completely if they could get away with it.

    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).
  • Franz Kafka 2009-01-07 15:07
    halcyon1234:

    So a dude from the CIA-- a agency whose job is to maintain and protect secrets-- just grabs someones private information and shows it to a random stranger?


    1. It's a resume - hardly secret
    2. the CIA only protects its own secrets.

    Neeneko:

    They also tend to forget that the language will not stop them from doing odd things (like calling a function with prototype foo(int bar) via foo("hello world!") since C functions do not carry type data with them).


    It will stop them if the have prototypes in their header file - a warning about inconsistent declarations is good as an error. Of course, you can just create a prototype for the function with the wrong arguments and call that - it'll work until you try to run it.
  • Steve 2009-01-07 15:09
    Neeneko:
    Steve:

    I disagree, can you give an actual example? (I will assume that you are talking about ANSI C and the current C++ standard.)

    C++ is definitely more useful for me than C, but can you show me an actual example of a C program with fundamental under the hood differences?


    The classic one is loadable modules. Not linking to an .so but actually loading object code at runtime. In C the function names are predictable strings while in C++ they are mangled. Under GCC at least there is no way to ask 'if I have a function that takes these parameters, what is it's managed string equivalent?'. So any C code that uses loaded modules will fail when compiled as C++.

    Any time you need to know stack details (frame format, backtrace data, i.e. runtime debugging) c++ also produces different code that will likely not work.

    They also handle enums slightly differently. C++ tries to scale the enum while C gives it a fixed size. This can make a difference when overlaying structs onto binary data (big deal in drivers, audio/video/sensor decoding, anything with memory mapped I/O).


    Ok my responses fwiw :-)
    I never use enums when an explicit size needs to be used, instead I cast the value to int or whatever first and use that. So yes I agree that enum sizes are different but when passing data between systems I would not use enums directly.

    For function names that need to be exposed I use extern "C" {...}

    Regarding stack details, both use the cdecl calling convention by default. You can usually ask the compiler to change calling conventions/frame format etc if you need specific settings.
  • Anon 2009-01-07 15:10
    Brian C:
    SomeCoder:
    This is completely a WTF. Passing over a resume because it has dots instead of arrows for bullet points is one of the biggest WTF I've ever seen and as someone who lives in America, I now fear for my safety if this is the criteria that the mighty CIA is using to select candidates.


    Its not the CIA thinks this makes better agents, if thier final reports don't look the same way with pretty colors and bullets the politicians will never read them... you know how congress members like their shiny objects and pretty pictures.


    You actually think congressman read any of those reports rather than getting four sentence summaries from their staff?
  • fred 2009-01-07 15:11
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).

    This is why Jesus invented uintptr_t.
  • Steve 2009-01-07 15:12
    Anonymous Cowherd:
    The following is a legal C program that will not compile with a C++ compiler:


    #include <stdlib.h>

    struct S
    {
    int x;
    };

    int main(int argc, char * argv[])
    {
    struct S * f = malloc(sizeof(struct S));
    free(f);
    }


    Are you seriously telling me C programmers never use malloc?


    Are you seriously telling me you couldn't write that so it wouldn't compile in both C & C++?
  • Anonymous Cowherd 2009-01-07 15:17
    Steve:
    Are you seriously telling me you couldn't write that so it wouldn't compile in both C & C++?

    Of course I could. The point is, though, that C++ is not a superset of C. There are lots of things that are legal in C that are not legal in C++. The two are different languages, and the only reason C++ retains many of C's more braindead misfeatures is to allow programmers to carry on using Unix headers. See the 'struct stat' vs stat(2) mess for a perfect example.
  • Beldar the Phantom Replier 2009-01-07 15:18
    One booth that looked particular interesting was the CIA's...

    How exact would one go about making something of particular interesting?
  • Neeneko 2009-01-07 15:26
    fred:

    This is why Jesus invented uintptr_t.


    Heh. Good point. If those typedefs are avaiable on your system that gives you a good platform independent way to work with a pointer.
  • Steve 2009-01-07 15:29
    Anonymous Cowherd:
    Steve:
    Are you seriously telling me you couldn't write that so it wouldn't compile in both C & C++?

    Of course I could. The point is, though, that C++ is not a superset of C. There are lots of things that are legal in C that are not legal in C++. The two are different languages, and the only reason C++ retains many of C's more braindead misfeatures is to allow programmers to carry on using Unix headers. See the 'struct stat' vs stat(2) mess for a perfect example.


    To quote some book written by some random people:

    The question of the type declaration for a function like malloc is a vexing one for any language that takes its type-checking seriously. In C, the proper method is to declare that malloc returns a pointer to void, then explicitly coerce the pointer into the desired type with a cast.



    So you should really be casting that malloc...
  • Neeneko 2009-01-07 15:31
    Steve:

    I never use enums when an explicit size needs to be used, instead I cast the value to int or whatever first and use that. So yes I agree that enum sizes are different but when passing data between systems I would not use enums directly.


    Normally neither would I (I prefer the various u16 s32 etc style typedefs or macros) but it is a difference that can cause things to fail in subtle ways. I have encountered enums used in raw network packets that broke because of this.


    For function names that need to be exposed I use extern "C" {...}


    Yep, that is the general solution. Not saying the issues can't be worked around.. one can always extern the prototypes or entire blocks of code (externing then wrapping dlsym stuff is common). But my point was that C code as written, while still correct enough to compile, will fail at runtime if compiled as c++.

  • Metalehad 2009-01-07 15:32
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?
  • Steve 2009-01-07 15:40
    Neeneko:
    Steve:

    I never use enums when an explicit size needs to be used, instead I cast the value to int or whatever first and use that. So yes I agree that enum sizes are different but when passing data between systems I would not use enums directly.


    Normally neither would I (I prefer the various u16 s32 etc style typedefs or macros) but it is a difference that can cause things to fail in subtle ways. I have encountered enums used in raw network packets that broke because of this.


    For function names that need to be exposed I use extern "C" {...}


    Yep, that is the general solution. Not saying the issues can't be worked around.. one can always extern the prototypes or entire blocks of code (externing then wrapping dlsym stuff is common). But my point was that C code as written, while still correct enough to compile, will fail at runtime if compiled as c++.



    I definitely agree that you can get C code that will compile as C++ but will not run. But I still maintain that generally, decent C code can be compiled as C++ with little to no modifications because often, the bits that break in C++ can be done better in C anyway.
  • Rex Kerr 2009-01-07 15:40
    C++ is a proper superset of C.


    No it's not.

    No implicit void* conversions
    C99 allows dynamic arrays on the stack, C++ does not
    Valid variables names in C code are reserved words in C++

    etc...
  • Zylon 2009-01-07 15:42
    "United Stated"?

    Also, C/C++ nerds STFU and go get a room already.
  • Squire 2009-01-07 15:43
    Eric:
    I wonder how much more efficient my programs could be in a language like C++; on the other hand, there's the question of whether they actually need to be more efficient at all, which brings into play Moore's Law.


    Computer hardware is cheap, programmers' time is valuable. If something can be produced in a fraction of the time in a managed language, with fewer bugs, it is a net win. See Rico Mariani's Performance Tidbits. It took 5 versions of unmanaged optimizations (and one bug fix) to equal the speed performance of the first managed version. Only after the 6th (and final) unmanaged optimization did the unmanaged version get faster. And one might question whether a drop from 0.093 seconds (optimized managed version) to 0.062 seconds (optimized unmanaged version) for this particular task provides any value.

    The real cost of the managed version is revealed here:

    So, the summary is that the unmanaged code solved this problem in about 2.6M total wheras the managed code used a total of about 8.1M. That's the real cost of managed code -- it's measured in space. The total marginal cost is about 5.5M


    The entire series is available here.

    Obviously you can not conclude too much from the result of just this one benchmark, since it would be trivial to provide examples where managed languages are slower, but it does demonstrate, in a thoughtful and detailed way, that even a poorly coded managed application can compete with an optimized unmanaged application in terms of speed, even taking into account the startup overhead of the managed environment.
  • Steve 2009-01-07 15:44
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?


    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.
  • Steve 2009-01-07 15:45
    Rex Kerr:
    C++ is a proper superset of C.


    No it's not.

    No implicit void* conversions
    C99 allows dynamic arrays on the stack, C++ does not
    Valid variables names in C code are reserved words in C++

    etc...


    I wouldn't bring C99 into it. You do realise that breaks half of the "things that work in C but not C++" bits.
  • Befuddled 2009-01-07 15:51
    When I recruit, if I'm getting 10+ CVs a day I'm binning anything that isn't very well presented to cut down the time I spend reading them. It's the easiest field narrower, if you can't get one simple short document about content you know intimately correct and readable and figure out how to use a spelling and grammar check then I don't need you. That does happen after HR or whichever geek pimp we're paying too much have filtered out those without the right skills though so I don't end up interviewing Word jockeys.

  • Neeneko 2009-01-07 15:52
    Squire:

    Obviously you can not conclude too much from the result of just this one benchmark, since it would be trivial to provide examples where managed languages are slower, but it does demonstrate, in a thoughtful and detailed way, that even a poorly coded managed application can compete with an optimized unmanaged application in terms of speed, even taking into account the startup overhead of the managed environment.


    In other words, use the right tool for the right job ^_~

    The first false assumption is 'hardware is cheap, programmers are expensive'. This is often (possibly usually) the case, but not always. Number crunching (scientific software, economic analysis, MRIs, etc) time is money and every millisecond you can squeeze out translates to big gains.

    I can recall spending 9 months taking a single task from 20ms to 1ms per iteration. That was my task for those 9 months and getting that time down saved WAY more money then my salary. In fact, every millisecond shaved off equaled more then my salary for the year.. so even going from 20ms to 19ms would have been worth 12 months of my time to the beancounters.
  • Steve 2009-01-07 15:57
    Neeneko:
    Squire:

    Obviously you can not conclude too much from the result of just this one benchmark, since it would be trivial to provide examples where managed languages are slower, but it does demonstrate, in a thoughtful and detailed way, that even a poorly coded managed application can compete with an optimized unmanaged application in terms of speed, even taking into account the startup overhead of the managed environment.


    In other words, use the right tool for the right job ^_~

    The first false assumption is 'hardware is cheap, programmers are expensive'. This is often (possibly usually) the case, but not always. Number crunching (scientific software, economic analysis, MRIs, etc) time is money and every millisecond you can squeeze out translates to big gains.

    I can recall spending 9 months taking a single task from 20ms to 1ms per iteration. That was my task for those 9 months and getting that time down saved WAY more money then my salary. In fact, every millisecond shaved off equaled more then my salary for the year.. so even going from 20ms to 19ms would have been worth 12 months of my time to the beancounters.


    That's pretty cool :-)

    I've just had to go and rewrite some code that was working on the hardware is cheap mentality. Unfortunately hardware doesn't scale up as fast as the "algorithms" used in the code.
  • halcyon1234 2009-01-07 16:00
    Two guys who won't shut up:

    c++ blah blah blah superset blah blah blah


    {sigh}

    Stroustrup: The Motherfucker Who Wrote The Fucking Language:

    Is C a subset of C++?
    In the strict mathematical sense, C isn't a subset of C++. There are programs that are valid C but not valid C++ and even a few ways of writing code that has a different meaning in C and C++.

    - http://public.research.att.com/~bs/bs_faq.html#C-is-subset

    Now shut up, the both of yous.
  • WhiskeyJack 2009-01-07 16:03
    halcyon1234:


    Now shut up, the both of yous.


    +1

    Thanks.
  • Classy 2009-01-07 16:09
    Obviously the way to make your CV stand out is to put your name in WordArt on every page.
  • neophrene 2009-01-07 16:11
    Steve:
    I wouldn't bring C99 into it. You do realise that breaks half of the "things that work in C but not C++" bits.


    hu? you can't be serious. 1% maybe. Let's say 10% to have some margin. Not the half.

    I've read sooner that your reference is "The C programming language" 2nd edition. Despite all the respect I have for its authors, C has evolved. You should consider reading seriously the ISO C99 standard (and _not_ an informal book, which is just OK to begin but always has serious pitfalls for careful and serious programming). You would learn that C++ is not at all a superset of C anymore, even when not considering obvious superficial differences like void *, enums, and variable-length arrays.
  • Franz Kafka 2009-01-07 16:13
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).

    This is why Jesus invented uintptr_t.


    Nah, Knuth gave us char*, which is almost always size 1.
  • Steve 2009-01-07 16:26
    neophrene:
    Steve:
    I wouldn't bring C99 into it. You do realise that breaks half of the "things that work in C but not C++" bits.


    hu? you can't be serious. 1% maybe. Let's say 10% to have some margin. Not the half.

    I've read sooner that your reference is "The C programming language" 2nd edition. Despite all the respect I have for its authors, C has evolved. You should consider reading seriously the ISO C99 standard (and _not_ an informal book, which is just OK to begin but always has serious pitfalls for careful and serious programming). You would learn that C++ is not at all a superset of C anymore, even when not considering obvious superficial differences like void *, enums, and variable-length arrays.


    I have read the C99 standard. Which is why in my previous posts I asked whether posters where talking about K&R C, ANSI C or C99... because they are all different.
    ANSI C is most likely to compile as C++ and C++ written in a C style is most likely to compile in C99.

    And yes I exaggerated about C99 breaking half the things but most people's claim the C has all these differences to C++ is incorrect. If you write that sort of C code it will probably break if you use a C99 compiler.
  • Steve 2009-01-07 16:28
    Franz Kafka:
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).

    This is why Jesus invented uintptr_t.


    Nah, Knuth gave us char*, which is almost always size 1.


    Almost never :-),
    sizeof(char) perhaps?
  • Neeneko 2009-01-07 16:29
    halcyon1234:

    Stroustrup: The Motherfucker Who Wrote The Fucking Language:

    Is C a subset of C++?
    In the strict mathematical sense, C isn't a subset of C++. There are programs that are valid C but not valid C++ and even a few ways of writing code that has a different meaning in C and C++.

    - http://public.research.att.com/~bs/bs_faq.html#C-is-subset


    Ugh. That old faq. yeah, real great perspective there. It makes me wonder how much C this person _really_ programmed in vs 'I could do this better!'. Claiming he needed to develop a whole new language to get generic programming, OOP, and data abstraction really makes me wonder how he was using C since it has all of those things. C++ makes these things easier (most of the time) and safer (pretty much all of the time) but it does not add any actual new expressive power.

    And of course all the "C is never better then C++ under any circumstances" are just dripping with lack of perspective. To this day C++ does not have the flexibility (without lots of extra code) of C in things like polymorphism. Runtime modification of classes in C++ has always been a pain unless you add wrapper syntax at which point you are back to the C method but with more code (and symbol table clutter).


  • Thogu 2009-01-07 16:33
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.


    That's two seconds more than the first screen has....

    End of the day, I don't really think pretty little flowers in the borders makes much difference - but if it doesn't make a difference, why not do it just in case it does?
  • ?%^$ 2009-01-07 16:35
    DWalker:
    ObiWayneKenobi:
    1st One: Funny.

    2nd One: Gotta love the government. Incompetence at it's best. Look at the pretty resume, he must know his stuff!

    3rd One: Yep, now we know what the Patent Office grants patents on nonsense. Real WTF is not mentioning that Computer Science IS an engineering (and math!) degree and is usually awarded by the College of Engineering.

    P.S. first!111shiftelevenitsover9000


    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...


    Shouldn't that be " its' "?
  • Chris 2009-01-07 16:48
    testx:
    Sutherlands:
    James:
    I'm going to defend the guy/girl in the 2 one. Like they said they had a folder full of applications already. Let’s face it they aren't going to read them all and a 1st "screening" of how good the CV looks is as good a “random” filtering process as any.
    Are you... trying to say that the first screen should be... random??? It's really not hard to glance at a resume for about 3 seconds and decide if it's going to make some first cut based on ACTUAL criteria, not how the resume looks.


    What kind of actual criteria can you get in 3 seconds? That's not enough time to actually read the resume. Do you mean stuff like reading the name, guessing the person's ethnicity, and letting your prejudices make the decision?

    If you really have an overload of applications (and there are many positions that fall in this category even in a good economy), filtering based on how the resume looks doesn't sound so bad. At the very least, it shows the person spent the time to make their resume look good.

    edit prior to posting: pretty sure the code for this website is one big wtf... so slow


    Makes good sense for HR because it reduces their workload....

    Wouldn't it make more sense to read thoroughly through resumes as they arrive. You don't need to get through all of them, only until you find one (or a few) that you like.

    Does this get the best candidate? Not necessarily.
    Does this have a better chance of getting a good candidate than judging whose puppies are the cutest? Probably.

    Of course thios advantages people who get their resumes in reasonably early (although you could randomly read ones until you find one - if you could mix them up sufficiently well to be random).

    Someone once told me the key to getting a DoD job was to apply every month - even if they weren't advertising.
    Every resume would go into a big bucket, and when they decided they needed someone, they would start looking at resumes until they found one.
    The trick was to make sure you had one sufficiently near the top.

    I must say, part of me agrees that it's difficult for people to sort through 1000s of resumes for several positions, but the other part wonders why is there a HR industry? Companies have developed HR departments, and gradually HR Specific Companies have developed. I have always thought HR departments were largely unnecessary - and this type of attitude of randomly (or at least pseudo-randomly) picking the best candidate seems to confirm that HR departments are unnecessary.
    Every time a company does lay-offs, who are the first to go? HR, Admin and middle management. Why? Because they are the least useful parts of a company (well Senior Management might be largely useless too, but they're hardly gonna cut their own throats!!). (IT) Companies need Technical people, and low-level managers to manage them (their cheaper than more senior managers - and probably more technical). HR, middle-management etc. on the other hand is an expensive luxury not a necessity (particularly when people are recruited at random)......

    But...I go now....
  • CoderHero 2009-01-07 16:54
    Steve:
    Franz Kafka:
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).

    This is why Jesus invented uintptr_t.


    Nah, Knuth gave us char*, which is almost always size 1.


    Almost never :-),
    sizeof(char) perhaps?


    by definition, sizeof(char) == 1, always! Even if your char happens to use 32 bits!
  • Bongo 2009-01-07 16:55
    SomeCoder:
    Anonymous:
    In regard to #2, no doubt it's a WTF to risk passing up a great candidate because you couldn't be bothered to read their drab CV. However, I wouldn't really count this as a true WTF because like it or not, this is just how life is. HR types are of limited intelligence; they need bright, bold colours to drag their attention away from their nail varnish. We all know this deep down.

    I always have a very pretty CV, it is currently fashioned in red and black type with an art-deco theme and a soft abstract background that I rendered myself specifically for it. That may sound like too much for a software developer but I would add that I have never been turned down for any position in my entire career.

    I like to think it's my experience and skill that gets me the work but there is no way I would ever rely on a plain old black and white CV.



    This is completely a WTF. Passing over a resume because it has dots instead of arrows for bullet points is one of the biggest WTF I've ever seen and as someone who lives in America, I now fear for my safety if this is the criteria that the mighty CIA is using to select candidates.


    I suspect this is the point our Anonymous friend (and indeed many others, by the look) was making. HR departments are useless. HR departments do all the recruiting for most companiesm, irrespective of role (janitor, secretary, Manager, someone who actually works etc). HR departments are (often) lazy, and (often) do not understand the skillsets required for many roles.
    Sure, it's frightening that this is how people recruit, but sadly, I suspect a colour printer pretty pictures of things like hot air balloons probably raises your chance of getting a job at many companies.
  • Ie 2009-01-07 16:57
    Daniel:
    Oh, and I do know C and C++, which is why they're on my resume. I don't LIKE them, which is why I applied for a web programming job. I was attempting to downplay my C skills so that she wouldn't shove me into an embedded programming applicant pile, and was completely taken aback when she declared that C was the next Spice Girls.


    If ya wanna be my coder
    Gotta get with my friends
    ANSI C is easy
    Friendship never ends
  • CoderHero 2009-01-07 17:00
    Steve:
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?


    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.



    NO! In ANSI/ISO C, you don't need cast the return from malloc. There are reasons why this practice is bad.
    Try putting "casting from malloc" into a search engine to find out more.
  • Cowardly 2009-01-07 17:04
    Wizard Stan:
    Consider you get 100 resumes. After reading through all 100, 2 candidates stand out. One has a beautiful resume, the other is just ok. Either candidate will work out perfectly, but you spent a fair bit of time to find those 2 candidates.
    Now suppose you get 1000 resumes. Do you read all 1000 just to find the statistical 20 candidates that are a good fit for the job? I'm glad you have that much time and money to spend.
    First run, look for the nice resumes, cutting the task in half. You're down to only 500 to read through now. Still a lot, but much better than 1000. Boo hoo, you've thrown away 10 perfectly good candidates for the job. Big deal, you've still got 10 others that would be equally good. Or even better, take only the top 1/4 resumes. 250 applications to read now. You pass over 15 perfect candidates, but you've still got 5 left in that pile somewhere.
    Complain all you want about being passing up "the perfect candidate" because your resume might not look the prettiest, but remember, you're rarely ever the only perfect candidate for the job.
    And if it is the kind of job where I'm the only proper fit for the position that applied, maybe it's not the kind of place I want to work for anyway.
    That being said, arguing that arrows are better than bullets is asinine.


    But this assumes that Good Candidates, Adequate Candidates and Crap Candidates are equally as likely to add bells and whistles to their resume.
    I suspect that generally (other than those who know how recruiters work) the better candidates will asume their work and study histories speak for themselves, and there is no need to decorate the page.
    It is important to make sure the resume looks tidy (don't change font every paragraph, make sure things don't hang over pages funny, etc). Adding all sorts of pictures and patterns to me implies that there is nothing in your resume' of interest, so you added interesting patterns.

    Of course, I understand that those responsible for recruitment think otherwise.
  • The Games 2009-01-07 17:06
    Cowardly:
    Wizard Stan:
    Consider you get 100 resumes. After reading through all 100, 2 candidates stand out. One has a beautiful resume, the other is just ok. Either candidate will work out perfectly, but you spent a fair bit of time to find those 2 candidates.
    Now suppose you get 1000 resumes. Do you read all 1000 just to find the statistical 20 candidates that are a good fit for the job? I'm glad you have that much time and money to spend.
    First run, look for the nice resumes, cutting the task in half. You're down to only 500 to read through now. Still a lot, but much better than 1000. Boo hoo, you've thrown away 10 perfectly good candidates for the job. Big deal, you've still got 10 others that would be equally good. Or even better, take only the top 1/4 resumes. 250 applications to read now. You pass over 15 perfect candidates, but you've still got 5 left in that pile somewhere.
    Complain all you want about being passing up "the perfect candidate" because your resume might not look the prettiest, but remember, you're rarely ever the only perfect candidate for the job.
    And if it is the kind of job where I'm the only proper fit for the position that applied, maybe it's not the kind of place I want to work for anyway.
    That being said, arguing that arrows are better than bullets is asinine.


    But this assumes that Good Candidates, Adequate Candidates and Crap Candidates are equally as likely to add bells and whistles to their resume.
    I suspect that generally (other than those who know how recruiters work) the better candidates will asume their work and study histories speak for themselves, and there is no need to decorate the page.
    It is important to make sure the resume looks tidy (don't change font every paragraph, make sure things don't hang over pages funny, etc). Adding all sorts of pictures and patterns to me implies that there is nothing in your resume' of interest, so you added interesting patterns.

    Of course, I understand that those responsible for recruitment think otherwise.


    Thankfully I am immune to charm....
  • Steve 2009-01-07 17:15
    CoderHero:
    Steve:
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?


    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.



    NO! In ANSI/ISO C, you don't need cast the return from malloc. There are reasons why this practice is bad.
    Try putting "casting from malloc" into a search engine to find out more.


    There are also reasons why this practice is good:

    double * x;
    x = malloc(sizeof(float)*10); /* Geez whoops */

  • Hells Bells 2009-01-07 17:15
    Code Dependent:
    testx:
    What kind of actual criteria can you get in 3 seconds?
    Given that a resume should be one page in length, in three seconds I can get:

    Skill set
    Education
    What was last job
    How many jobs, and how long at each one

    That's enough to know in which pile this resume goes.

    Okay, maybe it would take five seconds.


    Good God Man!!! How can a one page resume even begin to outline what a good candidate has done in their career. I agree resume shouldn't be too long, but one page is a bit short, isn't it? If it were well formatted it would ONLY fit the points you specify (if you've only studied one degree, and have only worked in 2 or 3 different jobs). That's a bit of a problem, seeing as one of those points wasn't Contact Details.

    I find it strange that someone who (presumably) works in IT would shrug off a 66% time increase in reading (ie taking five secs instead of 3). Over 100 Resumes, this makes more than 3 minute difference. Over 1000 Resumes this makes more than 33 minutes difference.
  • Mary had a little lamb 2009-01-07 17:20
    soup:
    What's ironic is that the CIA is probably one of the first organizations in the world to use OCR technology. I would have thought that most HR departments these days use it to scan resumes, especially for technical positions.

    I better update my triangle skills (and add that skill to my resume, of course.)


    That's why they like the triangles behind the text - they're trying to test how good their OCR technology is with Captcha style documents
  • merpius 2009-01-07 17:26
    Steve:
    For all intensive porpoises C++ is a superset of C.


    How about the more relaxed dolphins? Is C++ not a superset of C for them?
  • Jim 2009-01-07 17:28
    Befuddled:
    When I recruit, if I'm getting 10+ CVs a day I'm binning anything that isn't very well presented to cut down the time I spend reading them. It's the easiest field narrower, if you can't get one simple short document about content you know intimately correct and readable and figure out how to use a spelling and grammar check then I don't need you. That does happen after HR or whichever geek pimp we're paying too much have filtered out those without the right skills though so I don't end up interviewing Word jockeys.



    So...you assume HR will know what skills you want, and then you filter on presentation? Sounds a little backward to me.

    Spelling, Grammar and Presentation are reasonable criteria to pick resumes over, but I think the point in the WTF is OTT decorations, not proffessional presentation.
  • Steve 2009-01-07 17:33
    merpius:
    Steve:
    For all intensive porpoises C++ is a superset of C.


    How about the more relaxed dolphins? Is C++ not a superset of C for them?


    Correct.
  • pink_fairy 2009-01-07 17:45
    Anonymous Cowherd:
    The following is a legal C program that will not compile with a C++ compiler:


    #include <stdlib.h>

    struct S
    {
    int x;
    };

    int main(int argc, char * argv[])
    {
    struct S * f = malloc(sizeof(struct S));
    free(f);
    }


    Are you seriously telling me C programmers never use malloc?
    I believe your original point was "non-trivial."

    This, however, is a trivial C program, and as such I have submitted it to a trivial C++ compiler -- MinGW's g++. Yes, there's an error:

    "trivial.cpp: In function `int main(int, char**)':
    trivial.cpp:19: error: invalid conversion from `void*' to `S*'"

    Refining to (struct S*)malloc(...) removes the error. The behaviour will be the same in C/C++.

    Are you seriously telling us that you don't understand what a straw-man argument is?

    Bah. I'm much more concerned by the fact that somebody as obviously smart as Dan M can scribble all over his resume with things like:

    "Languages and technical writing: PHP, MySQL, AJAX, JavaScript, PRADO Framework, MSSQL Server, C#, .Net Framework, Perl, C/C++, Visual Basic, ASP, HTML, DHTML, XML, SOAP, CSS, Java, UML"

    ... and not immediately think:

    (1) Laundry list
    (2) Laundry list full of smelly socks

    Under the circumstances, it's perfectly reasonable to expect the candidate to be amenable to a Web programming position involving C/C++. It's not as if there aren't a number of C/C++ web sites around -- I've worked on a few. I don't recommend it as a design/architecture decision these days, unless you're looking for a ridiculous amount of performance on a nightmare maintenance system -- but it works. Just look at FCGI for starters. Then, consider: what's the difference between a huge organisation builiding its own, appalling and idiotic, C/C++ Web framework, and any number of other organisations depending upon all the other appalling and idiotic Web frameworks?
  • Suomynona 2009-01-07 17:52
    1st One: Funny.

    2nd One: Gotta love the government. Incompetence at it's best. Look at the pretty resume, he must know his stuff!

    3rd One: Yep, now we know what the Patent Office grants patents on nonsense. Real WTF is not mentioning that Computer Science IS an engineering (and math!) degree and is usually awarded by the College of Engineering.

    P.S. first!111shiftelevenitsover9000


    Computer Science used to be in math departments before it became large enough for it’s own. From my experiences while there is still some overlap, a typical undergraduate degree in computer science would not be sufficient for the type of work a mathematician would do. Unless if it’s discrete math.
  • gremlin 2009-01-07 18:15
    Steve:
    CoderHero:


    NO! In ANSI/ISO C, you don't need cast the return from malloc. There are reasons why this practice is bad.
    Try putting "casting from malloc" into a search engine to find out more.


    There are also reasons why this practice is good:

    double * x;
    x = malloc(sizeof(float)*10); /* Geez whoops */


    And how exactly would that be helped by casting the return value of malloc?

    The safest way, is:

    double * x;
    x = malloc(10 * sizeof *x);

    That way if the type of x gets changed, the malloc size is adjusted automatically.
  • Jules 2009-01-07 18:18
    Neeneko:

    I can recall spending 9 months taking a single task from 20ms to 1ms per iteration. That was my task for those 9 months and getting that time down saved WAY more money then my salary. In fact, every millisecond shaved off equaled more then my salary for the year.. so even going from 20ms to 19ms would have been worth 12 months of my time to the beancounters.


    I'm curious. In what kind of situation is this the case? I assume it's for code that is repeated many, MANY times over - but where would such a large cost saving come in? A 3D rendering engine? Telco?
  • Tore Sinding Bekkedal 2009-01-07 18:38
    I should note that the Philips web site is horrendous, and when I tried to use it, it crashed multiple times, and kept logging me off. I don't recall how I got it to work, but I finally managed to register my device so that it would work online.
  • Neeneko 2009-01-07 19:00
    Jules:

    I'm curious. In what kind of situation is this the case? I assume it's for code that is repeated many, MANY times over - but where would such a large cost saving come in? A 3D rendering engine? Telco?


    Real time data processing off a particle accelerator ^_^

    I believe an event came in every 5ns.
  • Neeneko 2009-01-07 19:07
    Steve:

    There are also reasons why this practice is good:

    double * x;
    x = malloc(sizeof(float)*10); /* Geez whoops */



    I actually had to stop and think about this one for a bit. The two main arguments.. catching an incorrect malloc prototype and keeping sizes in sync are kinda one-off effects.

    The big deal is that the author of C++ didn't understand C very well and completely missed WHY you don't cast from malloc, and thus changed the functionally in his own version of the language.

    C is a strongly typed language, it's actually one of it's selling point. In order to miss-assign types you have to go through the additional hoop of casting, telling the language 'yes, I know what I'm doing and I really DO want to do this'. By using an explicit cast after a malloc one is signaling 'something is wrong here and I am forcing it to do something it doesn't want to'. It's a big red flag that something is going on and is probably going wrong.


  • Mr.'; Drop Database -- 2009-01-07 19:10
    ?%^$:
    DWalker:
    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...
    Shouldn't that be " its' "?
    Of course not. "Its" is already possessive—it's its job.
  • 0100100001100101011011000111000000100000011011010110010100100001 2009-01-07 19:58
    Tom Woolf:
    About #2...

    While searching through resumes for technical writers, I ran across one that had a bunch of bells and whistles. WordArt was apparently the applicant's favorite tool.

    The resume had about 15 different fonts, a mixture of bold, italics, underlines, etc. The thing that stood out the most on the resume was the phrase "I'm a lean, mean, tech-writing machine!" vertically in the margins.

    It reminded me of the class I was TA for in college many years ago, where the professor required we grade on the number of font changes on a document rather than how the document actually looked (it was a beginning computer class, and the assignment was a first use of a word processing program).

    Pretty does not mean quality (or qualified)...

    Actually, pretty often does mean quality. Proper attention to design and aesthetics is pretty. Nothing you described above is pretty.
  • Bizzle 2009-01-07 20:03
    I think the real question here is, how do I make my Resume/CV look real nice and pretty?
  • Eugene 2009-01-07 20:04
    I'd suspect that adding puppies to a resume would actually decrease your chances of being considered, wouldn't it? Definitely the resume should be nicely formatted and easy to read, and maybe triangles and lines in background are OK, but anything more than that would be bad.
  • Josh 2009-01-07 20:09
    I tend to include a picture of a handgun. Position filled!
  • Not Jeff Atwood 2009-01-07 20:26
    Was the "C" guy Jeff Atwood?
  • gray goat 2009-01-07 20:44
    Look at the most recent job worked and how long they worked there.

    Sounds like you are letting YOUR prejudices through...
  • Capt. Obvious 2009-01-07 20:50
    Anonymous Cowherd:
    The following is a legal C program that will not compile with a C++ compiler:


    #include <stdlib.h>



    struct S

    {

    int x;

    };



    int main(int argc, char * argv[])

    {

    struct S * f = malloc(sizeof(struct S));

    free(f);

    }



    Are you seriously telling me C programmers never use malloc?
    Why wouldn't that compile in C++? malloc is valid. sizeof ( XXXX) is valid. structs are valid.

    It may not be very OO, but it should be valid compilation wise (unless it should read "sizeof(S)" as opposed to "sizeof ( struct S )"
  • Lumberjack 2009-01-07 20:56
    Languages and technical writing: PHP, MySQL, AJAX, JavaScript, PRADO Framework, MSSQL Server, C#, .Net Framework, Perl, C/C++, Visual Basic, ASP, HTML, DHTML, XML, SOAP, CSS, Java, UML


    When I see such a list on a resume, it really tells me you know about 3% of what there is to know in all these subjects.

    Guess what? I got absolutely no use for somebody like that.
  • Wha? 2009-01-07 20:59
    Lumberjack:
    Languages and technical writing: PHP, MySQL, AJAX, JavaScript, PRADO Framework, MSSQL Server, C#, .Net Framework, Perl, C/C++, Visual Basic, ASP, HTML, DHTML, XML, SOAP, CSS, Java, UML


    When I see such a list on a resume, it really tells me you know about 3% of what there is to know in all these subjects.

    Guess what? I got absolutely no use for somebody like that.


    I got plenty of use for someone like that. My office needs a coffe-boy (or girl)
  • ITEric 2009-01-07 21:06
    Unfortunately, it's all too common for resumes to be judged based on appearance rather than content. It would be a bigger surprise if the more qualified applicant got the job despite a less appealing design.
  • tOmcOlins 2009-01-07 21:18
    "Err, wait, do you meant C-sharp? Because I've worked quote a bit with the .NET Frame—"

  • Neeneko 2009-01-07 21:19
    Capt. Obvious:
    Why wouldn't that compile in C++? malloc is valid. sizeof ( XXXX) is valid. structs are valid.

    It may not be very OO, but it should be valid compilation wise (unless it should read "sizeof(S)" as opposed to "sizeof ( struct S )"


    C++ does not allow you to assign without a cast.

    so you get:

    g++ test.cpp -o test
    test.cpp: In function 'int main(int, char**)':
    test.cpp:12: error: invalid conversion from 'void*' to 'S*'
    make: *** [test] Error 1


    While in C it is acceptable (in fact, correct) to assign a void* to another pointer without cast.
  • pbhj 2009-01-07 22:29
    Um, C is procedural, C++ is OO .. or that appears to be the intention from the design of them.

    Javascript and Java are pretty different too .. did I miss your joke???
  • anonymous 2009-01-07 22:34
    right, and if you actually read that AT&T Research PDF you link to...

    I quote:

    B.2 C/C++ Compatibility
    With minor exceptions, C++ is a superset of C (meaning C89, defined by ISO/IEC 9899:1990).
    Most differences stem from C++’s greater emphasis on type checking. Well-written C programs
    tend to be C++ programs as well. A compiler can diagnose every difference between C++ and C.
  • Dave 2009-01-07 23:08
    you know, OKCupid runs and develops its webserver entirely in C. It's incredibly efficient and stable and great. Oh and wait what language is Apache again?
  • Cheong 2009-01-07 23:14
    I ceased to call these WTF long ago. Rather, I'd call them "the sad reality".
  • Cheong 2009-01-07 23:20
    Steve:
    #1 isn't really a WTF if they're building C/C++ modules for OKWS http://okws.org
    #1 isn't really a WTF if they're early adapter of WWW age and have a website written in C CGI either.
  • Neeneko 2009-01-07 23:36
    Dave:
    you know, OKCupid runs and develops its webserver entirely in C. It's incredibly efficient and stable and great. Oh and wait what language is Apache again?


    I was wondering if someone was going to bring up that example ^_^

    More websites are written in c cgi then people probably think. It isn't generally recommended since the skill set is uncommon but you can do some pretty powerful (and fast) stuff when you don't have to worry about all the extra layers and simplifications that web-centric languages have.
  • Kef Schecter 2009-01-07 23:42
    Smash King:
    I disagree. I have never used or studied C++, but I often see C++ WTFs here and can fully understand them. It would take me just a few hours to grasp the differences, receive the official title of CPP programmer and start on the new project.


    Then you greatly underestimate how C++ really differs from C. C++ is monstrously complicated compared to C and getting it right takes much, much longer than "a few hours" even coming from a C background. I know this because I learned C++ from a C background myself.

    Prior experience with OOP reduces the learning curve, obviously, but some things such as exception safety can be pretty difficult to grasp. I remember I picked up the book Exceptional C++ some years ago thinking I already knew everything and came away with the realization that I knew nothing.

    - Kef
  • JSmith 2009-01-08 00:49
    From the IBM document in your own link

    An excerpt from the book The C++ Programming Language, Special Edition by Bjarne Stroustrup is most certainly not an IBM document!
  • Cpt 2009-01-08 00:54
    JoJo:
    DeLos:
    I always put puppies and kittens on my resume ... who doesn't love puppies and kittens?!?


    I tried that, but it was hard to get them in the envelope. Plus the staples never held them very securely.



    You should try glueing them on, or one of those pitbull-clamps.
  • Dave G. 2009-01-08 01:13
    Kef Schecter:
    Smash King:
    I disagree. I have never used or studied C++, but I often see C++ WTFs here and can fully understand them. It would take me just a few hours to grasp the differences, receive the official title of CPP programmer and start on the new project.


    Then you greatly underestimate how C++ really differs from C. C++ is monstrously complicated compared to C and getting it right takes much, much longer than "a few hours" even coming from a C background. I know this because I learned C++ from a C background myself.

    Prior experience with OOP reduces the learning curve, obviously, but some things such as exception safety can be pretty difficult to grasp. I remember I picked up the book Exceptional C++ some years ago thinking I already knew everything and came away with the realization that I knew nothing.

    - Kef


    +1.

    I've done exactly the same thing. Long C background but have been learning and using C++ over the last year and a half or so.

    The Scott Meyers books on C++ really opened my eyes to how hugely complicated C++ is and how thoroughly little I knew about it, despite writing C for many years and studying C++ seriously.

    I think a C programmer would be able to mostly follow along with C++ code (given a small primer on the STL and maybe template syntax), but in no way would that C programmer be able to write good, safe code that works properly without a fair amount of actual C++ programming experience.

    Take for instance virtual destructors. If you have a derived class where either the parent or the child class either does not declare any destructor or does NOT declare its destructor virtual, the child's destructor is never called when the object is destroyed. You receive no warnings about this behaviour.

    This tiny, absolutely puny little detail will leave your program riddled with serious, impossible to find bugs and resource leaks. You need to know specifically of this behvaiour before you can fix it.

    This is merely one example of probably thousands of such tiny little details of complexity that a C programmer would simply have no clue about - details which will render your programs utterly useless if you don't know about them. And even if you know about them, there are so many things to remember that you WILL forget some of them from time to time. Even experts can write C++ code that is just wrong.

    A C++ programmer should be able to write decent C. On the othe rhand, I would not expect a C programmer to write even half-decent C++.
  • Procedural 2009-01-08 01:15
    BCS:
    I seem to recall someone giving advice on résumés and pointing out that some jobs get like 100x more applicant than they have positions and just to cut it down, some of those résumés get trashed in the first pass at a rate of about 1 a second. Never done it, never seen it done but if you have more résumés than you even have time to skim what else are you going to do?


    Ridiculous. That`s why HR exists. I think the CIA guy was testing the candidate on his ability to deal with adversity in a partially-understood context. The candidate failed. The arrows obviously never mattered.
  • Dave G. 2009-01-08 01:29
    Procedural:
    Ridiculous. That`s why HR exists. I think the CIA guy was testing the candidate on his ability to deal with adversity in a partially-understood context. The candidate failed. The arrows obviously never mattered.


    I've got it. The CIA guy was actually doing a drop for a spy, and the suggestions about the arrows were a code phrase used to identify the correct person to receive the microfilm.

    Had the OP been savvy enough to detect this obvious spy behaviour, he might have landed his hands on something awesome, which he could be sharing with us now instead.

    I submit that the arrows matter tremendously.
  • Vollhorst 2009-01-08 03:40
    pbhj:
    Um, C is procedural, C++ is OO .. or that appears to be the intention from the design of them.

    Javascript and Java are pretty different too .. did I miss your joke???
    Wrong. C++ only allows OO but can also be as "old school" as C if you want to.
  • fresch 2009-01-08 04:02
    Neeneko:

    Ugh. That old faq. yeah, real great perspective there. It makes me wonder how much C this person _really_ programmed in vs 'I could do this better!'. Claiming he needed to develop a whole new language to get generic programming, OOP, and data abstraction really makes me wonder how he was using C since it has all of those things. C++ makes these things easier (most of the time) and safer (pretty much all of the time) but it does not add any actual new expressive power.

    And of course all the "C is never better then C++ under any circumstances" are just dripping with lack of perspective. To this day C++ does not have the flexibility (without lots of extra code) of C in things like polymorphism. Runtime modification of classes in C++ has always been a pain unless you add wrapper syntax at which point you are back to the C method but with more code (and symbol table clutter).

    Oh, sure I could drive an old Model T, where I have to use a crank to manually start the engine... but I'd much rather drive a Prius that not only has an automatic starter, but also has other really useful features over that Model T.

    Or I could just walk everywhere and dream about how wonderful it would be if there just was a way to get there faster, more comfortable and less exhausting.

    So you like C and I like C++.
  • Dablador 2009-01-08 04:51
    Next time, add the last time line in the 'additional information' section down the bottom of your resume and hit in: "On my free time I sit on my father's right side passing down judgements on the living and the dead."

    Works like a miracle.

  • Simon 2009-01-08 05:13
    Im my job I have to write documentation as well as software. I wouldn't hire someone with a poorly formatted CV, it you can't be bothered to make something that important look nice, will you be bothered to format a document properly?

    I'm not talking about 'I don't like that style', but things that make it harder to read and harder to skim for the details.

    Same goes for poor grammer and spelling. I've probably made a mistake or two in this post, but it's not something that I'm trying to use to get a job!
  • grammernazee 2009-01-08 05:18
    The real WTF is Alex's grammar:

    "a certain founded-and-headquartered-in-the-Netherlands electronics company was hiring ".
    OK, if you are going to use this disturbingly convoluted adjectival construction, it is correct to hyphenate it, but this is supposed to be English, not German or Jedi. I'm a confused-by-your-use-of-verbal-clauses person...
  • Médinoc 2009-01-08 05:33
    Steve:
    Argh! I hate people who keep claiming that because C++ is not a proper subset of C that therefore they are completely different languages.

    Firstly, are we talking about K&R C, ANSI C, or C99(doubtful)?
    What code would you write in ANSI C that you would actually want to write that wouldn't compile in C++?

    Yes you can write crap C code that a C++ compiler won't compile, but why would you want to?

    For all intensive porpoises C++ is a superset of C.

    This is ANSI C: http://www.developpez.net/forums/m2880445-30/
    And it doesn't compile in C++.

    Also, the errata section of the K&R2 now tells not to put an explicit cast between a pointer and a call to malloc(), which means that an *officially recommended* ANSI C convention won't compile in C++.

    About the 3 : Yes, patenting in the states has become a WTF.
  • Steve 2009-01-08 06:08
    Médinoc:
    Steve:
    Argh! I hate people who keep claiming that because C++ is not a proper subset of C that therefore they are completely different languages.

    Firstly, are we talking about K&R C, ANSI C, or C99(doubtful)?
    What code would you write in ANSI C that you would actually want to write that wouldn't compile in C++?

    Yes you can write crap C code that a C++ compiler won't compile, but why would you want to?

    For all intensive porpoises C++ is a superset of C.

    This is ANSI C: http://www.developpez.net/forums/m2880445-30/
    And it doesn't compile in C++.

    Also, the errata section of the K&R2 now tells not to put an explicit cast between a pointer and a call to malloc(), which means that an *officially recommended* ANSI C convention won't compile in C++.

    About the 3 : Yes, patenting in the states has become a WTF.


    Seriously that has to be one of the lamest, won't compile in C++ examples I've ever seen. Simply replace the #ifdef with
    #ifdef __cplusplus
    #define class _class
    #define template _template
    #define new _new
    #endif

    And OMG, minus the malloc issue it will compile. And the malloc casting thing is mainly a non issue.
    Regardless, the argument is whether C++ is a proper superset of ANSI C. Which we all know it isn't, but the porpoises are pretty sure that 99% of the time it is.

    C99 does actually have features not in C++.
  • ais523 2009-01-08 06:24
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.


    It's possible to deliberately write a program so as to be simultaneously valid C and C++. Doing this directly leads to a program which is bad style in C and very bad style in C++; however, it's possible to make it good C style (but not good C++ style) by using macros or similar to wrap around the differences. Unfortunately, that makes it harder to read. So choosing one and sticking to it is usually better.
  • ais523 2009-01-08 06:35
    Steve:
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?


    Generally (although I admit not always) if a C programmer is writing good C it will just work in C++. For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.


    There's a reason it says that, which is that when K&R2 was written, the authors didn't have a C89 compiler (due to the standard only just having come out), so they had to use a C++ compiler instead. Many programmers consider unnecessary casts to be bad style because they hide compiler warnings (forgetting to include <stdlib.h> is a somewhat common mistake, and will often result in code that works on a 32-bit system but not on a 64-bit system), and take up space for no reason.
  • ais523 2009-01-08 06:39
    Steve:
    Franz Kafka:
    fred:
    Neeneko:
    Though that is another difference... arithmetic on void pointers doesn't work in C++. So C programs that do raw memory stuff tend to have to be rewritten by casting all the void* to unsigned long pointers (and then pray that u32s are the right size).

    This is why Jesus invented uintptr_t.


    Nah, Knuth gave us char*, which is almost always size 1.


    Almost never :-),
    sizeof(char) perhaps?

    sizeof(char) is 1 by definition. However, the smiley implies that you may have known that already...

    Besides, char* is generally quite a bit larger than char; 4's a common value for the sizeof char*, although I've seen both 2 and 8 before, and there may be weirder values out there.
  • José Reis 2009-01-08 07:00
    LOL
  • IByte 2009-01-08 07:44
    David:
    "Just look at it," she responded, "it's everything, all around. For example, you used dots for your bullet points and he has these nice arrows."
    And if that's not bad enough, to help this kind of people in their quest for unreasonable grounds for rejection, on several job search sites you can upload your resume as a MS Word file, which will then be parsed by the web site, not exactly preserving formatting. That shouldn't really matter, of course, unless you apply with people like this.

    (BTW, for someone in the Intelligence business, she doesn't appear to be acting very intelligently...)

    -- IByte (looking for a non-WTF job)
  • Code Dependent 2009-01-08 07:45
    Hells Bells:
    Good God Man!!! How can a one page resume even begin to outline what a good candidate has done in their career. I agree resume shouldn't be too long, but one page is a bit short, isn't it?
    Every essay I have ever read on getting hired, plus my Business and Professional Speaking class in college, have recommended that you not go beyond one page on your resume. A resume isn't an interview; it's a request for an interview. The details can come out in the interview.
    Hells Bells:
    That's a bit of a problem, seeing as one of those points wasn't Contact Details.
    You don't need to see contact details in the first three to five seconds. There will be time enough for that on the second pass through the stack.
    Hells Bells:
    I find it strange that someone who (presumably) works in IT would shrug off a 66% time increase in reading (ie taking five secs instead of 3). Over 100 Resumes, this makes more than 3 minute difference. Over 1000 Resumes this makes more than 33 minutes difference.
    I wasn't the one who set the initial 3 second figure, and I see no reason for it to become an industry standard for resume perusal. It's a randomly grabbed figure being used by the two priors in the discussion to make a point about quick scans.
  • avflinsch 2009-01-08 07:52
    [quote user="Leak"]
    Ewww... if anything, that should be "puppies with ketchup". Just try eating one without ketchup...

    Barbarian -- everyone knows it's mustard on puppies and barbecue sauce on kittens.
  • Chris G 2009-01-08 07:56
    In a certain POSIX real-time processng book I have one comment that sticks in my mind is that becuase of virtual function pointers inherent in C++, it isn't a _true_ realtime language. Using C allows a predictable control flow that can be evaluated.

    Just thought I'd add to the already growing C differences.
  • Code Dependent 2009-01-08 07:56
    Simon:
    Im my job I have to write documentation as well as software. I wouldn't hire someone with a poorly formatted CV, it you can't be bothered to make something that important look nice, will you be bothered to format a document properly?

    I'm not talking about 'I don't like that style', but things that make it harder to read and harder to skim for the details.

    Same goes for poor grammer and spelling. I've probably made a mistake or two in this post, but it's not something that I'm trying to use to get a job!
    My grammer wood agree with you. She cain't spell neather.
  • Steve 2009-01-08 08:14
    Chris G:
    In a certain POSIX real-time processng book I have one comment that sticks in my mind is that becuase of virtual function pointers inherent in C++, it isn't a _true_ realtime language. Using C allows a predictable control flow that can be evaluated.

    Just thought I'd add to the already growing C differences.


    There is nothing inherent about virtual function pointers in C++. As with other language features, you only get them if you ask for them. It's a bit like using gets.
  • Orbstart 2009-01-08 08:17
    ruijoel:
    2nd: Actually, it's well known that people with no sense of style/taste are awful interface designers...


    Weak troll attempt, FTFY.

    ruijoel:
    3rd: erm, Computer Science is Engineering. Oh, and this WTF explains a lot about the state of patents today.


    If you take Software Engineering, that is Engineering and is typically awarded by either a Bachelor or Master of Engineering degree. Typically Computer Science courses award a BSc. (In the UK at least)
  • Wolfgang 2009-01-08 08:35
    C++ and C today are quite distinct languages. You might be able to include C headers into a C++ program, but that's about it.

    It starts the way how pointer typing works in those language.

    In C you write:
    char *str = malloc(len);


    In C++ you do:
    char *str = (char*) malloc(len);


    Note the typecasting in C++, which without it you will get a error if compiled with a C++ compiler. OTOH doing that typecast is utterly wrong in C, since typecasting may allow for type reinterpretation, however the C standard states, that the value of a type void* must be able to be assigned to any kind of pointer without changing the value (casting may change it!). Most compilers will do it right, if explicitly typecasting things and not complain, but the standard would allow it. For the sake of compatibility most libraries written in C (like GLib, GTK) do explicit typecasting of void* but it may break if a compiler insists on exploiting this subtelty of the C language.
  • Médinoc 2009-01-08 08:46
    Steve:
    Seriously that has to be one of the lamest, won't compile in C++ examples I've ever seen. Simply replace the #ifdef with
    #ifdef __cplusplus
    #define class _class
    #define template _template
    #define new _new
    #endif

    And OMG, minus the malloc issue it will compile. And the malloc casting thing is mainly a non issue.

    Actually it will *not* compile, because you missed one other issue: A variable has the same name as a struct, which C++ forbids.

    As you can see, it's trickier than you thought!
  • Steve 2009-01-08 08:50
    Wolfgang:
    C++ and C today are quite distinct languages. You might be able to include C headers into a C++ program, but that's about it.

    It starts the way how pointer typing works in those language.

    In C you write:
    char *str = malloc(len);


    In C++ you do:
    char *str = (char*) malloc(len);


    Note the typecasting in C++, which without it you will get a error if compiled with a C++ compiler. OTOH doing that typecast is utterly wrong in C, since typecasting may allow for type reinterpretation, however the C standard states, that the value of a type void* must be able to be assigned to any kind of pointer without changing the value (casting may change it!). Most compilers will do it right, if explicitly typecasting things and not complain, but the standard would allow it. For the sake of compatibility most libraries written in C (like GLib, GTK) do explicit typecasting of void* but it may break if a compiler insists on exploiting this subtelty of the C language.


    I think we've done that one already. So to add more fuel, if you don't want to typecast in C but need it to work in C++, do this:

    #ifdef __cplusplus
    #define mallocPlus(x,y) (y)malloc(x)
    #else
    #define mallocPlus(x,y) malloc(x)
    #endif

    Then call
    char *str = mallocPlus(len, char*);

    It is called mallocPlus for two reasons. One because it will annoy people who would write it malloc_plus and two because it is half way between C & C++.

    Now you have code that will compile in C & C++ and also won't cast in C.
  • Médinoc 2009-01-08 08:51
    steve:
    For the malloc example above the C Programming Language (2nd ed, I can't find my first edition to see if it has changed), says that you should explicitly cast malloc. If you do that then the code becomes valid C++ code also.

    The errata section of the K&R2 says otherwise:
    142(§6.5, toward the end): The remark about casting the return value of malloc ("the proper method is to declare ... then explicitly coerce") needs to be rewritten. The example is correct and works, but the advice is debatable in the context of the 1988-1989 ANSI/ISO standards. It's not necessary (given that coercion of void * to ALMOSTANYTYPE * is automatic), and possibly harmful if malloc, or a proxy for it, fails to be declared as returning void *. The explicit cast can cover up an unintended error. On the other hand, pre-ANSI, the cast was necessary, and it is in C++ also.
  • nottheieee 2009-01-08 08:58
    Stop bitching about C++ people! He did it for us all.
  • Neeneko 2009-01-08 09:35
    fresch:

    Oh, sure I could drive an old Model T, where I have to use a crank to manually start the engine... but I'd much rather drive a Prius that not only has an automatic starter, but also has other really useful features over that Model T.


    A closer analogy would be an automatic vs stick shift.

    Or perhaps 'car you can work on yourself' vs 'car that can only be worked on by a shop'. Car analogies only go so far.

    So you like C and I like C++.


    Incorrect.

    I like both. I use C in places where C shines, and C++ in places where C++ shines. There are times where C's simplicity and control are simply more useful then C++'s sugar, complexity, redundancy, side effects, and obfuscation turn from helpful to hurtful.
  • Wizard Stan 2009-01-08 09:35
    Code Dependent:
    Every essay I have ever read on getting hired, plus my Business and Professional Speaking class in college, have recommended that you not go beyond one page on your resume. A resume isn't an interview; it's a request for an interview. The details can come out in the interview.

    http://tinyurl.com/9b4ku6
    You haven't been keeping up with the times. Much like how C has evolved and is no longer close enough to current C++ to be considered a subset under even the loosest definition of the word, the skill of resume writing has, as well, undergone quite a few changes. Only 12% of polled businesses agree with your statement, more suggest you should have as many as it takes (3+), while the most think you should stop at 2.
    My resume from late 90s, once considered the epitome of proper formatting, was recently passed off as "terrible" by several businesses. Changing the format a little, and the calls started coming in again.
    The computer industry is always adapting to new challenges, as new techniques and technologies become prevalent. Resume writing is simple by comparison, and if you can't afford the 10-20 minutes it takes to clean up your resume to match current standards (easily found by a google search) before sending it out, how can it be trusted that you've kept up with the plethora of new skills brought about by the latest fad in information technology?
    Updating your resume is a one time deal with a finite deadline: you find the current standard format, make your resume look like that, and start sending it out. There's no need to keep a constant watch on changes to "resume technology" like there is for programming.
    To add an analogy, how many WTFs have we read on here where a developer has done something technically correct, but so obviously wrong that it gives the site its name? Somewhere out there is a group of HR reps looking at a resume laughing, saying "can you believe this guy? He put his name in centered 10pt font when left justified bold 12pt is OBVIOUSLY so much better."
  • Neeneko 2009-01-08 09:40
    Steve:

    There is nothing inherent about virtual function pointers in C++. As with other language features, you only get them if you ask for them. It's a bit like using gets.


    Actually this is a common problem with C++ and real time applications. While it is true that C++ only inserts implicit functions (like the constructors, destructors, overloaded operators, etc) if you ask for them, the ease at which is slips them in and the lack of clear syntax makes figuring out exactly what will execute quite difficult. C++ obfusicates these details because normally the programmer doesn't need to know, but if the programmer DOES need to know what execution side effects a line has in it, it can be quite difficult to figure out. C++ is just too unpredictable when you need predictability.

    There have been many times that I've had to actually use a disassembler on a C++ object file to figure out what gets run between point A and point B.
  • Befuddled 2009-01-08 09:52
    Jim:

    So...you assume HR will know what skills you want, and then you filter on presentation? Sounds a little backward to me.

    I assume they can match one list with another and they can, I don't see CVs without the relevant skills.

    I still get too many with the relevant skills so I adopt the easiest means of eliminating a chunk. It's pretty common practise.
  • Kef Schecter 2009-01-08 09:59
    Simon:
    Same goes for poor grammer and spelling. I've probably made a mistake or two in this post, but it's not something that I'm trying to use to get a job!


    Indeed, but spelling "grammar" as "grammer" always strikes me as particularly ironic.
  • Buddy 2009-01-08 10:32
    Wizard Stan:
    ...
    Now suppose you get 1000 resumes. Do you read all 1000 just to find the statistical 20 candidates that are a good fit for the job? I'm glad you have that much time and money to spend...


    The biggest problem I have is getting swamped with hack resumes with little or no relevance. These are guys that just e-mail their crappy resumes without regard for applicability.

    What I do, and I find it works very well, is to put in the posting specific instructions, e.g.

    In your cover letter, please address the first and second requirements [or some other specific task] ... You may also fax your resume, attention [my name].

    From that it's fairly easy to check these points:

    Dear [generic]
    cover letter missing
    didn't address specific requirements

    Any of the above implies lack of attention to detail and the applicant is filtered out. Last time maybe one percent of the resumes got through this "intensive" filtering process.

    When I apply for a position, I tailor the cover letter and resume, do some research on the company, just basically visualize myself working there.

    In the old snail mail days, applicants would stoop to adding rice or whatever to envelopes to make them rattle!




  • Andy 2009-01-08 10:39
    testx:
    What kind of actual criteria can you get in 3 seconds? That's not enough time to actually read the resume. Do you mean stuff like reading the name, guessing the person's ethnicity, and letting your prejudices make the decision?


    I three seconds I could do at least one of the following :

    -Skim the resume for a computer language of choice.
    -Skim the resume for the highest degree the person claims.
    -Skim the resume and make sure that "Microsoft Word" is not mentioned in the same bullet point as the applicant's primary programming qualifications.
    -Eliminate all resumes decorated with obnoxious clip-art.


    Granted, any one of these has a small possibility of eliminating a good candidate with a poorly formatted resume. (Or even a good candidate with unusual but acceptable qualifications.) But if I had hundreds of resume's to get through, I think this would be a reasonable first pass at dealing with them.
  • Wyrd 2009-01-08 10:42
    The process of selecting whom to hire via interview is much like capitalism and standardized testing: it's the worst possible system to achieve the goal... except for all of the other systems.

    I mean, I don't actually *know* of any systems to filter through prospective hires besides the interview, but I'm just saying it's not that great.

    There is something you, the potential hire-ee can do about it though. You have to apply all over the place to as many companies as you can think of.

    Putting puppies in envelopes probably isn't a good idea. However, with really crazy interviewers, who can ever say for sure?

    --
    Furry cows moo and decompress.
  • Ken 2009-01-08 10:47
    I've actually worked at the Patent Office examining compiler patents. I'm interested when Dan M. applied, but I can assure him, he dodged a bullet there.
  • Wyrd 2009-01-08 10:48
    testx:
    The more I think about it, the first one isn't even necessarily a wtf (except on the interviewees part). It's an electronics manufacturer. Perhaps they were developing embedded web servers/applications for their electronics. In that case, C would be a perfectly acceptable language if not the best language.

    Perhaps.

    But, IMHO show me a website running on straight C and I'll show you a buffer-overflow-leads-to-root-access bug just begging to happen.

    --
    Furry cows moo and decompress.
  • Wyrd 2009-01-08 11:01
    Metalehad:
    To be fair - why would a C developer write code that compiled in both languages? C is still in heavy use in embeded applications right now, and there is no need to go to C++ in the future anyway. Why would a person spend a bunch of time making it cross-language?

    I don't know if it would always make sense to write for both languages.

    The only time I can see it making sense is if you're working on a project that has started in C that just keeps growing and growing. You know that, at some point in the future, it's probably going to grow *so* much that Object Oriented really is the way to go. So you start pushing for re-writes to get things as C++ compatible as you can in preparation for The Big Switch.

    The MAME project is kind of like that right now. I mean I don't think they have any plans to ever switch to C++, but as it's moved on and on they've been re-writing things more and more in a more object-ish oriented-ish paradigm.

    If you find yourself in a project that is written in C and you know you need to re-write it object oriented because of the project's behemoth-like size and complexity, C++ is the logical choice.

    --
    Furry cows moo and decompress.
  • Wyrd 2009-01-08 11:22
    pink_fairy:
    Anonymous Cowherd:
    The following is a legal C program that will not compile with a C++ compiler:


    #include <stdlib.h>

    struct S
    {
    int x;
    };

    int main(int argc, char * argv[])
    {
    struct S * f = malloc(sizeof(struct S));
    free(f);
    }


    Are you seriously telling me C programmers never use malloc?
    I believe your original point was "non-trivial."

    This, however, is a trivial C program, and as such I have submitted it to a trivial C++ compiler -- MinGW's g++. Yes, there's an error:

    "trivial.cpp: In function `int main(int, char**)':
    trivial.cpp:19: error: invalid conversion from `void*' to `S*'"

    Refining to (struct S*)malloc(...) removes the error. The behaviour will be the same in C/C++.

    Are you seriously telling us that you don't understand what a straw-man argument is?


    But, in all fairness, it's not a strawman argument. A strawman argument is when you throw up a silly/weak example to try to make your broad grand point, and in so doing, distort things badly. This isn't a strawman because the assertion under dispute was very logical and mathy. Suppose I made the assertion: "ALL animals have symmetrical body structure." Well my assertion would be incorrect because the sponge is considered to be an animal and it does not have symmetric body structure.

    The strawman problem comes into play in more real-world debate scenarios with many shades of grey, subtleties, and complexities and then someone frames the argument in such a way as to make it appear that a very weak example is representative of the whole thing, and then proceeds to destroy the weak example.

    An example of strawman would be if I were to talk about the bogusness of the point of view of a specific nutball religious extremest, and then went on to generalize from that, that all religious persons are nuts. *That's* strawman.

    The specific claim that he was trying to refute was that "C++ is a proper superset of C". "proper superset" is a precise mathematical term and it has a precise mathematical meaning. When we apply that term to the previous assertion, we see that it *should* mean, in part, that *every* C program will compile under C++. This is not the case. The fact that the bug in question might be trivial and easy to fix is not itself trivial. If there is even one (trivial) C program that cannot compile under C++ without first being modified then there exists a computer program within the set of valid C programs that is not an element within the set of valid C++ programs.

    Therefore, C++ is *not* a proper superset of C.

    Maybe we should make up a new term like... *fuzzy* superset. :-) We could then call C++ a fuzzy superset of C. Yeah. That sounds good.
  • Steve H 2009-01-08 11:50
    Leak:
    np: Tocotronic - Aber Hier Leben, Nein Danke (Kapitulation Live)


    You really think we give a damn, huh?
  • ExaminerJ 2009-01-08 12:04
    Ex. patent office employee here.

    The USPTO only hires CEs; not CSs, not ITs, etc.
    I'm not sure why though. They hire around 100 people every month, and about %80 (estimate) will leave in the first two years, so you know they'll hire anyone with a BS in a degree that ends in E.

    Why they have that rule, I'm not sure. In all honesty, it doesn't take anything more than general highschool reading comprehension skills and the ability to use google to do that job. It's a very easy job though, so if you have no career goals it's a great place to go.
  • Steve H 2009-01-08 12:07
    Befuddled:
    It's the easiest field narrower, if you can't get one simple short document about content you know intimately correct and readable and figure out how to use a spelling and grammar check then I don't need you.


    I think we all wish you'd figure out how to use one.
  • Me 2009-01-08 12:26

    I tried that, but it was hard to get them in the envelope. Plus the staples never held them very securely.


    You should try those nice vacuum sealed plastic envelopes, that will do the job.

  • Seraph 2009-01-08 12:27
    Wyrd:
    An example of strawman would be if I were to talk about the bogusness of the point of view of a specific nutball religious extremest, and then went on to generalize from that, that all religious persons are nuts. *That's* strawman.

    That isn't a strawman.

    A strawman is where you misrepresent your opponents position by presenting a case that appears similar to his position but is easier to argue against. An example might be if I said "There are C programs that won't compile with a C++ compiler", and you said "What do you mean that C programs won't compile with a C++ compiler. Here is a C program that works fine. You clearly don't know what you're talking about".

    I think what you're describing is the fallacy of composition. Where you infer something is true of the whole because it is true for part of the whole.
  • Mern 2009-01-08 12:46
    I would have to agree with JoJo on this one.
  • curtmack 2009-01-08 13:34
    And lest we forget, the patent infringement suits against Sony, Nintendo, and Microsoft back in 2007, claiming that - get this - some guy held a patent on the analog joystick. Just to be clear, we're talking about something that dates back to at LEAST the Atari 5200, which would be back in the 1982. When was this patent filed? 1998 - not only after the 5200, but also after the Nintendo 64 and the first DualShock controller.
  • Code Dependent 2009-01-08 13:36
    Wizard Stan:
    Code Dependent:
    Every essay I have ever read on getting hired, plus my Business and Professional Speaking class in college, have recommended that you not go beyond one page on your resume. A resume isn't an interview; it's a request for an interview. The details can come out in the interview.
    You haven't been keeping up with the times. Much like how C has evolved and is no longer close enough to current C++ to be considered a subset under even the loosest definition of the word, the skill of resume writing has, as well, undergone quite a few changes. Only 12% of polled businesses agree with your statement, more suggest you should have as many as it takes (3+), while the most think you should stop at 2.
    I did in fact quite recently read an article which sharply reminded the reader to keep the resume to one page. However, it's quite possible that you are correct; I'm not motivated to investigate. I have been at my present employer for eight years, and plan to be here another 10. Before this, five years with my previous employer. So yes, there has been no need for me to "keep up with the times" regarding resumes.
  • Code Dependent 2009-01-08 13:43
    Seraph:
    A strawman is where you misrepresent your opponents position by presenting a case that appears similar to his position but is easier to argue against. An example might be if I said "There are C programs that won't compile with a C++ compiler", and you said "What do you mean that C programs won't compile with a C++ compiler. Here is a C program that works fine. You clearly don't know what you're talking about".
  • Buffled 2009-01-08 13:44
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.

    C++ adds to C, thus making it a superset. In some cases, it adds restrictions. This does not make it any less a superset C.

  • dbg 2009-01-09 01:11
    the phrase is "for all intents and purposes".

    you've made a common mistake based on assigning the phonetically similar "intensive" in place of "intents and", however this means you also never stopped to think about what the meaning of the words in the expression actually are.

    what exactly would an intensive purpose be?
  • BentFranklin 2009-01-09 01:15
    The CIA incident was a test. Some kind of non-linear response was required to demonstrate he can think on his feet. The interviewee failed the test.

  • Kef Schecter 2009-01-09 02:18
    dbg:
    the phrase is "for all intents and purposes".

    you've made a common mistake based on assigning the phonetically similar "intensive" in place of "intents and", however this means you also never stopped to think about what the meaning of the words in the expression actually are.

    what exactly would an intensive purpose be?


    No, Steve said "for all intensive *porpoises*". It was a deliberate change (like "for hysterical raisins" instead of "for historical reasons").
  • Dave 2009-01-09 03:07
    I thought the USPTO one was well known, for many, many years the USPTO would specifically refuse to hire computer scientists to evaluate computer patents. In other words you had to be unqualified for the job in order to be allowed to it.
  • Alehx 2009-01-09 11:23
    Smash King:
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.
    I disagree. I have never used or studied C++, but I often see C++ WTFs here and can fully understand them. It would take me just a few hours to grasp the differences, receive the official title of CPP programmer and start on the new project.
    I think a nice analogy is playing acoustic guitar and electric guitar. You can play almost anything you do in one with the other, but if you need to use vibrato or harmonics or pull the distortion lever on an acoustic guitar you're stuck.


    Just mic the acoustic guitar and voila! Run it through some pedals and the effects loop of your half stack and you can play some metal!

    I think career fairs are different. You go in, talk to people and give them your resume. Sometimes you just talk to a person who is in management and might not have much CS background. That person then determines if your personality is compatible with the company. Sucks if you only have knowledge of CS and your strengths would be talking shop.

    I also asked an interviewer once what they look for in a prospective employee. They told me that the way they present themselves and any leadership qualities that they have were a major factor in their consideration process. I guess I could see why a well presented resume could potentially reflect how a person presents themselves. However, its unfortunate that sometimes less qualified applicants will get consideration just because of this. I think the morale of the story is no matter how ridiculous it seems, play the game the best you can, because there is really no disadvantage to having a great looking resume.

    That being said, I didn't get the internship. So WTF do I know.
  • Jay 2009-01-09 13:23
    Yes, in real life, companies routinely use irrelevant criteria when hiring people for a job. Whether it's using pretty colored paper for your resume or having the right haircut or whatever. My philosophy is that if I need to get a job right now -- like once in my life I got fired and needed something to pay the mortgage as soon as possible -- then I'll play the game and do all sorts of silly things to get in the door. But most of the time when I've been looking for a job, I already had a job that paid the bills but that I simply decided I didn't like for whatever reason. In that case, the goal isn't to get any job, but to get a job that will be a pleasant place to work. And if the company has a bunch of silly, irrelevant rules for hiring people, then they probably have a bunch of silly, irrelevant rules to be followed when you're working there, and that's probably not where I want to go. So I don't worry about criteria I consider irrelevant, and if they pass me up because of that, than I probably wouldn't have wanted to work there anyway.

    That said, I find I have an irrational desire to be liked and respected and all that, so when I get to an interview I tend to break my own rule, and when they bring up silly criteria, I find myself trying to meet it or sound like I meet it.

  • FIA 2009-01-09 14:36
    Bill:
    No word of a lie: I once got interviewed because I had a cartoon pig on my application letter. As they told me later: "We couldn't find anybody and then I said, "Why don't we call that guy with the pig on his resume?"... and the rest is history...


    Oh.... so THAT explains DOS, and Windows, and VB, and IE.

    Wish you'd stuck to law dude. :((
  • Kef Schecter 2009-01-09 15:21
    Alehx:
    Just mic the acoustic guitar and voila! Run it through some pedals and the effects loop of your half stack and you can play some metal!


    I think that's a very good analogy for what a C programmer who's just learning C++ is likely to produce. :)
  • FIA 2009-01-09 15:48
    Neeneko:
    Some stuff about C and C++

    Steve:
    Some more stuff about C and C++


    Cheers guys, the nitpicking over minutia of some of the more obscure aspects of computing in the comments is getting less and less common these days, so it's nice to read a few pages of comments that leave me realising I don't know quite as much about a particular subject as I thought I did; whilst also learning a fair bit.

    Proper computery TDWTF comments FTW!!

    :)
  • curtmack 2009-01-09 20:42
    Buffled:
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.

    C++ adds to C, thus making it a superset. In some cases, it adds restrictions. This does not make it any less a superset C.



    Look up "superset." I don't think it means what you think it means.
  • Neeneko 2009-01-09 23:58
    Kef Schecter:

    I think that's a very good analogy for what a C programmer who's just learning C++ is likely to produce. :)


    And vice versa.

    I think C++ programmers just sorta assume that the C code they are producing is 'good' because they understand what they are typing.
  • Neeneko 2009-01-10 00:03
    FIA:

    Cheers guys, the nitpicking over minutia of some of the more obscure aspects of computing in the comments is getting less and less common these days, so it's nice to read a few pages of comments that leave me realising I don't know quite as much about a particular subject as I thought I did; whilst also learning a fair bit.

    Proper computery TDWTF comments FTW!!

    :)


    Wow. I've never had anyone sarcastically comment about a technical discussion that since they don't care about no one possibly could. You must be the true alpha geek of all things technical and your obvious wisdom has changed my life forever.

    And of course, obscure details must never matter because no one possibly uses them. That's why all real programs use 4th and 5th generation languages.
  • Rob 2009-01-10 11:01
    Then I'll say it to DanM, too. Get with the program. C is used far more than C# or any other language on your list except Java.
  • FIA 2009-01-12 04:31
    Neeneko:
    FIA:

    Snip me.


    Wow. I've never had anyone sarcastically comment about a technical discussion that since they don't care about no one possibly could. You must be the true alpha geek of all things technical and your obvious wisdom has changed my life forever.


    ??

    I can assure you, that wasn't ment at all sarcastically, I apologise if it came across that way.

    It was actually written after spending about 2 hours reading the comments fully. (and prompted a weekend of brushing up on my C++). I take my job quite seriously, and consider that constantly learning and improving my skills are a big part of that.

    I'm sorry if the internet has jaded you to the point that everyone is bitter and sarcastic, but the comment was heartfelt and certanly not ment that way.

    Neeneko:

    And of course, obscure details must never matter because no one possibly uses them. That's why all real programs use 4th and 5th generation languages.


    No, obscure details are important, they stop you falling into silly traps. (Mind you, if you worked with some of the people I do even simple details are unimportant aparently.)

    Again, sorry if I offended, but I genuinely got a lot from yours and Steve's discussion.
  • AAAAHHHHH! 2009-01-12 10:42
    blah:
    No grammar for you!

    10/10 for you sir! :D
  • Neeneko 2009-01-12 15:34
    FIA:

    Again, sorry if I offended, but I genuinely got a lot from yours and Steve's discussion.


    My apologies for misunderstanding then ^_^

    Sometimes telling sarcasm from honesty can be tricky without hearing someone's voice. I have encounter the attitude that I thought I was responding to before I jumped to a conclusion.
  • Some european developer 2009-01-13 03:18
    "Just look at it," she responded, "it's everything, all around. For example, you used dots for your bullet points and he has these nice arrows."


    When I tell people I'm a contractor for an European institution, they ask me if I'm applying for direct employment. In their mind, it means large amounts of money, no taxes and a guaranteed job whatever happens. To me, it means spending 50% of my time filling a report about why I wrote "standardize" instead of "standardise" or having to explain why we shouldn't develop new projects in pure C on mainframes.

    After this comment from CIA, some will have changed their resume to get them hired and sold their soul to government administrativia.
  • Krem 2009-01-13 18:00
    Glue or flypaper ftw.. but I'd recommend shaving them first, or just sending a hairless..
  • Steven 2009-01-22 00:55
    How many people replaced the bullets on their resume with arrows after reading this? :3
  • ICU 2009-02-11 15:47
    Bjarne is that you??

    http://www.research.att.com/~bs/bs_faq.html#C-is-subset
  • ICU 2009-02-11 15:57
    DWalker:
    ObiWayneKenobi:
    Incompetence at it's best.



    Sorry to correct your "incompetence" sentence, but "it's" should be "its". I won't say that you're incompetent, though...


    Actually the apostrophe is correct. The possessive form would apply because "best" would be an attribute possessed by this particular example of incompetence.

    for review: http://www.meredith.edu/grammar/plural.htm
  • huojia 2009-03-02 01:20
    &nbsp;&nbsp;
    货架racking.&nbsp;&nbsp; 仓储货架
    南京货架设备要产品包括:重型货架
    ,阁楼货架,超市Shelf,重量型货架,横梁式货架,驶入式货架... 仓储笼
    货架的形式与材料 · 立体仓库 · 货架厂
    物流规划设计的步骤与程序(货架的设计... 中国物流行业呈现三足鼎立抢市场 · 亚洲第三方物流的现状和发展 ... 托盘
    抽出式货架系列 · 重力式 货架/推入式货架钢托盘
    移动式货架 · 阁楼式货架 · 悬臂式货架
    系列 长件物料储存货架&nbsp;货架公司
  • few 2009-05-19 07:00


    ドルチェ&ガッバーナ
    DOLCE & GABBANA
    ドルチェ&ガッバーナ バッグ


    ドルチェ&ガッバーナ 財布


    ドルチェ&ガッバーナ ネ

    ックレス

    ドルチェ&ガッバーナ 

    サングラス

    ドルチェ&ガッバーナ リング


    ドルチェ&ガッバーナ 香水


    ドルチェ&ガッバーナ シュー


    ドルチェ&ガッバーナ アウタ


    ドルチェ&ガッバーナ インナ


    ドルチェ&ガッバーナ シャツ


    ドルチェ&ガッバーナ ジーン


    ドルチェ&ガッバーナ 時計


    ドルチェ&ガッバーナ Tシ

    ャツ


    グッチ
    gucci
    グッチ バッグ
    グッチ 財布
    グッチ ネックレス
    グッチ サングラス


    グッチ リング
    グッチ 香水
    グッチ シューズ
    グッチ アウター
    グッチ シャツ
    グッチ ジーンズ
    グッチ 時計
    グッチ Tシャツ
    グッチ アウター
    グッチ インナー


    ディオール
    Christian Dior
    ディオール バッグ
    ディオール 財布
    ディオール ネックレス


    ディオール サングラス


    ディオール リング
    ディオール 香水
    ディオール シューズ
    ディオール アウター
    ディオール シャツ
    ディオール ジーンズ
    ディオール Tシャツ
    ディオール 時計
    ディオール インナー

    ヴィトン
    LOUIS VUITTON
    ヴィトン バッグ
    ヴィトン 財布
    ヴィトン ネックレス


    ヴィトン サングラス


    ヴィトン リング
    ヴィトン シューズ
    ヴィトン アウター
    ヴィトン シャツ
    ヴィトン ジーンズ
    ヴィトン Tシャツ
    ヴィトン 時計

    シャネル
    CHANEL
    シャネル バッグ
    シャネル 財布
    シャネル ネックレス


    シャネル サングラス


    シャネル リング
    シャネル 香水
    シャネル シューズ
    シャネル アウター
    シャネル シャツ
    シャネル ジーンズ
    シャネル Tシャツ
    シャネル 時計
    シャネル インナー


    プラダ
    prada
    プラダ バッグ
    プラダ 財布
    プラダ ネックレス
    プラダ サングラス


    プラダ リング
    プラダ 香水
    プラダ シューズ
    プラダ アウター
    プラダ シャツ
    プラダ ジーンズ
    プラダ Tシャツ
    プラダ 時計



    フェラガモ
    SALVATORE FERRAGAMO
    フェラガモ バッグ
    フェラガモ 財布
    フェラガモ ネックレ


    フェラガモ サング

    ラス

    フェラガモ リング
    フェラガモ 香水


    フェラガモ シューズ


    フェラガモ アウター


    フェラガモ シャツ


    フェラガモ ジーンズ


    フェラガモ Tシャツ


    フェラガモ 時計


    セリーヌ
    CELINE
    セリーヌ バッグ
    セリーヌ 財布
    セリーヌ ネックレス


    セリーヌ サングラス



    [URL=http://celine-lukus.com/item/category/perfume]セリーヌ 香水

    セリーヌ シューズ
    セリーヌ アウター
    セリーヌ シャツ
    セリーヌ ジーンズ
    セリーヌ Tシャツ

    ボッテガ
    BOTTEGA VENETA
    ボッテガ バッグ
    ボッテガ 財布
    ボッテガ ネックレス


    ボッテガ サングラス


    ボッテガ リング
    ボッテガ 香水
    ボッテガ シューズ
    ボッテガ アウター
    ボッテガ シャツ
    ボッテガ ジーンズ
    ボッテガ Tシャツ

    コーチ
    COACH
    コーチ バッグ
    コーチ 財布
    コーチ ネックレス
    コーチ サングラス


    コーチ リング
    コーチ 香水
    コーチ シューズ
    コーチ アウター
    コーチ シャツ
    コーチ ジーンズ
    コーチ Tシャツ
    コーチ 時計


    ダンヒル
    dunhill
    ダンヒル バッグ
    ダンヒル 財布
    ダンヒル カフスボタン



    [URL=http://dunhill-lukus.com/item/category/ring]ダンヒル リング

    ダンヒル 香水
    ダンヒル シューズ
    ダンヒル アウター
    ダンヒル シャツ
    ダンヒル ジーンズ
    ダンヒル Tシャツ
    ダンヒル 時計

    ロエベ
    LOEWE
    ロエベ バッグ
    ロエベ 財布
    ロエベ ネックレス
    ロエベ サングラス


    ロエベ キーホルダー
    ロエベ 香水
    ロエベ シューズ
    ロエベ アウター
    ロエベ シャツ
    ロエベ ジーンズ
    ロエベ Tシャツ

    ディーゼル
    DIESEL
    ディーゼル バッグ
    ディーゼル 財布
    ディーゼル ネックレス


    ディーゼル サングラ


    ディーゼル リング
    ディーゼル 香水
    ディーゼル シューズ
    ディーゼル アウター
    ディーゼル シャツ
    ディーゼル ジーンズ
    ディーゼル Tシャツ


    ディーゼル 時計
    ディーゼル インナー

    デリヘル 大阪
    仙台 デリヘル
    仙台 風俗
    仙台 デリヘル
    仙台 風俗
    仙台 デリヘル
    仙台 風俗
    家族葬
    滋賀 賃貸
    葬儀 費用
    滋賀県の賃貸
    滋賀の賃貸
    アダルト SEO
    被リンク
    茶道具 買取
    絵画 買取
    レザー
    革小物
    クレジットカード 現金化
    現金化
    ショッピング枠 現金化
    クレジットカード 現金化
    現金化
    ショッピング枠 現金化
    FX
    FX 比較
    FX 初心者
    ダイエット
    ダイエット食品
    腕時計
    ヘアアイロン
    クレイツ
    アイビル
    アドスト
    バッグ
    ネイル
    アクセンツ
    脱毛 大阪
    埋没 大阪
    わきが 大阪
    オーロラ 大阪クリニック
    タウンサーチ
    探偵 大阪
    浮気調査 大阪
    素行調査 大阪
    別れさせ 大阪
    吹田 美容室
    エステ 尼崎
    メナード 梅田
    MM
    MAJORITY&MINORITY
    エムエム
    メナード 梅田


    キャッシング
    大阪 賃貸
    中古車 販売
    ルームウェア
    大阪 マンション
    賃貸マンション 神戸
    中古 ゴルフクラブ
    クールビズ
    フィットネスクラブ
    大阪府 司法書士
    クレジット 申し込み
    ベビードール
    矯正歯科 東京
    ホワイトニング 東京
    大阪 ラブホテル
    リサイクルショップ
    不動産
    カードローン
    投資 信託
    下着
    即日 キャッシング
    銀行
    神戸市 中央区 税理士
    FX
    消費者金融
    ローン
    引越し
    生命保険
    ジェルネイル
    人材派遣
    ネット証券
    アフィリエイト
    格安航空券
    ウィークリーマンション
    レンタカー
    SEO
    オフィス家具
    合宿免許
    ペット用品
    高速バス
    デリヘル
    キャバクラ
    派遣
    コラーゲン
    化粧品
    インテリア
    ウェディング
    結婚相談
    投資物件
    留学
    貸事務所 大阪
    経営コンサルティング
    工芸品
    高級品
    自動車保険
    ホテヘル
    レストランウェディング
    バイク買取
    運転免許
    ベビーカー
    外反母趾
    圧力鍋
    腕時計
    フェラガモ
    デリヘル
    キャバクラ
    セレブ
    プラセンタ
    カルシウム
    青汁
    ブルーベリー
    家具
    脱毛クリーム
    除毛クリーム
    コスト削減 大阪
    弁護士 大阪
    車買取 大阪
    バイク買取 大阪
    エステ 大阪
    リフォーム 大阪
    大阪 歯科
    派遣 大阪
    アルバイト 大阪
    転職 大阪
    大阪 住宅
    大阪 専門学校
    グルメ 大阪
    ホテル 大阪
    一戸建て 大阪
    大阪 宿泊
    大阪 マンション
    デリヘル 大阪
    印刷 大阪
    不動産 大阪
    賃貸 大阪
    ブライダル 大阪
    リサイクル
    アダルト SEO
    賃貸
    SEO 大阪
    イベント コンパニオン 大阪
    転職 大阪
    大阪 ラブホ
    ペット ショップ 大阪
    豆腐
    京都 不動産
    運転免許 合宿
    ヘアアイロン
    ダイエット
    ダイエット
    デリヘル
    キャバクラ
    シャンパン
    老人ホーム
    精力剤
    大阪 ラブホテル
    ブランド品 買取
    ワイン
    京都 不動産
    ペット
    リサイクルショップ
    歯科求人
    結婚式場
    バイク便
    動物病院
    美容整形外科
    エルメス
    ヘアアイロン
    クレイツ
    シャンプー
    アイビル
    ジェルネイル
    育毛剤
    ドライヤー
    アゲハ嬢
    ダイエットサプリ
    エステ 大阪 フェイシャル
    エステ 大阪 求人
    エステ 大阪 メンズ
    リフォーム 大阪 キッチン
    リフォーム 大阪 マンション
    リフォーム 大阪 外壁
    大阪 歯医者 ランキング
    大阪 歯医者 料金
    大阪 歯医者 矯正
    派遣 大阪 求人
    派遣 大阪 短期
    派遣 大阪 ランキング
    アルバイト 大阪 検索
    アルバイト 大阪 短期
    アルバイト 大阪 口コミ
    転職 大阪 求人
    転職 大阪 ランキング
    転職 大阪 女性
    大阪 住宅 検索
    大阪 住宅 ローン
    大阪 住宅 中古
    専門学校 大阪 美容
    専門学校 大阪 看護
    専門学校 大阪 調理
    大阪 グルメ カフェ
    大阪 グルメ お好み焼き
    大阪 グルメ たこ焼き
    ホテル 大阪 シティホテル
    ホテル 大阪 ビジネスホテル
    ホテル 大阪 モーテル
    大阪 一戸建て 検索
    大阪 一戸建て 口コミ
    大阪 一戸建て ランキング
    大阪 宿泊 格安
    大阪 宿泊 高級
    大阪 宿泊 口コミ
    大阪 マンション 新築
    大阪 マンション 中古
    大阪 マンション 賃貸
    大阪 デリヘル 人妻
    大阪 デリヘル OL
    大阪 デリヘル 3P
    印刷 大阪 チラシ
    印刷 大阪 名刺
    印刷 大阪 格安
    大阪 不動産 検索
    大阪 不動産 分譲
    大阪 不動産 比較
  • wm 2009-07-06 05:18
  • BlackwaterMerk 2010-03-28 04:17
    "Just look at it," she responded, "it's everything, all around. For example, you used dots for your bullet points and he has these nice arrows."

    I never ended up getting a call about a position at the CIA.


    ^^^
    ||| Was this a real story? I think I just lost a little faith in humanity.
  • dgghua 2010-09-04 04:34
    Thank You for the post. I love to read interesting post that has knowledge to impart. I hope to read more articles from you and in return I will post also my articles in the forum so that others can benefit from it. Keep up the good work!Rosetta stone learning software worthy of trust,rosetta stone english the effect is very obvious, guarantee our product, progress quickly!
  • samantha cruise 2010-10-09 06:01
    I agree with post analysis
    <a href='http://www.riseuniversity.com/schools-majors/computer-science/'>Computer Science school</a> | <a href='http://www.riseuniversity.com/'>Online degree</a>
  • Prism 2011-07-12 01:03
    Steve:
    Argh! I hate people who keep claiming that because C++ is not a proper subset of C that therefore they are completely different languages.

    Firstly, are we talking about K&R C, ANSI C, or C99(doubtful)?
    What code would you write in ANSI C that you would actually want to write that wouldn't compile in C++?

    Yes you can write crap C code that a C++ compiler won't compile, but why would you want to?

    For all intensive porpoises C++ is a superset of C.


    And I'll betcha those dolphins have stunning resumes too!
  • Prism 2011-07-12 01:21
    Smash King:
    Anonymous Cowherd:
    dubbreak:
    C++ is a proper superset of C.


    Incorrect. There are all kinds of things that are legal in C that are not legal in C++. void * conversions are the obvious example. C++'s compatibility with C is more or less limited to making sure you can use C headers and libraries in programs without any difficulty; running non-trivial C code through a compiler as C++ will generally not work.
    I disagree. I have never used or studied C++, but I often see C++ WTFs here and can fully understand them. It would take me just a few hours to grasp the differences, receive the official title of CPP programmer and start on the new project.
    I think a nice analogy is playing acoustic guitar and electric guitar. You can play almost anything you do in one with the other, but if you need to use vibrato or harmonics or pull the distortion lever on an acoustic guitar you're stuck.


    You would be correct, *somewhat*, only if you had a stash of extensive OOP in your back pocket that you acquired elsewhere.

    Your musical analogy needs to be changed into: Being a one man band, then being a real orchestra-level conductor/composer.
  • Prism 2011-07-12 01:35
    Steve:
    Neeneko:
    Steve:

    I would say that a good C++ programmer can write good C code straight away. A good C programmer can pick up C++ quickly but would need to learn the ++ part of the language/std library.


    I have to disagree. I've found that good C++ programmers THINK they are writing good C code, but often they don't. I used to work in a mixed C and C++ environment and sometimes got headaches when the C++ programmers tried to 'help' on sections of C code. They were bright programmers who really know thier C++ stuff but they just didn't think of the types of problems you encounter in C or how to deal with them. It got esp messy when try tried resource management, overloading, or polymorphisms.. things that are done magically for you in C++ but you have to do them manually in C.

    Now granted with had similiar problems when it came to the pure C programmers trying to help in C++ code.... usually they were unaware of all the things the language helps you with and thus kept doing things the "C" way... or they discovered a useful feature and used it to death rather then were it was appropriate.


    They can't be very good C++ programmers if they can't write decent C code. Seriously, I'd like to see some pure C code that a C++ programmer wouldn't understand.


    As someone who learned C++ first, I can tell you that someone like me might understand a select piece of C, but only after time. We don't recognize the idioms used, which results in a confidence hit.

    If C and C++ programmers are both 'mechanics', the C people are more 'machinists'.