I've been thinking about where I can go from here. I'm not a perl master by any sense of the word, but I think I've hit a learning wall in some ways. I have yet to write significant OO code or to write a decent admin toolkit. I do so many things in my everyday programming that I think I could package all of my little everyday things into a module for my personal use.

The problem with that is that it would be only for my personal use. I'm more interested in helping the perl community. I have even been considering that I should learn C so I can help with internals and understand the Perl language better. I know that using Perl requires no knowledge of C, but I want to give back. I want to bug fix, I want to beta test, and I want to submit code to lwall and others. I just don't think I could be ready for that in a decent time frame. I already know enough C to make me dangerous, but again, that won't help me feel better now.

I'm not coming up with any steps that I could use to take my knowledge of Perl to a new level. Since my main focus in my career is web servers, their logs, and different aspects of their operation, I could always just continue my dreary existence and tailor my focus in that direction. But, I also get excited about network security. I could decide to focus my skills towards developing something new and cool so I can consult on the side. None of these things would necessarily help me with my Perl coding.

I guess my only real choice is to get more experience. I don't think I know what I don't know, and that is a bad thing for someone to not know. I just can't figure out which gaps in my knowledge require attention. I know OO is reasonably important, depending upon who you ask, and I know that I should make a list of functions and modules I don't understand. I know that I should probably begin looking at internals so I have a better understanding of what goes on in the background. I need to find a project that both excites me and challenges me to code like a maniac. I need to find something that will force me to go to areas of Perldom I've previously avoided.

I know that I should be more concerned with making sure my everyday existence is supported by my code, but I want to branch out. I've heard that whole idea of a Survival or Needs Pyramid, and I think the idea is right. When one level of the pyramid is satiated, we begin to consider the higher levels. I've satiated my lower levels, but my intellectual curiousity isn't fulfilled. I need stimulation and challenge above and beyond my everyday level. I'm hoping I can find it.

  • Comment on I've been thinking. . . (more of a ramble than a mediation)

Replies are listed 'Best First'.
RE: I've been thinking. . . (more of a ramble than a mediation)
by davorg (Chancellor) on Jul 25, 2000 at 18:25 UTC

    I'd suggest that now is the wrong time to be thinking about getting involved with the development of Perl 5. It seems to be generally accepted that the Perl source code is a bit of a mess and that only a relatively small number of people can understand it (I'm only reporting what I hear as I've never been anywhere near it myself).

    On the other hand, it might be exactly the right time to get involved in the development of Perl 6. The discussions have only just begun and one of the aims seems to be to simplify the way the Perl internals work. Why not subscribe to the Perl 6 bootstrap mailing list and see what's going on over there.

    On the other (third!) hand. Perl 5 will still be around for a long time and there is plenty to be gained by learning more about it. You mention OO and that is certainly a ripe field for new achievement. Read the perlboot and perltoot man pages and treat yourself to a copy of Damian Conway's most excellent book. Find some code that you've written which could be useful to others and bundle it up into a module. If you can't think of anything to practice on, take a look at the Perl Modules List - that always contains a list of modules that no-one has got round to writing yet.

    --
    <http://www.dave.org.uk>

    European Perl Conference - Sept 22/24 2000, ICA, London
    <http://www.yapc.org/Europe/>
RE: I've been thinking. . . (more of a ramble than a mediation)
by turnstep (Parson) on Jul 26, 2000 at 05:33 UTC

    If your box at home is not already running Linux, I would suggest starting there - you will learn a great deal about shell commands, unix commands, C, and perhaps even venture into awk, all of which will reinforce your perl skills as all of them have parts that will seem very perl-ish. (Mostly because those parts were taken by perl!) Then try and compile your own kernel and try out some basic C programs. Unfortunately, modifying perl or the Linux kernel are not really beginner tasks. Compiling can be done, and even *some* source code tweaking is possible, but it might be easier to start with something smaller. Seek out a local Linux Users Group, and learn from them. Try implementing some of your perl scripts in other languages such as C, awk, csh. Play around with things (e.g. X, Apache, Mozilla, sendmail, lynx, the kernel) until you find something that really grabs your interest. Al of the previous are open source, which means you can dive right in to the source code (C, naturally) and get your hands dirty. It's hard to do this with something that doesn't really interest you, so play around with a lot of things until you find something that does. While none of it is *directly* related to perl, I think it's definitely a step in the right direction.

    I'd also recommend reading all the perldocs if you have not done so already. Perlhack, perlguts, perltoot, perl5005delta, perlmod, perlfaq\d?, and perlboot come to mind of the top of my head.

    Another good way is to try and decipher some obfuscated code, or even just non-obfuscated code, and make sure you understand how it works. Plenty of examples of both on this site. Try writing your own version of something fun, like my Animals program, but maybe without the references, or try writing a C version, or just figure out a wat ot write it that is easier-to-read/obfuscated/quicker/smaller/etc.

      where in this guy's post did he state that he was interested in learning linux?? I mean, I _think_ I understand what you're _trying_ to get at, but just 'cuz you love linux, doesn't mean that it's the solution to everyone's problems.
Good Ramble
by gryng (Hermit) on Jul 25, 2000 at 18:51 UTC
    Gosh I wish I would stop using up all my votes at the beginning of the day. Someone ++ him a few times :) .

    jjhorner, I don't know if it would interest you, but check out AI and GO, perhaps that sort of thing would be an interesting learning experience? Also there is the area of distributed applications, and distributed computing that can be both related and different from your current pursuit that would be useful to others and yourself.

    Just some thoughts,
    Gryn

    p.s. I wish I could be Gryn and not gryng :P

RE: I've been thinking. . . (more of a ramble than a mediation)
by lindex (Friar) on Jul 25, 2000 at 20:37 UTC

    Just one note on the entire take all of my (your .. whatever)
    little functions, snippets, whatever code and and package it into
    module for your own personal use.
    It never works (at least from my personal experience, perl 1 1/2
    years or so, C a little longer) I have tried many times to compile all my
    usefull code into a mod or lib of some sort, and all that ever ends up
    happening is I find better ways todo thing's and stop useing the mod/lib,
    but I guess Iam just a lazy bastard for not updating :)




    lindex
    /****************************/ jason@gost.net, wh@ckz.org http://jason.gost.net /*****************************/
      I did it back in my pascal days and used them for a long period of time. But I'll give you a fair warning, even if it's for personal use, and even if you are the one writing it, it's a very good idea to comment on what the code does and why. I suggest at least 3 or 4 sentences per function, and at least 3 comments inside of nasty functions.

      Best wishes,
      Gryn

      p.s. this is not a Hallmark (c) greeting card. :)