Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I see that many companies require the same skill. This skill is often described as following:

"Applicants are required to speak C++ fluently."

I never really understand what fluent meant for programming. So, my question is:

When do you speak a programming language fluently?

share|improve this question

closed as not constructive by Glenn Nelson, Eric King, GlenH7, ChrisF Feb 8 '13 at 22:45

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

8  
When you prefix every sentence you speak with cout << ;) –  FrustratedWithFormsDesigner Feb 8 '13 at 20:28
    
Okay, that made me laugh. Thank you, FrustratedWithFormsDesigner. –  Frank Feb 8 '13 at 20:33
1  
Perhaps the same thing they mean when they say 'speak English(or whatever language) fluently' - to be able to express your thoughts without trouble. In this context, it would be bringing algorithm to implementation without struggle. Perhaps you reach there with more practice. –  Sundeep Feb 8 '13 at 20:35
2  
I had a hard time understanding your question because you have a very strong Java accent. –  Mathew Foscarini Feb 8 '13 at 21:08
2  
@MathewFoscarini: At leatht he wathn't thpeaking in LISP! –  FrustratedWithFormsDesigner Feb 8 '13 at 21:18

3 Answers 3

up vote 8 down vote accepted

I consider myself "fluent" in a language when I can sit down and write a program without looking at a reference to do so. That I know the ins and outs of a language and can use some language specific features well.

I consider myself "proficient" in a language if I can sit down and read code, and write some basic code without a reference.

I consider myself "familiar" with a language if I can read the code and understand it and have written a few simple programs using it, but haven't really done any heavy lifting with it and still rely heavily on a reference to code in it.

That's me though. This is how I portray myself on my resume and in interviews. I've interviewed some people who greatly over state their skills in a language, saying the are proficient when they couldn't do a "Hello World" app without looking up how.

share|improve this answer
    
Great answer, thank you very much. I'll accept it when I can ;) –  Frank Feb 8 '13 at 20:35
4  
hint: Fluent != Have the whole language memorized. No one, I repeat NO ONE knows all of C++ without looking at a reference for the more obscure parts –  Earlz Feb 8 '13 at 20:58
    
@Earlz: You make an interesting point, because it's one thing to memorize a language's syntax and quite another to be able to say "I need to use a template for what I'm about to do but forget the syntax." I'll take the candidate who does the latter any day of the week. –  Blrfl Feb 8 '13 at 21:41
1  
@Earlz ~ Indeed. That's why I said some language specific features, not all of them. You know what you write. I'd expect a very different language skill set from a web developer vs. a Window's mobile developer, even though they may both use C#. –  Tyanna Feb 8 '13 at 22:20
    
A few weeks ago, I had an interview. I stated in my CV something like "familiar with the basics of web programming (used html, css, javascript, php, ruby on rails...)"... Then when I came there I told them I don't really remember javascript syntax but I could write a basic application in it if I had internet access. Their answer was that what I wrote in my CV was in conflict with my actual knowledge and that "I'll rarely have Internet access when being interviewed". :/ –  iCanLearn Feb 8 '13 at 22:20

I would say that this requires being able to read and write C++ on a very proficient level. You can't be fluent and be like, "Oops, gotta run off to MSDN to remember wtf a virtual function is.".

share|improve this answer

Companies mean that you should be able to work with the C++ code base they already have with no learning period. Therefore, what this means is very dependent on the particular position being filled.

I'd argue that this problem is particularly big for C++, because the language is just so bloody big (Stroustrup never met a language concept he didn't like) that it is near-impossible to be actually fluent with every part of it. In practice, every development shop uses their own custom-tailored mix of a subset of the language itself and a particular set of helper libraries, and does their best to forget that there is a lot more that they aren't using. (Note that calling companies on this is usually a waste of time - C++ programmers are quite defensive about their particular style of using it and often dismiss other styles as "Yeah, that exists, but you'd have to be crazy to actually use it!". You've heard of how the Perl community considers it explicitly OK to speak only a subset of the language, even if it's a rather small, childish subset? Well, C++ is the exact opposite.)

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.