Computer Science Canada

When do you "know" a language?

Author:  michaelp [ Sat Jun 07, 2008 7:31 pm ]
Post subject:  When do you "know" a language?

Just wondering what you guys think about this: When exactly do you "know" a language?
Can just learning that basics of the language that are found in every language be when you know it?
Or when you learn about the things that separate the specific language you are learning from other languages be when you "know" it?
Or even just know a simple "Hello World!" and input program from the language be when you know it just because you can write something in the language?
Like when there is a thread that ask what programming languages you know, can you just say what languages you have attempted to learn and tried out?

Author:  CodeMonkey2000 [ Sat Jun 07, 2008 8:15 pm ]
Post subject:  RE:When do you "know" a language?

Whenever you feel confident with the language I guess.

Author:  r691175002 [ Sat Jun 07, 2008 8:24 pm ]
Post subject:  Re: When do you "know" a language?

Whenever you could finish projects in said language without being carried along by tutorials and documentation.
Basically, like CodeMonkey said.

Author:  Dan [ Sat Jun 07, 2008 8:38 pm ]
Post subject:  Re: When do you "know" a language?

r691175002 @ 7th June 2008, 8:24 pm wrote:
Whenever you could finish projects in said language without being carried along by tutorials and documentation.
Basically, like CodeMonkey said.


I think this is rather wrong, i don't think any programmer working in the real world has every command and function memeorized to the point where they do not need to use the documentation of the framework or langue, and even if they did it probly is not the best method of programming as the langue changes and you would probly be missing out on finding lots of intresting functions and parts of the langue that you have forgoten about or are more rarerly used.

When i am coding my self i offten have the doucmentaion for the langue up and some reference books around. It might be eductional to remake a function that all ready existices in the langue or framework but it is a real wast of time when there is no need and lots to be done (witch is common to do when you are not paying enought antation to the doucmentation).

Personaly i don't think "knowing" a language (how ever that might be defined) is any where close to as imporent as knowing the conspects of computer science and software engering. Once you have a good grapsp of the basic and more advaced conspects chaning langues is trival and becomes easyer with the more expcerince you have.

In terms of knowing a langune, i don't think any one ever realy knows everything about a langue as they are countional changing and new technoglys and uses are coming up each day. Even the peoleop invoilded in the creation of a langune pronbly do not know every function with in it's apis and libbarys and how the function exctaly.

Author:  OneOffDriveByPoster [ Sat Jun 07, 2008 8:47 pm ]
Post subject:  Re: When do you "know" a language?

I think you "know" a language when you can understand programs writen in them by other people and the when, why and how of the patterns that they use. So like with "natural" languages--when you can express yourself in the language (writing) and when you can evaluate things expressed in that language (reading comprehension). I wouldn't say I _know_ any programming language well, but I guess I can _use_ some of them.

Author:  r691175002 [ Sat Jun 07, 2008 10:31 pm ]
Post subject:  Re: When do you "know" a language?

Dan @ Sat Jun 07, 2008 8:38 pm wrote:
I think this is rather wrong, i don't think any programmer working in the real world has every command and function memeorized to the point where they do not need to use the documentation of the framework or langue, and even if they did it probly is not the best method of programming as the langue changes and you would probly be missing out on finding lots of intresting functions and parts of the langue that you have forgoten about or are more rarerly used.

I didn't mean that you should have everything memorized, just that you should be able to code something without having three tutorials open in a browser and a syntax reference in front of you.

Author:  btiffin [ Sat Jun 07, 2008 10:46 pm ]
Post subject:  Re: When do you "know" a language?

I'll ditto Dan; but I still have to do the old guy ramble thing first ...

I've been coding professionally and for fun for 30+ years now. I've got nearly 20,000 hours of Forth programming under my belt. Haven't got a clue. But I can read just about any source code (after an hour or two of doc reading if I've never seen the language before) and feel confident that I could find a bug or offer a reasonable feature change, but I still learn something new every day. Even on/off is deep enough that entire careers are spent dealing with the philosophy of TRUTH. I don't think I've spent a day not looking up docs or help or man or info or grep or google or ... too many things to remember. Even Einstein had a quote something along the lines of I can't tell you how many feet are in a mile, but I know what book to grab to find out. I'd dare say that even the designers of languages can't remember why all the decisions were made a few years after the fact. A strong reason to document your code. A few months later you've grown, learned new things, and may not even remember typing in the source let alone why. Other code you'll recall writing 20 years later and can almost recite it line for line. Brains are like that.

As humans, imho, we are never done learning. And never fear grabbing a book in front of colleagues. Some may scoff when you can't remember the exact printf format spec you need at the moment, but bosses will appreciate it when your code only has to be debugged once instead of failing in quality control or during a customer demo (of course they won't notice ... unless it fails ... then brown stuff hits fans). I've used gcc since the late 80's. I could not tell you half the compiler switches without access to a console and --help, man or info. As a matter of fact; I just did the man ... I couldn't tell you 10% of the switches without looking, Smile yet I still feel I can run with the big dogs when it comes to the GNU compiler collection.

Carl, my hero and the designer of REBOL asks us for our thoughts all the time. It's a good sign. Walter Bright of D fame is the same way. The late Dr Ralph Griswold developed Icon by asking students to write a lot of it for him. All good signs.

Anyway, enough rambling. You'll know when you know; but I'll also add that it is bad form to think you know it all. Smile

Sorry for the overlong ditto Dan.

Cheers

Author:  wtd [ Sun Jun 08, 2008 6:38 pm ]
Post subject:  RE:When do you "know" a language?

When you dream code in that language.

Author:  rizzix [ Sun Jun 08, 2008 6:47 pm ]
Post subject:  Re: When do you "know" a language?

btiffin @ Sat Jun 07, 2008 10:46 pm wrote:
The late Dr Ralph Griswold developed Icon by asking students to write a lot of it for him.
Most profs do that. Razz

Author:  Tony [ Sun Jun 08, 2008 8:38 pm ]
Post subject:  RE:When do you "know" a language?

When you bootstrap that language Wink

Author:  chrisbrown [ Sun Jun 08, 2008 8:41 pm ]
Post subject:  RE:When do you "know" a language?

I'd say you know (or shall we say, understand sufficiently) a language when you are able to both, solve a given problem in more than one way, and also know which way is most efficient with respect to the language and the problem.

Author:  syntax_error [ Mon Jun 09, 2008 3:18 am ]
Post subject:  RE:When do you "know" a language?

when you are not limited by the syntax. What I mean to say is you do not limit yourself to that one language.

Author:  jeffgreco13 [ Mon Jun 09, 2008 8:13 am ]
Post subject:  Re: When do you "know" a language?

I'm gonna say that you 'know' a language when you are able to program in it. Meaning you're able to sit there and read code and understand exactly what it is doing and then turn around and use any command, whether you know it or read it in a tutorial/documentation. For example in PHP, understanding that the:

code:
mysql_query(...);


can be called at any time throughout a program, but if can also be called within an if statement to test if it was successful, because the command itself returns true if it worked.

So knowing how to apply a language is 'knowing' it. Being able to optimize, and write with little help as if it were ur birth language, now thats just being a pro.

Author:  Prabhakar Ragde [ Mon Jun 09, 2008 1:07 pm ]
Post subject:  Re: RE:When do you "know" a language?

wtd @ Sun Jun 08, 2008 6:38 pm wrote:
When you dream code in that language.


Reminds me of an old joke, about the French teacher who told her students that they would "know" French when they dreamt in it. One student tried hard in class but was pretty bad at the language. But he came in one day all excited, saying, "Teacher, teacher, last night I finally had a dream in which everyone was talking French!" The teacher said, "Great! What was the dream about?" and the student said "Heck if I know, I couldn't understand a word they were saying!"

Author:  Aziz [ Mon Jun 09, 2008 3:22 pm ]
Post subject:  RE:When do you "know" a language?

Isn't it a kind of trivial question? Programming, even in just one language, is all about learning. You're constantly learning more things about the language, or at least programming.

I supposed there is a point where you know the language to a professional extent. You know how the language works, what exactly it can and can't do, the flaws and benifets, and the same for the standard library of the language.

For example, knowing Java. You'd have to understand OO concepts, and how Java applies them. Understanding the way Exceptions work and how they're handled. How Java deals with Generics and uses Enums. Factory classes and collections are used throughought the standard java library, and so knowing those is part of knowing the language. There's so much more - Java isn't just knowing how to write functions or a for loop. It's knowing how for loops and "methods" are used in java, and Strings, and Intefaces and the Exception class.

But knowing a language isn't knowing programming, though they come together usually because you have to grasp on to grasp the other. Knowing how to implement a linked list isn't part of knowing java. Knowing java would help you implement a linked list in java, and vice versa, but the actual knowledge of a linked list doesn't neccesarily confer the knowledge of a programming language.

Damn, I sound smart.

Author:  Insectoid [ Mon Jun 09, 2008 5:00 pm ]
Post subject:  RE:When do you "know" a language?

I don't know if anyone's said this yet, because there are so many long posts I don't feel like reading, but,

I believe that once you have learned how to use a majority of that language's commonly used syntaxand a portion of the less commonly used syntax, and help people more than you ask for it, then you 'know' that language. That doesn't mean you know how to program though.

Programming involves considerable knowledge of the logic of the language. Knowing one language will help little when trying to learn a new one; knowing how to program will help a lot.

Aziz, you do sound smart!

Author:  Epic Tissue [ Mon Jun 09, 2008 5:23 pm ]
Post subject:  RE:When do you "know" a language?

I guess you know a language when you understand it Smile

Author:  Dragan [ Mon Jun 09, 2008 5:48 pm ]
Post subject:  Re: RE:When do you "know" a language?

Prabhakar Ragde @ Mon Jun 09, 2008 7:07 pm wrote:
wtd @ Sun Jun 08, 2008 6:38 pm wrote:
When you dream code in that language.


Reminds me of an old joke, about the French teacher who told her students that they would "know" French when they dreamt in it. One student tried hard in class but was pretty bad at the language. But he came in one day all excited, saying, "Teacher, teacher, last night I finally had a dream in which everyone was talking French!" The teacher said, "Great! What was the dream about?" and the student said "Heck if I know, I couldn't understand a word they were saying!"


Tonight, I will dream in english. Very Happy Very Happy Very Happy

Author:  Aziz [ Mon Jun 09, 2008 9:48 pm ]
Post subject:  RE:When do you "know" a language?

Epic, and when do you "understand" a language. Also, insectoid, I don't think syntax is so closely related to knowledge of a language. For example, Java's syntax is quite similar to C#'s, but to know one is not to know the other. It also requires knowledge of the language tools, and how to apply them.

Author:  Tony [ Tue Jun 10, 2008 1:12 am ]
Post subject:  RE:When do you "know" a language?

More comments on reddit.

Author:  btiffin [ Tue Jun 10, 2008 2:41 am ]
Post subject:  RE:When do you "know" a language?

Well done Tony, (and michealp for the original question), you've got quite the buzz going.

And I don't know jack.

Cheers

Author:  michaelp [ Tue Jun 10, 2008 8:40 pm ]
Post subject:  RE:When do you "know" a language?

Tehehe, I made a "buzz".
And for the memorizing thing, don't you "technically" still have to memorize some parts of the language that you are learning, even if it's just small part of it, like some sort of sneaky part of the language.

Author:  btiffin [ Tue Jun 10, 2008 9:05 pm ]
Post subject:  RE:When do you "know" a language?

Memorize is perhaps not quite the right word. Understanding more like. But, of course, going to the manual every time to remember the order of the three expressions in a C for statement is probably not going to get you past the probationary period of a C programmer position. Smile

Cheers

Author:  Aziz [ Wed Jun 11, 2008 9:16 am ]
Post subject:  RE:When do you "know" a language?

Not because you haven't memorized it, but rather because it shows you haven't used the language for longer than 3 hours total Razz

Author:  jeffgreco13 [ Wed Jun 11, 2008 9:42 am ]
Post subject:  Re: When do you "know" a language?

Yeah, let's get one thing straight tho. I can't deal with people that think they 'know' a language because they've heard of it.

The only thing below a noob is a POSER!


: