10 Replies - 2749 Views - Last Post: 05 July 2010 - 05:38 AM

#1 BuhRock  Icon User is offline

  • D.I.C Regular

Reputation: 10
  • View blog
  • Posts: 256
  • Joined: 21-February 10

Knowing a language

Post icon  Posted 02 July 2010 - 09:42 PM

When can someone actually say that they know a language? I mean, I took a beginner Java class this past semester, and my professor said that it would take 4 years to learn hard language. I don't know what he meant by hard language, but does it really take that long? I can't imagine it taking that long.
Is This A Good Question/Topic? 0
  • +

Replies To: Knowing a language

#2 PsychoCoder  Icon User is offline

  • Google.Sucks.Init(true);
  • member icon

Reputation: 1641
  • View blog
  • Posts: 19,853
  • Joined: 26-July 07

Re: Knowing a language

Posted 02 July 2010 - 09:48 PM

First I'm moving this to Corner Cubical. Other Languages is a help forum, meaning it for asking for programming help in a language that doesn't have a specific forum here on Dream.In.Code.

Now for your question, some languages, say C or C++, can take multiple years to actually know it. Now you can learn the basics in a short amount of time if you really apply yourself, but to truly know it does take quite time time. Taking a language intro course doesn't give someone the ability to say they know the language.

Now the time it takes to truly learns a language is affected by your experience programming. Someone who's been doing it for 15 years will take less time to truly know a language than someone who's only been doing it a year or two.
Was This Post Helpful? 0
  • +
  • -

#3 macosxnerd101  Icon User is offline

  • Self-Trained Economist
  • member icon




Reputation: 10668
  • View blog
  • Posts: 39,615
  • Joined: 27-December 08

Re: Knowing a language

Posted 02 July 2010 - 09:57 PM

As PsychoCoder said, the more you program, the less time it takes you to pick up a new langauge. For instance, I've been working in Java for 3-4 years now, and it's taken me ~2.5 years to get really good with it as well as refine my programming skills. The past few months from March-June in my nonprofit website project, I was thrown into PHP, and I started from more or less the ground up and hit on Sessions, Databases/MySQL, and some OOP. Do I thoroughly know PHP the way I know Java? No. However, I know it well enough to do a lot of what I need to do in it. And that's how the IT field goes. My coworker at my internship who has been in IT for ~10 years said to me that he only keeps up with what he needs for the job, if that says anything.

As for how long until you can claim to know the language, I'd say 2.5-4 years is a good estimate, depending on how much you work in the language. You may find this thread helpful for more concrete competencies with Java.
Was This Post Helpful? 0
  • +
  • -

#4 JBrace1990  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 110
  • View blog
  • Posts: 760
  • Joined: 09-March 08

Re: Knowing a language

Posted 02 July 2010 - 11:48 PM

Honestly, knowing a language and knowing a language completely, is a lot different. For example, I can program just about any application in PHP, but there are still some functions I don't know about, or don't use, Etc., and I would say I know PHP, if only well enough to do what I need it to.
Was This Post Helpful? 1
  • +
  • -

#5 nooblet  Icon User is offline

  • D.I.C Addict

Reputation: 120
  • View blog
  • Posts: 541
  • Joined: 12-March 10

Re: Knowing a language

Posted 03 July 2010 - 12:33 AM

I am doubtful any one person will ever master everything in any given language. There is so much shit you can hack together these days, it's doubtful you can know something completely. To master it though, just as long as you can get everything you need done without a problem, I'd say that's good enough.
Was This Post Helpful? 2
  • +
  • -

#6 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

Re: Knowing a language

Posted 03 July 2010 - 02:40 AM

There are different definitions of "know" in the context of programming languages. You *know* a language when you can use that language to accomplish pretty much any task without opening up a book (reference docs don't count). It's really that simple.

Mastering a language is a completely different thing, and a nearly impossible thing with some languages (I'm looking at you, C++).

This post has been edited by Raynes: 03 July 2010 - 02:44 AM

Was This Post Helpful? 1
  • +
  • -

#7 EnvXOwner  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 357
  • View blog
  • Posts: 2,319
  • Joined: 10-August 09

Re: Knowing a language

Posted 03 July 2010 - 08:07 AM

If you want to know a language practice with it a lot. Explore new concepts. Create some applications. Understand how you made those applications. Being able to troubleshoot. Being to help someone if they have a question. Those are what I think it takes to somewhat know a language.
Was This Post Helpful? 0
  • +
  • -

#8 baavgai  Icon User is online

  • Dreaming Coder
  • member icon

Reputation: 5882
  • View blog
  • Posts: 12,761
  • Joined: 16-October 07

Re: Knowing a language

Posted 03 July 2010 - 11:40 AM

*
POPULAR

It does depend quite a bit on what you expect a the scope of a language to be. In most computer languages, the fundamental syntax is not that complex. And what a language can generally do at that level it's too broad. Even C++, probably the worst offender, isn't that bad at the basic programming grammar level. However, you throw in both coding conventions and the STL alone, and it gets a whole lot worse.

The .NET languages, even now after they've added tons of extra syntax candy, aren't that bad. However, the .NET framework is vast and knowing a fraction of the stuff that lives in just the System.Windows.Forms namespace is going to take a while.

Sane programmers don't just pick some documentation and try to memorize it; even if that worked, it's not very exciting. Rather, you start with a project and start using the language. You ask questions like "how do I handle file IO?","is there support for X" and say "there must be a library to do Y." You do the work, find some functions and snippets, and carry on with whatever project you're working on. In time, you do that less for the common stuff, but still for stuff you've never done before.

I've told my employers that I can use a new language in a week, but won't be up to speed for a month. However, even after years you'll still find elegant ways of getting the job done in any given language. Computer languages aren't really all that different in what they're doing and where they going. Rather, it's the vast libraries of established code that only experience will allow you to use effectively.
Was This Post Helpful? 6
  • +
  • -

#9 SixOfEleven  Icon User is offline

  • using Caffeine;
  • member icon

Reputation: 945
  • View blog
  • Posts: 6,342
  • Joined: 18-October 08

Re: Knowing a language

Posted 03 July 2010 - 01:28 PM

I would definitely have to agree with what baavgai had to say. It is easy enough to pick up the syntax of a language and the core concepts that go along with it. The hard part is all of the libraries that go with it. Libraries are always expanding, even if not by standards. There is constantly new code coming out, new features, new ideas. Keeping up will all of that is what is hard. I started programming back when I was 10/11. Most of what I learned back then is still applicable 30 years later in the different languages that I use now compared to then. It is keeping up with the libraries that has been a pain in the you know what. Just when you think you've learned it all you will find a new idea or the library you are used to will grow.
Was This Post Helpful? 1
  • +
  • -

#10 oneal.michaels  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 4
  • View blog
  • Posts: 116
  • Joined: 25-June 10

Re: Knowing a language

Posted 04 July 2010 - 10:44 PM

I think to know a language, you have to be the one writing it, because unless you know all of the functions, libraries etc. and how all of them work then you do not "know" the language, you can pick up on syntax and basics in a few days if you have a little programming experience but even when you thought you had mastered the language you can run into problems or need to learn about a new library that will expand your knowledge
Was This Post Helpful? 0
  • +
  • -

#11 Ace26  Icon User is offline

  • D.I.C Head

Reputation: 40
  • View blog
  • Posts: 183
  • Joined: 10-August 08

Re: Knowing a language

Posted 05 July 2010 - 05:38 AM

I think programming languages to the best of my knowledge come with their,
1. Syntatic constructs
2. Coding conventions and
3. Libraries.

If you claim to know a language, then you must be very comfortable with the first two and quite or fairly comfortable with the third depending on the project.

Having a good command of the first two means that for a new project you haven't worked on before, the extra work would come from knowing or learning the libraries to be used for it. But at this juncture, I must be quick to point that experience plays a big role like the others have pointed out and also personal ability as not all of us are hard-wired same way. For example, someone with some experience in a C-based language will not find it hard to learn PHP.

To this end I'll say master the 1 and 2 then start working on projects to get a comfortable hold on 3.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1