Are there reasons for beginner programmers to learn C ?
-
Agree with most of things you written. As for neurons my humble but definitive opinion: they are only a DISH/net capturing vibrations from the command center and other sources outside the human entity i.e. this neuron net is used as operational RAM it doesn't represent the power of a given person but his ability to process according to those strings/nets (a marionette play), same goes for all living things (all is alive as far as I know). Old news (around 2006) at http://www.netezza.com/releases/2006/release111606.htm[^]: [ Netezza’s system uses a data-intensive rather than traditional compute-intensive approach. Netezza’s data management appliance, a massively parallel data analytic system, was evaluated by searching a massive semantic graph used to determine relationships between objects by storing nodes (the object) and how they link to other objects (an edge). Semantic graphs are an important technology for analyzing relationships in large data sets. The graph contained 300 billion edges and 11 billion nodes, the largest known graph search to date. Computer scientists ran level-set expansion, and bi-directional, breadth-first search against the data. More than 90 percent of the searches were completed in less than five minutes, demonstrating Netezza’s ability to scale for managing and analyzing the largest data sets. These types of calculations have traditionally been conducted on very large and complex systems, but can now be executed on an appliance that is easy to deploy, maintain and use. “We’re looking for simplicity and scalability,” said John Johnson, a LLNL computer scientist. ] It is obvious that all computational approaches suck without a super-vast data-set. Again, I am stunned how come that with all computational power we currently possess we (the INTERNET users) don't have even a dummy (not AI-class) English phrase checker?! What is the problem? My rough estimation says: 5 to 10 billion word1-word2-word3-word4 quadruples, the rest orders likewise. Thanks, fun is important yes.
Get down get down get down get it on show love and give it up What are you waiting on?
"5 to 10 billion word1-word2-word3-word4 quadruples, the rest orders likewise." What happens if a given phrase is or is not found? Do these word1-2-3-4 quads exhaust the English language? What do you mean by "the rest orders likewise"? It still remains that the human brain will out-perform silicon at this point in technology, at least. My belief is that we're missing something, some key understanding or technology. This is not to say that it won't materialize someday. Willie said it best: "There are more things in Heaven and Earth than are dealt with in your philosophy, Horatio." What we need is some new philosophy!
-
"5 to 10 billion word1-word2-word3-word4 quadruples, the rest orders likewise." What happens if a given phrase is or is not found? Do these word1-2-3-4 quads exhaust the English language? What do you mean by "the rest orders likewise"? It still remains that the human brain will out-perform silicon at this point in technology, at least. My belief is that we're missing something, some key understanding or technology. This is not to say that it won't materialize someday. Willie said it best: "There are more things in Heaven and Earth than are dealt with in your philosophy, Horatio." What we need is some new philosophy!
Despite my semi-naive understanding of this matter I have firm confidence in brute-force i.e. exhaustive approaches. That is why I mentioned IBM's nifty approach utilizing huge data-sets not simply relying on some ala-bala algorithms/heuristics. >What happens if a given phrase is or is not found? The dummy phrase checker will report rank X rank 0 respectively. >Do these word1-2-3-4 quads exhaust the English language? Almost, which is enough for the goal chased - to give the usage up-to-some-date. Of course when one needs 5-word phrase order 5 is the skeleton whereas orders 1,2,3,4 and 6,... form the flesh. >What do you mean by "the rest orders likewise"? Rest (useful or rather most needed) orders are 1,2,...,9,... I meant the n-grams regardless of order and number of entries are no different from each other. Here different approaches exist: dummy brute-force ranking, graphs, ... My intent is to traverse the easiest first. Ranking is the most interesting thing (for me), it would allow very useful output: not just as in example below tutting_my_heel_and but all similar (to what degree is another thing) phrases like: you_tutting_at_us, tutting_about_dangerous_sports, a_loud_tutting_noise, ... reporting the number of occurrences for all lower orders like: tutting 320 tutting_my 8 tutting_my_heel 6 tutting_my_heel_and 2 I cannot explain here the full picture but it is very close in appearance to family tree - I want to create the first such x-gram English language dictionary, my desire is there all major phrases to be crucified - I see each phrase as an easy-to-the-eyes big-table. I am not afraid at all from this formidable task because I rely on my ignorance, it is my primal beta-tester and friend not as one would expect the intelligence. Ignorance when used as feedback is awesome source of inspiration and superb way to explore/calibrate problematic etudes. My English is inferior and broken forever, this helps me a lot during the modeling - instead of handicap it is my advantage. Some links if you are interested: http://www.allthelyrics.com/forum/learning-english-language/116652-english-360-from-angles.html[^] At link below I tried to analyze the usage of 'tutting' in English in attempt to answer the next quetsion:
-
Despite my semi-naive understanding of this matter I have firm confidence in brute-force i.e. exhaustive approaches. That is why I mentioned IBM's nifty approach utilizing huge data-sets not simply relying on some ala-bala algorithms/heuristics. >What happens if a given phrase is or is not found? The dummy phrase checker will report rank X rank 0 respectively. >Do these word1-2-3-4 quads exhaust the English language? Almost, which is enough for the goal chased - to give the usage up-to-some-date. Of course when one needs 5-word phrase order 5 is the skeleton whereas orders 1,2,3,4 and 6,... form the flesh. >What do you mean by "the rest orders likewise"? Rest (useful or rather most needed) orders are 1,2,...,9,... I meant the n-grams regardless of order and number of entries are no different from each other. Here different approaches exist: dummy brute-force ranking, graphs, ... My intent is to traverse the easiest first. Ranking is the most interesting thing (for me), it would allow very useful output: not just as in example below tutting_my_heel_and but all similar (to what degree is another thing) phrases like: you_tutting_at_us, tutting_about_dangerous_sports, a_loud_tutting_noise, ... reporting the number of occurrences for all lower orders like: tutting 320 tutting_my 8 tutting_my_heel 6 tutting_my_heel_and 2 I cannot explain here the full picture but it is very close in appearance to family tree - I want to create the first such x-gram English language dictionary, my desire is there all major phrases to be crucified - I see each phrase as an easy-to-the-eyes big-table. I am not afraid at all from this formidable task because I rely on my ignorance, it is my primal beta-tester and friend not as one would expect the intelligence. Ignorance when used as feedback is awesome source of inspiration and superb way to explore/calibrate problematic etudes. My English is inferior and broken forever, this helps me a lot during the modeling - instead of handicap it is my advantage. Some links if you are interested: http://www.allthelyrics.com/forum/learning-english-language/116652-english-360-from-angles.html[^] At link below I tried to analyze the usage of 'tutting' in English in attempt to answer the next quetsion:
"I've been walking in the same way as I did And missing out the cracks in the pavement And tutting my heel and strutting my feet." Well, when it comes to songs and poetry, it's pretty much a matter of "it means what you think it means." Same with art. My guess: "I've been walking as I always have And avoiding the cracks in the pavement And clicking my heel and walking pompously." My best wishes for your success.
-
Despite my semi-naive understanding of this matter I have firm confidence in brute-force i.e. exhaustive approaches. That is why I mentioned IBM's nifty approach utilizing huge data-sets not simply relying on some ala-bala algorithms/heuristics. >What happens if a given phrase is or is not found? The dummy phrase checker will report rank X rank 0 respectively. >Do these word1-2-3-4 quads exhaust the English language? Almost, which is enough for the goal chased - to give the usage up-to-some-date. Of course when one needs 5-word phrase order 5 is the skeleton whereas orders 1,2,3,4 and 6,... form the flesh. >What do you mean by "the rest orders likewise"? Rest (useful or rather most needed) orders are 1,2,...,9,... I meant the n-grams regardless of order and number of entries are no different from each other. Here different approaches exist: dummy brute-force ranking, graphs, ... My intent is to traverse the easiest first. Ranking is the most interesting thing (for me), it would allow very useful output: not just as in example below tutting_my_heel_and but all similar (to what degree is another thing) phrases like: you_tutting_at_us, tutting_about_dangerous_sports, a_loud_tutting_noise, ... reporting the number of occurrences for all lower orders like: tutting 320 tutting_my 8 tutting_my_heel 6 tutting_my_heel_and 2 I cannot explain here the full picture but it is very close in appearance to family tree - I want to create the first such x-gram English language dictionary, my desire is there all major phrases to be crucified - I see each phrase as an easy-to-the-eyes big-table. I am not afraid at all from this formidable task because I rely on my ignorance, it is my primal beta-tester and friend not as one would expect the intelligence. Ignorance when used as feedback is awesome source of inspiration and superb way to explore/calibrate problematic etudes. My English is inferior and broken forever, this helps me a lot during the modeling - instead of handicap it is my advantage. Some links if you are interested: http://www.allthelyrics.com/forum/learning-english-language/116652-english-360-from-angles.html[^] At link below I tried to analyze the usage of 'tutting' in English in attempt to answer the next quetsion:
You haven't commented on my "interpretation". Any ideas why your n-gram process failed with "tutting"? What about "stutting"?
-
You haven't commented on my "interpretation". Any ideas why your n-gram process failed with "tutting"? What about "stutting"?
Please excuse me I thought that I am too talkative and you had enough of me, I rarely find people to match my chatter-boxeness. I think your version is as literal as possible - I myself see the verse as you. >Any ideas why your n-gram process failed with "tutting"? What about "stutting"? At next posts I crucified i.e. explored-fully the usage of 'tutting': http://www.allthelyrics.com/forum/learning-english-language/38909-questions-about-english-language-and-grammar-95.html#post876443[^] The goal then/there was not to do stemming. 'Stutting' is a new word to me, it is to be analyzed tonight. Please tell me where is the failure, as for my current (it is not updated for a year or so, grmbl) n-gram procedure it is still in its infancy. 'Strutting' is well-established compared to 'tutting', even I knew its usage. I salute you with a song (sung by a very talented young artist): Adam Lambert - If I Had You http://www.youtube.com/watch?v=wmXQFwlD7vk&feature=related[^]
And I'm workin' my strut but I know it don't matter
All we need in this world is some loveIn this cool video you can see the strut in action. I love the next song, I salute everyone who holds the romantic view: Adam Lambert - Sleepwalker (Glam Nation Live) http://www.youtube.com/watch?v=TZACqNnO9-E[^]
I can't turn this around
I keep running into walls that I can't break down
I said I just wander around
With my eyes wide shut because of you
I'm a sleepwalker walker walkerMore than less I too am a sleepwalker, kind of fool - I recommend you to check how profound is the etymology of 'fool' at http://www.etymonline.com/index.php?term=fool[^]. It will be very useful to see you
-
Please excuse me I thought that I am too talkative and you had enough of me, I rarely find people to match my chatter-boxeness. I think your version is as literal as possible - I myself see the verse as you. >Any ideas why your n-gram process failed with "tutting"? What about "stutting"? At next posts I crucified i.e. explored-fully the usage of 'tutting': http://www.allthelyrics.com/forum/learning-english-language/38909-questions-about-english-language-and-grammar-95.html#post876443[^] The goal then/there was not to do stemming. 'Stutting' is a new word to me, it is to be analyzed tonight. Please tell me where is the failure, as for my current (it is not updated for a year or so, grmbl) n-gram procedure it is still in its infancy. 'Strutting' is well-established compared to 'tutting', even I knew its usage. I salute you with a song (sung by a very talented young artist): Adam Lambert - If I Had You http://www.youtube.com/watch?v=wmXQFwlD7vk&feature=related[^]
And I'm workin' my strut but I know it don't matter
All we need in this world is some loveIn this cool video you can see the strut in action. I love the next song, I salute everyone who holds the romantic view: Adam Lambert - Sleepwalker (Glam Nation Live) http://www.youtube.com/watch?v=TZACqNnO9-E[^]
I can't turn this around
I keep running into walls that I can't break down
I said I just wander around
With my eyes wide shut because of you
I'm a sleepwalker walker walkerMore than less I too am a sleepwalker, kind of fool - I recommend you to check how profound is the etymology of 'fool' at http://www.etymonline.com/index.php?term=fool[^]. It will be very useful to see you
For what it's worth, the given usage of "tutting" and "strutting" are incorrect. "Tut" is a word that dictionary.com defines as: tut [pronounced as an alveolar click; spelling pron. tuht] interjection, noun, verb, tut·ted, tut·ting. interjection 1. (used as an exclamation of contempt, disdain, impatience,etc.) 2. for shame! noun 3. an exclamation of “tut.” ================ Hence, the phrase "tutting my heel" has no literal meaning in English, because "tut" is an example of onomatopeia: Onomatopoeia (also spelled onomatopœia , from Greek: ονοματοποιΐα) is a word or a grouping of words that imitates the sound it is describing, suggesting its source object, such as"click", "bunk", "clang", "buzz", "bang", or animal noises such as"oink", "moo", or "meow". The word is a synthesis of the Greek words όνομα (onoma, = "name") and ποιέω (poieō, = "I make" or "Icreate") thus it essentially means "name creation", although itmakes more sense combining "name" and "I do", meaning it isnamed (and spelled) as it sounds (e.g. quack, bang, etc.). Onomatopoeic words differ across languages because they always have to conform to some extent to the broader linguistic system they are part of. Thus the Norwegian tikk takk for the sound of a clock could never be a Dutch word because Dutch words never have long consonants at the end of the word; accordingly, the Dutch equivalent is tik tak . ============= Similarly, "strutting my feet" is technically wrong since "my feet" is redundant; "strutting" already means "moving my feet pompously." What this all boils down to is something I mentioned previously, namely that poetry, song lyrics and sometimes prose do not necessarily adhere to the letter of English conventions. Poetry and lyrics rely on such things as meter and rhyme at the expense of the normally accepted and defined rules of word order and association. For these reasons, I firmly believe that n-grams do not and cannot "define" words. They can only provide what has already been written that includes the given words. The "meaning" of a particular word must begin with it accepted dictionary meaning. From there its meaning in a particular context might be inferred. But even this inference is not guaranteed, because all human languages contain idioms, which are words used together to mean something often unrelated to the accepted meaning of the words involved. In English we can say, "He was hot under the collar", which means he was angry. Or, "She was spitting tacks", mean
-
For what it's worth, the given usage of "tutting" and "strutting" are incorrect. "Tut" is a word that dictionary.com defines as: tut [pronounced as an alveolar click; spelling pron. tuht] interjection, noun, verb, tut·ted, tut·ting. interjection 1. (used as an exclamation of contempt, disdain, impatience,etc.) 2. for shame! noun 3. an exclamation of “tut.” ================ Hence, the phrase "tutting my heel" has no literal meaning in English, because "tut" is an example of onomatopeia: Onomatopoeia (also spelled onomatopœia , from Greek: ονοματοποιΐα) is a word or a grouping of words that imitates the sound it is describing, suggesting its source object, such as"click", "bunk", "clang", "buzz", "bang", or animal noises such as"oink", "moo", or "meow". The word is a synthesis of the Greek words όνομα (onoma, = "name") and ποιέω (poieō, = "I make" or "Icreate") thus it essentially means "name creation", although itmakes more sense combining "name" and "I do", meaning it isnamed (and spelled) as it sounds (e.g. quack, bang, etc.). Onomatopoeic words differ across languages because they always have to conform to some extent to the broader linguistic system they are part of. Thus the Norwegian tikk takk for the sound of a clock could never be a Dutch word because Dutch words never have long consonants at the end of the word; accordingly, the Dutch equivalent is tik tak . ============= Similarly, "strutting my feet" is technically wrong since "my feet" is redundant; "strutting" already means "moving my feet pompously." What this all boils down to is something I mentioned previously, namely that poetry, song lyrics and sometimes prose do not necessarily adhere to the letter of English conventions. Poetry and lyrics rely on such things as meter and rhyme at the expense of the normally accepted and defined rules of word order and association. For these reasons, I firmly believe that n-grams do not and cannot "define" words. They can only provide what has already been written that includes the given words. The "meaning" of a particular word must begin with it accepted dictionary meaning. From there its meaning in a particular context might be inferred. But even this inference is not guaranteed, because all human languages contain idioms, which are words used together to mean something often unrelated to the accepted meaning of the words involved. In English we can say, "He was hot under the collar", which means he was angry. Or, "She was spitting tacks", mean
Thanks for sharing. I disagree with your analisys. >... the phrase "tutting my heel" has no literal meaning in English ... Already has if you ask me. Don't you think that Adele is coining one new definition (if you like) by using 'tutting' without carrying already widely accepted meanings? Here I rewrite my answer: "I think the tutting sound is just as the clicking one, here tutting is a transitive verb causing the heel (woman's are with very small surface and hard which produces the cha-cha like sound) to hit the ground loudly." > ... English conventions ... For me there is no such thing. Or at least they are for teachers - I am not and never will be. >... namely that poetry, song lyrics and sometimes prose do not necessarily adhere to the letter of English conventions. You are the one who sees them as separate categories, here lie our different apprehensions. >... I firmly believe that n-grams do not and cannot "define" words. Yes they provide the context (or rather the environment of a word i.e. its adjacent words) as next (simplified/chunked) stage (they are building blocks of sentences). Your statement is similar to 'sentences cannot "define" words.' Of course, but by taking all (yes all) sentences you get all the definitions included - they just are not deciphered/explained. >They can only provide what has already been written that includes the given words. Yes yes, that is their purpose. You say 'only' as if this is something of litlle or inferior value - in my world it is the very base of EVERYTHING, dictionaries are pillars not foundation. >... "strutting" already means "moving my feet pompously." Wrong AFAIK. I checked 4 dictionaries - no trace whatsoever. How did you pull out this? Can you give a sentence or definition supporting this? >The "meaning" of a particular word must begin with it accepted dictionary meaning. From there its meaning in a particular context might be inferred. Double yes. As for idioms nothing new here, the second yes rules them. >So poetry and lyrics do not necessarily utilize the literal meaning of the words involved. I don't know why you said that! Obviously we have different views. And here comes a light-stepping approach of mine: My favorite dictionary 'The American Heritage Dictionary of the English Language' says: [ stutter intr. & tr.v. stuttered, stuttering, stutters To speak or utter with a spasmodic repetition or prolongation of sounds. n. The act or habit of stuttering. [Frequentative of dialectal stut, from
-
Are there reasons for beginner programmers to be taught C instead of C++? I'm not even thinking about Object Oriented programming, but simple declarative programming. I'm reading a lot of questions on CodeProject and on StackOverflow where people ask about issues with C language features that are so prone to errors and defect that it makes me cringe. A lot of those issues could be handled by simple C++ features (memory management (new/delete, smart pointers), strings, collections, references, ... ) I know there are lot of legacy code out there and it should still be maintained, but old code "ways" should not be the emphasis of the education. :confused:
Watched code never compiles.
One reason I can think of is that learning C will give you a better understanding (and appreciation, possibly) of C++ and abstraction. Understanding the underpinnings of the tools you are working with will help you write better quality code. Maintaining legacy code isn't an important reason as this to learn C or other "old" parent language. Knowing how the library objects and functions work underneath will definitely help you use them more efficiently. Besides, C++ is a superset of C with just a handful of differences. When a C program is compiled as a C++ program there are only minor tweaks that have to be made to get it to compile. The Standard Library std::string class is just an abstraction of a C style string (array of characters) and there are still loads of API functions that still use these character arrays. It'll just help in the long run to know C (in my opinion) especially if you start writing at a lower level of abstraction.
-
Thanks for sharing. I disagree with your analisys. >... the phrase "tutting my heel" has no literal meaning in English ... Already has if you ask me. Don't you think that Adele is coining one new definition (if you like) by using 'tutting' without carrying already widely accepted meanings? Here I rewrite my answer: "I think the tutting sound is just as the clicking one, here tutting is a transitive verb causing the heel (woman's are with very small surface and hard which produces the cha-cha like sound) to hit the ground loudly." > ... English conventions ... For me there is no such thing. Or at least they are for teachers - I am not and never will be. >... namely that poetry, song lyrics and sometimes prose do not necessarily adhere to the letter of English conventions. You are the one who sees them as separate categories, here lie our different apprehensions. >... I firmly believe that n-grams do not and cannot "define" words. Yes they provide the context (or rather the environment of a word i.e. its adjacent words) as next (simplified/chunked) stage (they are building blocks of sentences). Your statement is similar to 'sentences cannot "define" words.' Of course, but by taking all (yes all) sentences you get all the definitions included - they just are not deciphered/explained. >They can only provide what has already been written that includes the given words. Yes yes, that is their purpose. You say 'only' as if this is something of litlle or inferior value - in my world it is the very base of EVERYTHING, dictionaries are pillars not foundation. >... "strutting" already means "moving my feet pompously." Wrong AFAIK. I checked 4 dictionaries - no trace whatsoever. How did you pull out this? Can you give a sentence or definition supporting this? >The "meaning" of a particular word must begin with it accepted dictionary meaning. From there its meaning in a particular context might be inferred. Double yes. As for idioms nothing new here, the second yes rules them. >So poetry and lyrics do not necessarily utilize the literal meaning of the words involved. I don't know why you said that! Obviously we have different views. And here comes a light-stepping approach of mine: My favorite dictionary 'The American Heritage Dictionary of the English Language' says: [ stutter intr. & tr.v. stuttered, stuttering, stutters To speak or utter with a spasmodic repetition or prolongation of sounds. n. The act or habit of stuttering. [Frequentative of dialectal stut, from
Which ?-gram indicates that "tutting" is "making a clicking sound"? It all depends on what one's purpose is in their writing. Writing can be to: inform suggest explain ridicule inquire impress blame embarrass obscure and many other reasons. Using obscure, obsolete, vague or misleading wording suggests that the writer is perhaps unwilling to be understood by everyone. Often it is necessary for the reader to make some judgement as to what the writer means, as there are few clues to go on, or perhaps contradictory thoughts are expressed. When it comes to art, be it painting or some form of writing (including music/songs), it is often left to the viewer or reader to decide for him/her self. Artists are known to say something like, "If I have to explaine it to you, you wouldn't understand it."
-
One reason I can think of is that learning C will give you a better understanding (and appreciation, possibly) of C++ and abstraction. Understanding the underpinnings of the tools you are working with will help you write better quality code. Maintaining legacy code isn't an important reason as this to learn C or other "old" parent language. Knowing how the library objects and functions work underneath will definitely help you use them more efficiently. Besides, C++ is a superset of C with just a handful of differences. When a C program is compiled as a C++ program there are only minor tweaks that have to be made to get it to compile. The Standard Library std::string class is just an abstraction of a C style string (array of characters) and there are still loads of API functions that still use these character arrays. It'll just help in the long run to know C (in my opinion) especially if you start writing at a lower level of abstraction.
I couldn't agree more, and here's a perfect example of why. Maximilien said in an earlier post: " ... std::string s("hello world"); ... it is efficient." That depends on your definition of 'efficient' and the context in which a class such as std::string is used. A quick check of 'std::string s("hello world")' in the debugger reveils that the string capacity is 4 bytes longer than the string contents (not counting 0 termination added when s.c_str() is used to dereference to char*). For a single static std::string, that's acceptable, but I know from my own experience that, say, a std::vector> containing several thousand static strings results in a lot of wasted empty space that could be better dealt with - and an order of magnitude faster - by using a pool-indexed system, which can be easily implemented in either ANSI C or C++; I wrote a C++ class specifically with this issue in mind years ago and still use an updated version of it to this day. Using predefined classes/templates from std or Boost is all well and good, but if you don't know how it all works under the hood, obscure bugs, memory leaks and the like can (and will) creep into your code because you made incorrect assumptions about those classes/templates. For the most part, I still like to roll my own codebase (I use std::vector but little else from std, and Boost doesn't exist on my machine, period), because I like to know what my code is doing - and/or not doing - to my data. I first learned to code (way back when) in pseudocode, then BASIC, then Pascal, then C, then C++. That 'natural progression' gave me the tools required to put algorithms and design above implementation and style right from the get-go, a skill that many younger coders seem to lack.
-
I couldn't agree more, and here's a perfect example of why. Maximilien said in an earlier post: " ... std::string s("hello world"); ... it is efficient." That depends on your definition of 'efficient' and the context in which a class such as std::string is used. A quick check of 'std::string s("hello world")' in the debugger reveils that the string capacity is 4 bytes longer than the string contents (not counting 0 termination added when s.c_str() is used to dereference to char*). For a single static std::string, that's acceptable, but I know from my own experience that, say, a std::vector> containing several thousand static strings results in a lot of wasted empty space that could be better dealt with - and an order of magnitude faster - by using a pool-indexed system, which can be easily implemented in either ANSI C or C++; I wrote a C++ class specifically with this issue in mind years ago and still use an updated version of it to this day. Using predefined classes/templates from std or Boost is all well and good, but if you don't know how it all works under the hood, obscure bugs, memory leaks and the like can (and will) creep into your code because you made incorrect assumptions about those classes/templates. For the most part, I still like to roll my own codebase (I use std::vector but little else from std, and Boost doesn't exist on my machine, period), because I like to know what my code is doing - and/or not doing - to my data. I first learned to code (way back when) in pseudocode, then BASIC, then Pascal, then C, then C++. That 'natural progression' gave me the tools required to put algorithms and design above implementation and style right from the get-go, a skill that many younger coders seem to lack.
I agree with you. It has taken me a long time to actually use the STL and the string class. My thought was the same as yours--I want to know what is going on underneath. I've since gone on faith that a vector is a decent replacement for an array and std::string is efficient enough (storage wise). Still, if I'm writing something that handles millions of objects I'll probably write something specific to the task rather than grab a vector or list or whatever (though I do now use them quite often for simpler cases). I know some people would disagree but it is just my opinion and my method. I first toyed with BASIC on my Commodore and later on jumped right into C and then C++. I hate to admit that it was after I learned to program that I actually learned that designing the program was an important step before I jump in an start hacking away. I've been learning everything in a backwards manner ever since I started. Right now I'm going back to the basics and studying OOD and algorithm design and implementation. After that I plan to study some functional programming with Scheme. I am constantly trying to learn something new...