I agree with your implied suggestion that the reason(s) behind
learning a language, changes the way you learn it.
I tried to describe the different reason that would make someone want to learn a language.
case (1): The I-have-to
If for some reason you head to learn a computer language to do a job or task, that I guess would probably try to learn as little as possible to get the job done.
This thought made me wonder! in that case would not a simple language which rely more on libraries rather then special construct be better.
I am not sure, some people look for the keyword others look for the function, many beginners make the mistake of calling a function "command"!
Myself I prefer less keyword and special construct, but I don't fit in that case I just described!
so conclusion 1: less or more special construct?
======================================================The next cases are people who decided by their own will to learn programming, but have different approaches and reasons
First, I would like to mention brain hemispheres, a brain is divided into two hemispheres, left and right!
We have 3 extremes here:
1. someone who is 100% left hemisphere dominant
2. someone who is 100% right hemisphere dominant
3. someone who is perfectly balanced!
Most people are somewhere in between, a little bit to the left or a little bit to the right.
I read about that issues of brain hemispheres, where would believe in it or not, it's irrelevant, this theory in my opinion successfully identified two thinking models that usually goes together the purely leftist and the purely rightist, and it suggest that most people mostly belongs to either of those models, this theory can -and I honestly believe- help you understand yourself.
case(2): The coders
A good example Linus Trovalds
Those are a put-up or shut-up, the real deal, the designers,
they write more code then anyone else.
they tend to learn from doing and from experience rather then from reading and learning, they do read don't get me wrong, they do read more then the average guy. But not as much as the guys I am gonna mention in case (3).
they usually know a fewer number of programming languages, but are able to do more with it, they are not the language zealots, it's the opposite, they just don't care to learn a new language, remember they are the do-errrrs, the coders, they care more for the program quality, then code quality.
If it works, it is good!
they won't listen, probably don't accept criticism gracefully, "they did the job who are you to complain", they respect fellow coders and have bad peoples towards the people from case (3).
case(3): The hackers
A good example ESR <I personally don't like the guy but he unfortunately fits the theme well!>
those are people who think about thinking, read about reading, they have a genuine interest in learning how things works, a hacker would make a good analyst as opposed to a designer, they read the most and know the best but most probably they code the least, it doesn't seems there is enough time to do both, as much as they love code, writing code isn't always as much fun, not to them!
how can I write code when by the time I finished learning this language or framework, I found another more tempting to get hacked!
they probably know a dozen of programming language and fairly good at one or two, the one or two they love the most, yup, those are your zealots,
they don't get the respect they deserve, mainly because they seem to lazy, WHERE IS THE CODE!
they read so many, but didn't make any!
I failed to determine to which brain hemisphere hacker or coders belong, they both seem to be somewhere in between!
coders write code to make programs.(simple)
hackers build programs to see the code.(wicked)
coders are more interest in building programs.
hackers are more interest in learning how programs are build.
but if you can build programs, your certainly know enough about how they can be built.
and if you know how to build programs, you can certainly make one.
so what's the point? am not really tryin to make a point, I am just being vocal about what I see!
Most people are shades of gray they are neither pure hackers or pure coders, they are somewhere in between, the programmer hemispheres!
So to answer the question: why does one learn a languages?
well, some people got things to do, arenas to conquer..
others just do it for their personal pleasure!
a hacker would say: why not!, even it turns out to be not of my taste, it can be fun to learn and I can learn from it, what not to do in a language.
a coder would say: well, I don't recall exactly why I picked up perl, but it seems to do what I need and I know it best!
what is a good language to learn?
a hacker would say: anything new!
a coder would say: whatever gets it done!
who is the better guy?
the coder of course.
well, at least most of the time, try to calculate 64367436278 * 452354 in your head without using a pencil and a paper.
I would not even bother to try.
Programming is for a larger part, a mental skill improved with lots of training!
more code writing == more brain training
yes coders develop a better brain that can handle better the complex details.
Again I am not really tryin to make a point or prove a theory, just flushing my thoughts, so excuse me for any contradictions I might have expressed!
Maybe now that I wrote em down, I can see it better!