Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I think that in order to answer "What's a good first programming language" or "Is X a good first programming language," we need to know more about the background and goals of the person who will be learning to program.

This can be difficult to do when designing an entry-level programming class for a group of students with different backgrounds and goals, but it is not always impossible (for example, an entry level CS class is likely to use a different first programming language than a web development programming class). And, it's very important to take these things into consideration if you're trying to go it alone and teach yourself how to program- one of the most common reasons I see this fail is attrition due to lack of interest.

Different people come to programming from different backgrounds. Leveraging someone's previous experience can make it easier for them to learn how to program by either building on knowledge they already have, or by improving their attention span by keeping the experience interesting. For some people, working with a graphical system can keep things interesting. For others, working with something that "looks almost just like a unix shell" is better. And those coming from an html web-development environment would be most comfortable working with something that looks "almost just like HTML."

At the same time, what the person intends to do with their programming skills is also important. If you're teaching future Computer Scientists, it's probably more useful and important to start with formal (but less frequently used in Real Life) languages with stricter syntax, such as Lisp and Pascal. If you're teaching a system administrator how to make their life easier, through automation of common tasks, but they never really intend to move on to large-scale development projects, then you'll never get anything accomplished with LISP (okay, except maybe in Emacs). Likewise, a web developer- if all they really want to do is spice up some otherwise boring web pages, knowing that you always have to predeclare variables and functions in Pascal isn't really going to help much.

It's probably heresy in CS circles to suggest that It's Okay to leave gaps in peoples' programming knowledge, that It's Okay to cut corners in order to facilitate Getting The Job Done. Teaching a web designer PHP as their first programming language will probably leave many lessons which would later need to be unlearned if the person eventually decided to go into Computer Science. But not everyone wants or needs to be a computer scientist just to write useful programs (or, to write programs Well, within a certain domain).

With all of that in mind... "Is Perl a good first programming language?" I'd say Yes, sometimes, for some people.

One poster commented that it's too easy to shoot your foot off in Perl if you're unexperienced. I claim, it's easy to shoot your foot off in Almost All languages. Perl has the benefit that it's less likely to crash your machine and require a hard reboot to recover, when you do shoot your foot off. And because there's no explicit compilation stage, it takes less time to sew your foot back on and try again.

Alan


In reply to RE: Perl as a first language by ferrency
in thread Perl as a first language by Anonymous Monk

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 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?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2024-04-19 23:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found