views:

82

answers:

5

Is it possible to learn an entire programming language with about a week, at most two to spare? When i say a week i mean an average full time computer science university school week. are there some specific programs you can try that will make you reach substantially above intermediate level?

Substantially above intermediate level - Getting assignments and projects done with little or no help.

A: 

Yes, but only if you already know one. For example, if you know Java, it would be relatively easy to become proficient at C# in a few days (particularly if you're using the VS IDE since intellisense helps you out along the way). Picking up a dynamic language like Ruby from something structured like C might be a little harder, but still possible.

However, if you've never programmed, it's unlikely to gain an intermediate-level ability in a couple weeks. Programming requires a different way of thinking that takes a year or two to truly sink in. Many computer science graduates still aren't proficient programmers until they spend a year or two solving real world problems. Once it "clicks" though, transferring those skills to other languages is relatively easy.

Jess
No way you write even halfway decent code in e.g. Ruby even after several weeks when coming from e.g. C. Too many huge differences, and a totally different paradigm.
delnan
You don't think it's possible given 100 hours of dedicated effort, for someone who is smart and a very good programmer?
Jess
+1  A: 

You can learn the basics in a week or two.

This is provided you already understand the underlying concepts (loops, variables, control structures in just about any language) and the more complex ideas underlying the programming paradigm (OOP, functional etc...).

To become an expert, you need years.

Oded
+1 to cancel the downvote and because I agree anyway.
delnan
+2  A: 

Learning a programming language in the same paradigm as one you already know well can be done in 2 weeks.

Learning a new paradigm will take substantially longer.

Considering you are a CS student, you have had exposure to many different languages, but are not a master of any. You will in no way be able to have mastery in such a short period of time.

You have to write a lot of code to get that, and 2 weeks isn't enough.

Byron Whitlock
Case in point, I have a CS degree, and 13 years pro exp. I am fluent in no less than 4 languages. I've been working on learning WPF for the last week. There is no way in hell I'll be proficient in by next Friday.
Byron Whitlock
In the U.S., 6th-graders can read/write English. They are not, however, generally known to write good books or novels. It can definitely be done, but as Byron points out here, it depends on what degree of "learn" or "know" you mean.
anonymous coward
downvoter care to explain?
Byron Whitlock
+1  A: 

maybe you can learn the Syntax of this programming language in a week.
but it will take 10 years to master this language and to master the "programming" :).

M.H
or 10,000 hours. i've heard that "theory" before
Chiddy
A: 

My experience has been thus: I learned C and C++ first, and every language since has been much easier to pick up, especially after attaining intermediate-advanced C++ status. This isn't to say that I think everyone should follow this path, but I think it can be extrapolated that if one spends a lot of effort learning a multi-paradigm language such as C++, one may find it easier to pick up other languages in those paradigms.

However, I'm not sure it would be at all possible for anyone to master a programming language in 2 weeks. Like a natural language, syntax is one matter, but vocabulary (here meaning frameworks, APIs, portability, etc.) is substantially more difficult to grasp as there are a lot of different ways to use a language.

One technique that might help when learning a new language efficiently is to find a superb API or framework, one that has been battle-tested and is well known for its high quality, and study it while learning the syntax of a language. A lot could be learned this way in 2 weeks, I'd think.

jrfactotum