in reply to Perl(Monks) University

To me there are two kinds of people in IT -- self starters and the rest of us. Those who seem to have excelled very far in Perl are clearly self starters. They read Perl core source code, write XS modules, contribute to CPAN, etc. etc. This type of person does very well in an unstructured environment. Hand them books, source code, and editor and a computer and they will largely teach themselves.

Just to add to your nice analysis I think there are also people who are self-starters but would still appreciate some advanced coursework for example on certain CPAN distributions. When I started with Perl over 10 years ago I was in a work and life environment where I could spend the time to learn the core language and important CPAN distributions (e.g. DBI, LWP, CGI, etc.) by myself using the Camel, other O'Reilly books and online info and at my job started with many interesting and diverse small projects where I could implement what I learned. Over time I was doing more and more complex projects and learning more and more aspects of the language and delving more deeply into CPAN. I think some people who are indeed self-starters are in situations where they cannot spend the time to go through all this effort, I feel I was very lucky. In summary, self starting takes lots of time and the right environment to apply what you are learning. The thing with a structured class led by a great instructor is that you can accelerate all of this and be taught very quickly to an advanced level on the core language or a CPAN distribution of interest. Even self-starters would appreciate having this shortcut :)

After spanning the web for discussions on Perl by non-Perl developers I have found a common thread -- there is a general dislike of Perl by the more non-self-starter crowd. Most, if not all, complaints I read about Perl had to do with a strong sense of confusion about how some facet of the language worked. I saw this as primarily an education problem, not always necessarily a problem with the language. What I consistently saw was that developers had started learning Perl and then simply stopped when confronting something confusing about it. When I compared their complaints against those working actively in Perl-based projects or CPAN modules I found that there were suitable workarounds in almost every case.

Totally agree here, most if not all problems that non-Perl people have with the language is just lack of proper education about a certain aspect or negative false perception coming from totally false posts by haters on the web. One question I always have is why is Perl not taught in undergraduate school? I've taught it as part of the bioinformatics curriculum in graduate school where it is definitely appropriate but I think in general it's a great teaching language for beginners as it's very easy to start with and use as a tool to understand algorithms, data structures, etc.

Replies are listed 'Best First'.
Re^2: Perl(Monks) University
by locked_user sundialsvc4 (Abbot) on Mar 29, 2011 at 23:49 UTC

    Let’s face it:   certifications are a product, and a damned profitable one, at that.   Plenty of folks, and plenty of companies too, have been suckered into believing that persuaded that “if only” they can hang such-and-such certificate on their wall (and, if they like, tack on such-and-such letters after their last names), that the gates of Nirvana will magically open before their eyes.   A perfectly unreasonable expectation, of course, but the grass is always greener on the other side of any fence.

    I find, though, that experience is what people really want.   It doesn’t really matter so much if you are building applications “in Perl,” or “in VB,” or “in Ruby.”   What matters is that you are building applications, and servicing existing ones, in real business environments and for real people.   You showed yourself to be competent, easy to work with, professional, trustworthy and reliable.   You have amassed a group of people who will speak well of you for what you have done.   You do not try to “know it all,” because you have mastered the art of finding out “what you need to know at a particular time,” at that particular time.   If a new language system appears to be the right tool for a new engagement, well, by now you only need a single weekend to adequately prepare.   (And no, you’re not bluffing anyone.)

    There is no “certification” that can equal that.

    The “language haters,” quite frankly, I ignore.   I ignore them because they are demonstrating that they don’t have anything useful to say.   If they want to pick a fight with me, to thrust a burning torch in my face, I merely decline to catch fire, and move on about my business.   The peddlers of certificates receive a polite but firm decline.   Their mailings go into the recycle bin.

    The people who tell me that, in order to improve an existing system, I must re-write that system in “trendy new language Blah” ... I also am reasonably polite to these people, but I ignore them completely.   (I do, always, allocate a block of time to at least cursorily familiarize myself with the latest newcomer.   There’s always room for one more good idea, and “latest languages” are usually where you’ll find them.)   Every language that is in use today, at least from PL/1 forward, was somebody’s silver bullet that was going to make the application backlog disappear and allow you to reduce your programming staff count by two-thirds.   Another unrealistic expectation.   Some spectacularly good work has been made in all of them, and some spectacularly bad work, and a whole lot of pure-mediocrity.   But the language in question, whatever it was, was neither cause nor cure.

      As I am writing this proposal (and still continuing to gather resources/information from online resources to support the assertions it will contain) I keep butting up against that awful word, 'certification.' Let me briefly describe what certification is (in my view) and how this proposal is not certification and how it would be difficult (but certainly not impossible) for hiring organizations/etc. to use any status conferred by it whilst simultaneously making it valuable.

      Briefly, certification essentially is much like a small wooden bar my grammar school gym teacher used to hold while he would make us to run in a circle around the gym. While running he would shove out the bar in front of us and say, 'jump over it.' Simple enough, I'd say, and leap over the little thing before doing another easy lap. When I came 'round again however that mean teacher raised the bar. Suddenly I had to jump much higher to get across it. Other kids stumbled, fell, or simply refused to jump.

      So certification in IT is an attempt to verify or validate knowledge by setting a particular bar -- one that involves question/answer style proficiency. I find that the main problem most people have with certification is not that they are expected to meet some expectation but rather whether the particular bar chosen is adequate to actually prepare them for the work ahead.

      Since the most common bar used is the question/answer format a common complaint about certification is that there are people who are brilliant at passing tests but cannot actually solve IT problems who obtain certification. I had never really met a person like this until about two years ago. A young fellow talked his way onto a large implementation I was working on purely by exhibiting his impressive 'knowledge.' Very soon afterward I was stuck working late nights fixing his errors and trying to help him through the numerous mistakes he was making.

      Having learned from experiences like this one my proposal is to do away with the question/answer style bar. In this proposed system the bar will consist of targeted project work that will be graded on a scale that is openly described. This is actually the method used for the written portion of a law school examination. In an examination of this type a given scenario is offered and the student must use the rules of law to come up with an answer. In law school this is typically done in IRAC (issue, rule, application, conclusion) format, but in a computer science course you would simply write your code at the level expected of you given the target audience. For instance, if you were a 100 level student or lower (meaning you were doing remedial work) you could write a very C-looking style Perl solution to a given problem and it would be graded (forgivingly) on style, execution -- it has to actually work, and other aspects I have not yet come up with. Students will not actually ever get a grade either. They will receive a recommndation to move onward to the next course or a recommendation that they repeat the existing one. Scores on projects could be appealed to reviewers at a higher level if the original grader is unfair, but only if the grading violated the published grading rules (similar to law school exams).

      So, it would be hard for a third party to assess your skill level by any certification given by such a university because no certification is ever actually conferred. Instead, you either get a recommendation to move to the next level or not. This model more closely matches how adults learn computer science topics because they will start learning something, get distracted, and often need to take a particular course multiple times before being ready to progress to the next level. So long as the courses are really inexpensive this can be done affordably.

      Celebrate Intellectual Diversity

Re^2: Perl(Monks) University
by InfiniteSilence (Curate) on Mar 29, 2011 at 23:59 UTC

    Thank you very much for your post. Regarding your question, 'why is Perl not taught in undergraduate school?' I cannot speak for most universities but at my college most of the textbooks were written with examples written in C/C++. Colleges that achieve accreditation for their CS programs must use books that go far in helping their programs meet standard requirements. The books we are using for Perl are excellent and popular but most do not cover many aspects in the abstract/standard/generic terms that are certain to meet the requirements.

    Let me give you a quick example. I once attended a OO Perl class at a conference that came with a small course guide. It was a good class; very informative and I enjoyed it a lot. The course guide is on my shelf along with Perl books even though it doesn't fit very well. That being said, the course simply would not have met a college course's requirements or standards for object oriented education. The main problem would have involved the terminology. Encapsulation, inheritance, and polymorphism were simply not described in abstract terms or in-depth.

    So this brings to light another important goal for this proposed university -- academic writing should be encouraged by instructors. I'm not thinking of meeting the same kind of rigorous requirements that accredited programs must meet, but there is room to coordinate course material with standard, accepted, and even emerging computer science trends when applicable. This falls under one of the main principles of this proposed university's mission: academic honesty (read my update in the main post ... I plan to write up a more comprehensive/formal proposal for this school describing, among other things, the university's mission). A 'university press' is normally a must for most institutions because, if you have brilliant instructors, the books are quickly outmoded. Perhaps striking a deal with a preferred publisher is the ticket (O'Reilly comes immediately to mind but there are others and even micro-publishing can work).

    Celebrate Intellectual Diversity