Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

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.

In reply to RE: Learning Programming by mwp
in thread Learning Programming by NodeReaper

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2021-12-07 00:16 GMT
Find Nodes?
    Voting Booth?
    R or B?

    Results (33 votes). Check out past polls.