Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Learning programming and learning programming languages are two completely different things. But for both, study and practice (and practice and practice) are usually the best ways.

To learn how to program:

Pick any good programming language (perl, scheme, C, logo, smalltalk, etc) and a good intro book on programming (preferrably one not tied to a particular language) and start playing with the language while working through the book. Work on things that interest you, etc. The language will give you experience, showing you what really happens, and the book will give you some theory to back that experience.

Once you are comfortable doing some programming, switch to a different language -- preferrably something much different, like C if you started with scheme, ML if you started with perl, tcl if you started with ADA, etc. Then start working through some of what you did earlier in the new language.

Languages differ in more than just syntax. Languages differ in style, differ in vocabulary, and differ in how they encourage you to get things done. Learning more than one programming language (and being moderately fluent in it) really helps you be a well-rounded programmer.

Once you've worked through the intro book, go with a heftier, intermediate book -- like Sedgewick's "Algorithms", or Knuths "Art of Computer Programming", or the big white algorithms book from MIT Press (book is at home, so I can't read the authors). Read through those books, learning about things like "Big-O" notation, divide-and-conquer, dynamic programming, and other ideas and techniques that will help turn you from a good programmer into a great one.

Does that help?

As for learning a language itself... Get a manual and start playing. Do simple stuff first, until you get comfortable with that, then expand your skills with your comfort level. And definately read other people's code in that language. Languages have distict syntax&grammar, vocabulary, idiom, and thought-processes. When you start learning, say, perl, you will have to learn first the syntax and grammar, the vocabulary will come to you as you work with the language (but you may still be looking details up years later). Once you start using and understanding idiom (which will take experience in the language), you are well on your way to thinking in that language.

And then learn another language. The experience will change how you think about programming, and it will change how you program in -both- languages for the better.

Just my thoughts.


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

Title:
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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2021-10-19 11:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My first memorable Perl project was:







    Results (76 votes). Check out past polls.

    Notices?