Forgot your password?
typodupeerror
Education

Language Learner Looks for Leads in Learning? 42

Posted by Cliff
from the say-title-three-times-fast dept.
zanzibar asks: "I learned C in a college course, I learned C++ and Java from books, and I learned Rails from blogs. I'm not convinced one of these methods was more effective than the others. I want to know what other readers think about technical education. What do they want to learn and how do they want it delivered? What do they like about their options today (from college coursework to Wikiversity)? What's missing? What just doesn't work?"
This discussion has been archived. No new comments can be posted.

Language Learner Looks for Leads in Learning?

Comments Filter:
  • Lotsa Ls (Score:1, Offtopic)

    by pipingguy (566974) *
    Cute alliteration [wikipedia.org] headline, n'est-ce pas? Useless, though, ya Looser.
    • by Seumas (6865)
      Perhaps it's just a pet peeve of mine, but I find alliteration to be one of those most idiotic devices a person can use. It's a good way to drop your representative IQ by about forty points.
      • by zanzibar (59509)
        Language Learner Leads in Low-Q?
      • It's a perfectly legitimate literary device that has been used to great effect by amongst others William Shakespeare and Edgard Allan Poe. Everyday speech has a lot of such pairs of words with pleasant pronounciation, like 'pet peve'.
        You were just having a cheap shot at the cheesy headline, and chided lots of historic literature, hopefully to your chagrin.
        For your penance, look at the headline again and imagine a Beowulf cluster of those.
  • Learning styles (Score:4, Interesting)

    by farker haiku (883529) on Saturday March 24, 2007 @09:58AM (#18470111) Journal
    What do they want to learn and how do they want it delivered? What do they like about their options today (from college coursework to Wikiversity)? What's missing? What just doesn't work?"

    In my personal experience, classrooms that were structured were one of the best methods for me. In the end though, the best way to learn is to practice, which may be why the structure of the classroom was most effective for me. Learning from books is my second suggestion, as when I try to learn from an online source, I tend to get distracted... too many links and other areas to explore.

    I know this subject has been talked about many times before on slashdot, and the general consensus is that discipline can keep this from affecting you, but with ADD and a daily overdose of caffeine, the discipline falls by the wayside when I see something shiny (oooo a 14 line ruby rss aggregator!).

    So what works for me? If I'm not in a classroom, I work from a laptop and a book... with the wireless turned off. It's the only way to enforce the discipline I need.
    • by zanzibar (59509)

      The classroom context provides the motivation to practice and therefore to learn. Is the structure defined by assignments and tests, or by the community of learners in the classroom? Thinking back on my experience, assignments (and the resulting grade) provided the "stick", especially when I wasn't particularly self motivated. But I also remember thinking, on occasion, "Why am I cramming this stuff into my head? I'm going to forget it 24-hours after the test." Regular thoughts like that seemed to lead

      • However, I'm now very interested in thoughts on the community aspect of the college classroom. Helpful or not?

        In every programming class I've taken, I've always finished projects first. Does that mean that I was more talented? No, not in all cases. However, it did mean that (for me at least) the community aspect of the college classroom wasn't all that helpful. Note that I didn't say "Not at all helpful" because the rest of the class quickly realized that I was done early. As a result, classmates came
    • I agree, practice is very important. I think the rapidly expanding Ruby literature is great, but none of the books, to my knowledge, contain problem sets or exercises of any kind (aside from their iterative but simplistic examples that run through the book in some cases). Ruby quiz is a good resource but it would be preferable to also have simpler stuff that would help younger students to make quick progress and see if they were getting the concepts right away.

      I was trying to make a list [amazon.com] of books for lear
    • "In my personal experience, classrooms that were structured were one of the best methods for me. In the end though, the best way to learn is to practice, which may be why the structure of the classroom was most effective for me."

      I think classroom structure is good, but at the same time it stifles the mind. My most effective learning and reasoning was learned once I left school and university and simply was allowed to browse what interested me on the internet, and weigh and measure things myself instead of
  • its not that hard (Score:2, Informative)

    by Nyall (646782)
    Once you learn one language (self taught or in school) you should be able to teach yourself any other. What I didn't like about college was being forced to attend class to pass. (where the silly professor taught from power point slides.) And I really hated in-class tests where I had to write code with pen on paper. Projects are the best way to learn.

    Did you really learn from blogs or books, or was it the practical application on some project that taught you what you know?
    • by zanzibar (59509)

      Good question. The content came from the books, blogs, etc. Skill came from putting the information into practice. In your case, was there any educational value from the college classroom/coursework, or could you have done it on your own (with appropriate projects, of course)?

      Your comment about projects strikes me as very important, and was something I missed when I put the original post together. Going autobiographical for a moment...

      I learned about C as a Freshman in college from a K&R book

  • It doesn't matter (Score:4, Interesting)

    by hey! (33014) on Saturday March 24, 2007 @10:08AM (#18470179) Homepage Journal
    After you've learned a half dozen or so languages it doesn't really matter how you learn a language. You often don't need to learn a languge to, say, modify a program written in it, so long as you have the reference by your elbow.

    I'd recommend reading the reference documentation which defines the language, then doing some non-trivial maintenance on some real code written in that language. You shouldn't need the programming 101 stuff, and as often as not that stuff imprints bad habits (e.g. sql injection in PHP). Ideally you would work on a first class example of top notch code, then maybe work on some not so stellar ones, to get an idea of what is good and what is bad about the language.

    Learning a language is a trivial exercise once you have a few similar ones under your belt. The toughest thing is learning the environment the programs are supposed to run in. Anybody who can program in some C like programming language can learn to program in Java in a few days. It takes months to wrap your brain around J2EE.

    On the languge front, you really want to learn master several different paradigms or models. If you program Java, it doesn't make sense to worry very much about C#. What you really want is to learn a set of languages that "think" different ways. For example: Java, Prolog, SQL, Lisp, and something really primitive like assembler. Knowing different models for expressing your ideas will help.

    After that, it's a long nasty slog through learning platforms, frameworks and APIs. If the biggest problem in my professional life was learning new languages, then I'd be very happy. It would mean that I would have only my own hubris and fallibilty to have to deal with.
    • Amen to this! Parent has it all correct!

      Programming languages don't do the work. They help the programmer express his/her idea of what task needs to be done. Any Turing-complete language will allow you express any task. But can you see the internal structure of the task and are you able to use the most efficient and appropriate language for that task.

      Most often I see people learning a litany of languages only to use all of them like C. For example writing a Java app with nothing but static data and

    • I also used to think that way: "After you've learned a few, learning more is all the same".

      I knew BASIC, C, Pascal, 80x86 assembler, C++, VB...

      A look was enough to learn PHP, Python, Lua or any other of many languages that I learned for a single project and forgot.

      The easiest to learn was Ruby, but it had a catch: it introduced me to the world of languages that aren't as easy to learn.

      You see, learning PHP when you know C and VB is trivial because they're practically dialects of the same execution model. Th
    • by zanzibar (59509)
      I hear a few things here (and in some of the replies).

      First, with the understanding that some programming languages emphasize/embrace different paradigms (object oriented, functional, etc.), languages are similar enough that -- within a paradigm -- moving to a new language is not / should not be hard. Related to this, learning good representative examples of a paradigm is a good thing. Also related, the challenge of learning a new "language" is not the language, per se, but the libraries, tools, etc.

      Secon
  • by snowgirl (978879) on Saturday March 24, 2007 @10:09AM (#18470181) Journal
    You've already figured it out...

    I'm not convinced one of these methods was more effective than the others.


    It's not what language you know. It's about knowing how to solve a problem independent of any language, and then using the language that best solves the problem.

    Just keep learning languages for new ideas to express things, but don't keep learning languages thinking that you're going to end up learning The Language, that conquers them all. That language doesn't exist, and it likely never ever will.
    • I probably focused too heavily on languages in the original post.

      What about technology in general: networking, security, architecture, programming languages, libraries, testing, operating systems, analysis and design, distributed computing, concurrent programming, artificial intelligence, algorithms.

      From the parts of the thread I've read, I suggest that hands-on experience (practice) is essential to learn how to do any of these things well. But what about the content? What the best was to learn about thes
      • by snowgirl (978879)
        I've really found that a mix of the two, hands-on/practice and teaching works the best for me. Basically, it allows you to use what you learn right away, and you have a better chance of retaining it long-term.

        However, college courses and teaching classes themselves are pretty inefficient at giving you any sort of meaningful experience or practice with an idea, as you use it then move on. Course work typically is also fairly easy, and constrained so that it doesn't take up your whole life.

        I've found a more
    • by huckda (398277)

      but don't keep learning languages thinking that you're going to end up learning The Language, that conquers them all. That language doesn't exist, and it likely never ever will.
      Ahh when I married a Brasilian, Portugese became THAT language ;)
    • It's about knowing how to solve a problem independent of any language, and then using the language that best solves the problem.

      I think, following Wittgenstein, that there's no such thing as thinking independent of a language. Ok, it's not necessarily an actual programming language but you think at least in pseudocode. And I bet this thinking tends to be thinking in a C-like language. Which does not help very much if you program in Prolog or ML. Even Java needs a different mindset. I'm afraid of those '

  • Simply start writing (Score:3, Informative)

    by KlausBreuer (105581) on Saturday March 24, 2007 @12:43PM (#18471267) Homepage
    I personally learn languages by simply firing them up and fiddling about.
    Of course, a book is a good idea to learn from, but you learn fastest by simply starting to code.

    I wrote a Windoze-Version of the 1985 Mac game 'ChipWits' (see sig) in Delphi, and now plan to learn C# by simply rewriting that game. Immediate usage is probably by far the quickest way :)
  • I just got my CS degree and let me tell you, once you've been through a class in Scheme and Prolog and enough theory, you'll just simply start seeing all languages as trivial when it comes to their details. They are, actually, so trivial that you won't even bother dirtying your hands actually implementing anything in them, although you could, if you wanted to. There are better things for a superior mind to do, though. Such is the Tao of Computer Science.
  • Don't waste time learning a lot of computer languages. Pick one or two, learn them well, learn their standard libraries, write programs in them, and read/maintain other people's code. Spend most of your time focusing on concepts that generalize to all programming.

    Knowing about design patterns is useful in any language. The intricacies of C++ template programming are not. If I say "That's a singleton", people will know what I'm talking about whether the code is written in Ruby, C++, Java, or Cobol.

  • >"...What's missing?..."
    a plug and learning like Neo in Matrix ...


    P.S. I know that it will take the fun out, but we can always learn the traditional way.

  • As has been mentioned, once you've learned a few languages -- and learned how to use them well -- you can learn any language. Once you undertand that here are various flavors of data, and how to put them to use, once you understand separation of presentation and business logic -- whether that's OO or not -- when you know enough to understand that there are better/best practices, that different concepts apply to different situations, it simply becomes a matter of syntax and structure. I tend to prefer to div
  • I've taken classes in which programming languages were taught, and I've read books teaching programming languages and various web resources. But these are just ways of conveying facts about a language into your mind. The best way to really learn how to use a programming language is to use it.

    If you're sharp, you can memorize the syntax of a language by inhaling reference manuals, and that's great! But to really KNOW the language in a meaningful way, you have to write programs in it.

    To comment a bit on an
  • As others have pointed out, languages don't really matter, esp. after you've learned more than siblings (C and C++, C++ and Java, you get the idea).

    Standard libraries and the correct way to 'think' in each language, e.g., when to use anonymous inner classes instead of standalone classes in java, that's where you can start writing real applications that won't make other maintainers winch... and that takes time. Minimum 6 months so you don't trip on your own feet, and you may not really know how to use the l

I'd rather just believe that it's done by little elves running around.

Working...