Live data from Hacker News

Ask HN: At what proficiency do you consider 'knowing' a language?

news.ycombinator.com

1–10 of 19 posts

Ask HN: At what proficiency do you consider 'knowing' a language?

#1
Lying on a resume is obviously bad, but when do you consider being able to list a new language on your resume as something you know? For example, I've written programs in a dozen languages over the last few years but if someone asked me to write something in any 6 of them I would have to look up some of the syntax to know if it needs a parenthesis or semi-colon. Is that considered not knowing it?

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#2
I've seen on most resumes if someone knows a language their experience with that language is also denoted.

ie:

Python[Expert] Scala[Intermediate] C++[Beginner]

I suppose you could do something like that just to make everyone who reads your resume aware of your specific skill set - instead of generalizing.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#3
I will generally ask candidates a few questions about every skill on the resume. So, if you're not comfortable answering a few general questions or having a meaningful conversation about the skill then you should not include it on your resume. Including a skill level can help frame the conversation or give context, but if you can't provide 2-5 minutes on the pros and cons of the language/skill, then I'll assume you don't actually possess that skill.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#4
post #3

I will generally ask candidates a few questions about every skill on the resume. So, if you're not comfortable answering a few general questions or having a meaningful conversation about the skill then you should not include it on your resume. Including a skill level can help frame the conversation or give context, but if you can't provide 2-5 minutes on the pros and cons of the language/skill, then I'll assume you d…

I've been doing iOS development for 2 years. As an employee around 9 months, freelancing over a year and so on.

If someone asked me what is some pros and cons about Objective-C I really don't know what to answer.

I am not really fuzzed about language details, if someone gives me python - I will use it, perl - sure, bash? why not, c++ - sounds like fun and so on. I just don't care, if the language can solve the problem, then I can figure out how to use it for the problem at hand.

Sure some languages can obviously do tasks faster/better because of language details - for example I used Python recently because it was easier to write a script to handle some files, usually I'd use bash scripting.

I've been programming for years and years and I can solve most problems that are thrown at me, no complaints from co-workers or anything like that.

How should I deal with this "interview" question? Just read books? I never got these arguments online where people feel so strongly about whatever language X or Y.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#5
post #3

I will generally ask candidates a few questions about every skill on the resume. So, if you're not comfortable answering a few general questions or having a meaningful conversation about the skill then you should not include it on your resume. Including a skill level can help frame the conversation or give context, but if you can't provide 2-5 minutes on the pros and cons of the language/skill, then I'll assume you d…

I've been doing iOS development for 2 years. As an employee around 9 months, freelancing over a year and so on. If someone asked me what is some pros and cons about Objective-C I really don't know what to answer. I am not really fuzzed about language details, if someone gives me python - I will use it, perl - sure, bash? why not, c++ - sounds like fun and so on. I just don't care, if the language can solve the proble…

I assume (perhaps wrongly) that the interviewer is less interested in your opinions of the language and more interested in your ability to talk competently about the language for a few minutes.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#6
post #2

I've seen on most resumes if someone knows a language their experience with that language is also denoted. ie: Python[Expert] Scala[Intermediate] C++[Beginner] I suppose you could do something like that just to make everyone who reads your resume aware of your specific skill set - instead of generalizing.

Of course, the OP probably isn't sure how to differentiate between even those categories, because he feels he could use any of them at his general level of programming expertise as long as he had a syntax reference.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#7
Actually, I wonder about this from a non-technical guy's perspective as well (my work has mostly been in implementation and support). I have listed basic experience with a language on my resume, and I know that is a useful little nugget to non-technical hiring managers. When asked, I am pretty clear about the small scale of things I've built, but I still wonder if it is a little disingenuous because I don't actually know squat about data structures or algorithms, and I am not a competent programming problem-solver. (Sorry if this is a little off-topic.)

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#8
post #6
post #2

I've seen on most resumes if someone knows a language their experience with that language is also denoted. ie: Python[Expert] Scala[Intermediate] C++[Beginner] I suppose you could do something like that just to make everyone who reads your resume aware of your specific skill set - instead of generalizing.

Of course, the OP probably isn't sure how to differentiate between even those categories, because he feels he could use any of them at his general level of programming expertise as long as he had a syntax reference.

Yes, I think the reason I didn't include skill levels was because at some point I saw a post talking about the uselessness that comes with some of that. It may have been a bit extreme but what does PHP [Ninja] or Ruby [Tadpole] really indicate?

Although [Beginner] is pretty different from [Expert] no matter what, the expectation of a beginner or expert may vary widely from person to person.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#9
There are levels of "knowing" a language.

I've been writing Java since I was 14 (for 11 years now). I write Java on a daily basis for work, and I can't remember the last time I had to consult a reference on syntax. I would consider that "fluent", to use an analog from spoken/written languages, and I'd obviously put any languages in which I'm "fluent" on my resume.

I've written a lot of Python in my personal time over the years, and have a good understanding of what "idiomatic" Python looks like (comprehensions over iterators/higher-order-functions, "is"/"in" over "=="/"indexOf", etc). I would consider this "conversational", and would put it on my resume too.

Then there are languages that I have not written any projects in, aside from tutorial-type-things while learning them. These are more on a case-by-case basis; ones that I'm more comfortable with (like Elixir or Haskell) I might put on my resume with a note that I'm at a "beginner" level of familiarity; I understand many of the language concepts, but would need to consult reference material frequently, and my code is not likely to be idiomatic. With these languages, I'd ask myself the question of how comfortable would I be accepting a job where I did nothing but write code in that language. And obviously, I'd need to explain in an interview or phone screen that my knowledge is still basic.

Re: Ask HN: At what proficiency do you consider 'knowing' a language?

#10
post #8
post #6

Earlier quoted context omitted.

Of course, the OP probably isn't sure how to differentiate between even those categories, because he feels he could use any of them at his general level of programming expertise as long as he had a syntax reference.

Yes, I think the reason I didn't include skill levels was because at some point I saw a post talking about the uselessness that comes with some of that. It may have been a bit extreme but what does PHP [Ninja] or Ruby [Tadpole] really indicate? Although [Beginner] is pretty different from [Expert] no matter what, the expectation of a beginner or expert may vary widely from person to person.

It's a good way to position yourself for the kind of work you'll get, no matter how it's interpreted. If you write that you're a beginner Ruby programmer, and then after getting hired you're asked to write an entire application in Ruby by yourself, you can say in a defensible way, "That's fine, but I'll need constant help and code reviews and it's going to take a long time as I get up to speed."

If you got any pushback at that point you could ask them why they tasked the beginner with this project, when you clearly claimed you were not an expert.

The other levels can be played similarly. An intermediate person could be assigned to some project and be expected to perform mostly independently, but if there were any non-idiomatic code or poor optimizations, they could just shrug it off as a learning opportunity. "I'm no expert" you can say.

Post reply on HN