![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#11 | |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
Quote:
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
|
|
|
#12 |
|
Programming Guru
![]() Join Date: Jun 2005
Location: Adelaide, South Australia
Posts: 1,203
Rep Power: 5
![]() |
I agree with Dawei. It is possible to learn more than one language at once. It is a fair call that it is more difficult to do that, but it is certainly not impossible.
|
|
|
|
|
|
#13 | |||
|
Programming Guru
![]() Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5
![]() |
Quote:
Quote:
Quote:
Likewise, even if you associate assignment with '=' and equality with '==', it's not going to take long before you learn that in BASIC, '=' has both meaning, depending on whether it is inside or outside a boolean condition.. |
|||
|
|
|
|
|
#14 | |
|
Expert Programmer
|
Quote:
__________________
"When in Rome, Do as the Romans Do" "Beauty is in the eye of the BEER holder" "Save your breath your going to need it for your blow up doll later" SearchLores.org |
|
|
|
|
|
|
#15 | |
|
Expert Programmer
Join Date: Aug 2005
Location: Rotterdam, the Netherlands
Posts: 942
Rep Power: 4
![]() |
Quote:
|
|
|
|
|
|
|
#16 |
|
Hobbyist Programmer
|
So, should I learn C++ itself first, then OpenGL and then DX?
|
|
|
|
|
|
#17 | |
|
Expert Programmer
Join Date: Aug 2005
Location: Rotterdam, the Netherlands
Posts: 942
Rep Power: 4
![]() |
Quote:
|
|
|
|
|
|
|
#18 | ||||
|
Programming Guru
![]() Join Date: Jun 2005
Location: Adelaide, South Australia
Posts: 1,203
Rep Power: 5
![]() |
Quote:
The learning curve of most programming languages, for someone with experience, tends to be something like (there is some degree of parallelism between these phases); 1) Learn the basic syntax 2) Learn grammar and semantics 3) Learn techniques well enough to be able to do things competently in the new language, but still make mistakes in practice. This is the stage where the programmer initially works by "I do this in this way in <first language>; not to map it to <second language>". 4) Unlearn techniques from previous languages that make things difficult in the new one. This is the stage when one starts learning to solve programmin problems in the new language without thinking initially in the older language. 5) Refine skills in the new language. This is the stage when advanced idioms in the new language are learnt. 6) Achieve complete mastery of the new language. In your discussion, you are focusing on the first step (and, partially) on the second. It is the last three steps that take the time. Compare this with the learning curve of a natural language, which goes something like; 1) Learn the basic syntax 2) Learn grammar and semantics 3) Learn expressions and idiosyncracies in the new language, but still (in ones head) have to translate from the first language. This is the reason why a competent german who can speak english will sometimes as "how do I say <german expression> in english?" 4) Unlearn techniques from previous languages that make things difficult in the new one. This is the phase in which a native german speaker learns to speak english without an obvious german accent. 5) Refine skills in the new language. This is when one learns the more difficult parts of the new language (eg colloquialisms, things that don't easily translate into the language the person started with). 6) Achieve complete mastery of the language. There is a one-to-one mapping between the phases for learning programming languages and learning mapping language. The main difference is that, for learning ones first "natural language" most people will eventually get to step 5. When learning one's first programming language, a lot of people will only get to step 2 or 3, and will assume they have mastery. In effect, however, they have skills comparable with what what they had in their first natural language at the age of 5 or so. When learning a second natural language, relatively few people get past step 3: which is why native speakers of one language can easily spot people who are speaking it as a second language. One difference is that most people, even with their first programming language, achieve the equivalent of what a 5 year old would do with the first natural language --- they only get to step 2 or 3. So, when they get to step 2 or 3 in a second language, they incorrectly assume they have mastery; in reality they have not advanced much past the baby-talk stage in either language. Interestingly enough, a similar sequence comes up when learning music (which a lot of people don't realise is also a language of it's own). In terms of the above steps, a person learning the piano will be able to hit individual keys at step 1, play scales at step 2, basic tunes at step 3, advanced music at step 4, will be a concert pianist when they reach step 5, and will be a composer of the likes of Beethoven or Bach when they reach step 6. Quote:
Quote:
Syntactic changes are the trivial bit in going from one language to another. Expressing yourself in the new language, in a way that a native speaker in the language can't spot it is your second language, is much more difficult. Quote:
if (x = 1)
something(); |
||||
|
|
|
|
|
#19 |
|
Newbie
Join Date: Dec 2005
Posts: 11
Rep Power: 0
![]() |
For me it helps A LOT! I work with C++, Qbasic, and many Web languages. Oddly enough it gives me ideas and a lot of techniques work in different context. (But converting the languages can be a little complicated)
__________________
I know the meaning of life. Well I almost did but then my dictionary fell apart so I lost it =( |
|
|
|
|
|
#20 | |
|
Hobbyist Programmer
Join Date: Dec 2005
Posts: 118
Rep Power: 0
![]() |
Quote:
Perhaps in the context of programming languages this would translate to: don't write C programs in Python; instead pay attention to the idioms used by experienced Python programmers? To stretch the analogy further, could you compare a programming library to a specific set of jargon? I've heard that one can hold a 'basic conversation' using only 1000 words in a new language. If you want to talk about computers, or politics, or art though, you need a set of words (phrases, idioms) related to that subject. These words will still fit into the 'framework' (grammar) of the main language you're using. Similarly, learning the core keywords of a programming language won't help much when it comes to building a client-server application - you need to learn a particular library which you call within the framework (syntax) of the language. (This last point is a bit arguable when you're dealing with domain-specific languages which incorporate what would be libraries in other languages into their keyword set...) |
|
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|