What do you consider competent knowledge of a language?

TridenT

Lifer
Sep 4, 2006
16,810
45
91
This is one of those areas where I am always uncertain.

Even though I've done plenty of Java programming in classes I don't think I know the language even a little. The same can be said of almost any language that I've used. I frequently have to look methods up whenever I start programming. I remember using the API heavily back in my first couple classes because it was forced on us (to learn how to read the API on our own) and thinking, "This is so much. No one could possibly ever know even half. What is a realistic expectation then when saying you know Java?"

So, at what level of knowledge of a programming language would you consider putting it on your resume? (When you're starting out, after all)
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
I consider competency and fluency to mean nearly the same thing when it comes to programming languages. You should be fluent. You should know the syntax, idioms, patterns, applications, strengths, weaknesses, and processes associated with creating software in that language, on the relevant platform.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
If I give you a coding problem that skilled x programmer can solve in y hrs, you should be able to do it in 2*y hrs. That is what I'd consider skilled. Essentially that even if you don't know some details and features and classes, you can follow docs or search for solution and solve the problem.
 

douglasb

Diamond Member
Apr 11, 2005
3,163
0
76
I don't think that knowing entire API's or libraries is feasible, nor does it equate to competent knowledge of a language. This is especially the case with massive libraries like Java and .NET.

I think Mark's answer is very reasonable. If I can generally navigate my way around all of the major constructs of the language, and I can look up any given function in the API in less than a minute and incorporate that into what I am building, then I would consider my knowledge just as competent as somebody who wasted their time memorizing various minutiae from the API.
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
If I give you a coding problem that skilled x programmer can solve in y hrs, you should be able to do it in 2*y hrs. That is what I'd consider skilled. Essentially that even if you don't know some details and features and classes, you can follow docs or search for solution and solve the problem.

Just don't follow this reasoning inductively :)

My feedback for putting a language on a resume is to do so iff:
- You can answer coding interview questions in that language, and,
- You can talk about your last project in that language in a way that makes you look good to an interviewer.

I.e., if you can belt out "hello world", that's probably not good enough.
 

Tweak155

Lifer
Sep 23, 2003
11,448
262
126
If I give you a coding problem that skilled x programmer can solve in y hrs, you should be able to do it in 2*y hrs. That is what I'd consider skilled. Essentially that even if you don't know some details and features and classes, you can follow docs or search for solution and solve the problem.

Hmmm I might need to write a program to figure this out...
 

DaveSimmons

Elite Member
Aug 12, 2001
40,730
670
126
For APIs or libraries you should understand how they are used, the basic ideas behind them and how the overall design works in practice.

With a new library or API there's generally an initial period when you're looking up everything and still figuring out how it all fits together. I'd consider myself competent once I'm past that and am just looking up less-used functions or non-obvious parameters.

One metric might be how many lines of code you can write before you need to look something up :) . At first it might be less that 1:1 (lines:lookups) but eventually the lines would be much higher than the lookups.

This isn't perfect, for some of my work the coding is almost all doing "obscure" things that Microsoft wasn't expecting me to do and it might take an hour of research to write 4 lines of code.
 
Last edited:

ForumMaster

Diamond Member
Feb 24, 2005
7,797
1
0
For APIs or libraries you should understand how they are used, the basic ideas behind them and how the overall design works in practice.

With a new library or API there's generally an initial period when you're looking up everything and still figuring out how it all fits together. I'd consider myself competent once I'm past that and am just looking up less-used functions or non-obvious parameters.

One metric might be how many lines of code you can write before you need to look something up :) . At first it might be less that 1:1 (lines:lookups) but eventually the lines would be much higher than the lookups.

This isn't perfect, for some of my work the coding is almost all doing "obscure" things that Microsoft wasn't expecting me to do and it might take an hour of research to write 4 lines of code.

:hmm: when the IL generated by VS is insufficient and must be rewritten manually, what level is that? :D

happened to us at work a couple of time. a coworker reimplemented a data type converter "since MS wrote it inefficiently".