Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

RE: Learning Programming

by mwp (Hermit)
on Aug 02, 2000 at 22:02 UTC ( #25798=note: print w/replies, xml ) Need Help??

in reply to Learning Programming

I'd just like to clarify your question.What's the best way to learn additional programming languages? or What's the best way to get started with programming?

Having taught several people how to program and learning a multitude of languages on my own time, I feel that I speak from experience when I say that a programmer's mindset is unlike anything in the world. Including engineering, the natural sciences, even other fields of computer science. If you're asking the latter question, then my advice to you is as follows: Develop the mindset first!

  • Learn Boolean algebra
    The simplest way to understanding conditional expressions is the most direct way--return to the source. Basic Boolean algebra will cover AND, OR, and NOT, condition groupings, changing from NOT AND to OR expressions, etc. If you're really curious, you can even go on to read about XOR and XNOR. If you go that far, you may even want to learn about Boolean truth tables, in which we analyze the input and output values of a "function" (traditionally a circuit, but applies here too).
  • Start with a simple language
    I've taken to calling beginning languages "gateway" languages. Just like gateway drugs, and--depending on how hooked you become on programming--probably just as detrimental to your health. :-) If you start with Visual Basic, or JavaScript, or even Perl, you can learn the basics of programming (flow control) without worrying about complicated syntax or confusing runtime errors.
  • Design a small project for yourself
    One of the things I've learned during my time in this industry is that the potential for learning is much greater when you have a deadline! While I wouldn't exactly take it that far, you can most certainly come up with an idea for a program you would like to write, and set time-oriented goals for yourself. Some of my earliest programs included a batch-file and QBASIC system maintenance tool, and another QBASIC program that cataloged information about our neighboring star systems (for quick reference in Sierra's Outpost :)

Some of the things I would recommend against are:
  • Learning a new operating system concurrently
    (like Perl and Linux)
  • Learning more than one language at a time
    (like HTML and JavaScript)
  • Learning out of a book
    I've found that many of the techniques and functions you learn out of books have little-or-no real-world application. The Camel books for Perl are pretty good, as is anything by O'Reily and our friend merlyn. But be wary of book titles like "Mastering C++ in 24 Hours". It just simply can't be done.

If, however, you're interested in expanding your horizons and learning an additional programming language, then I would definitely use some of the items from the above list. Design a program you want to write. Pickup a book to use as a reference. Find a decent group of people you can ask questions (like us :). But most importantly, ENJOY YOURSELF!

Good luck, young Jedi.

I am the lurker that spams in the night.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://25798]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2021-10-22 17:08 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (85 votes). Check out past polls.