- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
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.
Admin
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.
Admin
Dude, you could have easily gotten that CIA job. Your resume just needed...
A BIT MORE COWBELL ^G^G^G
Admin
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 :)
Admin
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)...
Admin
Admin
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.
Admin
Admin
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#.
Admin
[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.
Admin
Admin
I always go through a stack of resumes and throw away every other one. I mean, who wants to hire someone that is unlucky?
Admin
Founded and headquartered in the Netherlands? Sounds like Philips to me...
Admin
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.
Admin
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.
Admin
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.
Admin
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.
Admin
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.
Admin
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."
Admin
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?
Admin
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.
Admin
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....
Admin
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.
Admin
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.
Admin
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)...
Admin
C'mon, prospective web developers! It's so simple maybe you need a refresher course. It's all ball bearings nowadays!
Admin
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).
Admin
Admin
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.
Admin
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.
Admin
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.
Admin
Admin
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.
Admin
The following is a legal C program that will not compile with a C++ compiler:
Are you seriously telling me C programmers never use malloc?
Admin
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.)
Admin
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.
Admin
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...
Admin
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.....
Admin
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).
Admin
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.
Admin
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.
Admin
You actually think congressman read any of those reports rather than getting four sentence summaries from their staff?
Admin
Admin
Are you seriously telling me you couldn't write that so it wouldn't compile in both C & C++?
Admin
Admin
Admin
Heh. Good point. If those typedefs are avaiable on your system that gives you a good platform independent way to work with a pointer.
Admin
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...
Admin
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.
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++.
Admin
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?