Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

What type of challenges do you enjoy?

by Tanktalus (Canon)
on Aug 28, 2008 at 16:44 UTC ( #707537=perlmeditation: print w/replies, xml ) Need Help??

Part of the point of programming is solving puzzles. But we all know, not all puzzles are equal. Some are definitely more enjoyable and exciting to us - others may enjoy what we don't. So, I want to ask: what's your favourite challenge(s)?

As an example, what I've noticed that I enjoy the most is building infrastructure. That is, building tools that make other jobs easier. This can be anything from setting up an environment with lots of short-cuts for my revision control system to building a framework, or even building a framework on a framework. I've managed to get about 4 levels deep on frameworks here at $WORK - the actualcode that does the real work at the end of this was incredibly short, succinct,readable, and, above all, maintainable. It was also very extensible when wanting to do more just like it.

Using those tools then actually provided me the same satisfaction as the initial build time: I realised all the time I was saving by using my own infrastructure.

Writing pluggable code, setting up myself and/or coworkers (and/or other perl developers if I manage to get it onto CPAN) to succeed faster, easier, more reliably - this is the type of challenge I enjoy. What's yours?

Replies are listed 'Best First'.
Re: What type of challenges do you enjoy?
by moritz (Cardinal) on Aug 28, 2008 at 17:05 UTC
    There are several things I like:
    • Combining tools. That can be the combination of a few shell command, or it can be the integration of a blog system into my offline CMS.
    • Logical puzzles and riddles like Sudoku or Nonogram both manually and by program
    • Quickly coming up with solutions to data munging problems that make all non-perl-programmers gasp
    • Solving tricky logic problems with programs
    • Making seemingly simple things really useful. For example I maintain (and mostly wrote) the IRC logs for #perl6 and #parrot, and it features far more details than you might see at first, each of which added after a feature request. Not only URLs are turned into links, but also stuff like S03 into S03, revision numbers into links to the appropriate changesets etc. This is mostly not challenging from the programming point of view, the real challenge is to identify what's useful

    I'm sure that there are many more that just don't cross my mind right now. Basically everything that makes me think, and that has visible results.

Re: What type of challenges do you enjoy?
by Limbic~Region (Chancellor) on Aug 28, 2008 at 17:30 UTC
    Let's start with a list:

    In other words, I like finding problems that require me to think about things in new ways. This is not the same as "I like to learn new things". I am just as happy learning how to solve an old problem in a new way as I outlined in Necessity is the mother of invention. It isn't necessarily important to me that my new knowledge be useful to myself or anyone else. If it has practical application, great.

    In addition to finding problems that force me to think about things in a new way, I also enjoy working on problems that I believe are probably beyond my capabilities. I don't know how far I can go until I push myself. Even if I fail, I tend to learn new things along the way and I am happy with that.

    Cheers - L~R

Re: What type of challenges do you enjoy?
by talexb (Canon) on Aug 28, 2008 at 18:22 UTC

    The beginning is fun -- I'm faced with a problem or a challenge, I turn a couple of solutions around in my head, drink coffee, try a few pieces of sample code and eventually watch it morph into a solution.

    One of my favourites was a mod_perl requester that talked through a pipe to a daemon, making requests. The daemon would spawn an instance of a Big Honking Application for a particular document, get it to do something, pass the result back through the pipe, and keep the child process around for 60 seconds in case another request for the same document came through. Doing a watch on the process tree while the thing was being used was totally awesome, and very satisfying.

    Yes, it was all Perl.

    Alex / talexb / Toronto

    "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

Re: What type of challenges do you enjoy?
by JavaFan (Canon) on Aug 28, 2008 at 17:04 UTC
    My favourite challenge is to create an exciting dinner when we have friends over.

    Oh, you think there's no programming angle? Actually there is. An important thing for creating a good dinner is time management. All ingredients should be ready at the same time, and if the guests babysitter has to leave at 11, appetisers shouldn't be served at 10.

    And we all know many programmers (and other IT people) don't excel in time management. So, if you want to improve your time management (or, in general, resource management; your stove only holds so many pans, the size of the oven is limited, etc), go cook!

Re: What type of challenges do you enjoy?
by GrandFather (Saint) on Aug 28, 2008 at 21:58 UTC

    There are challenges at different levels. You mention "building infrastructure". Some of the stuff I have enjoyed doing most is of that sort, although more often tool building than library building. It is especially satisfying when everyone on the team uses the result every day and it works so well that it has pretty much disappeared into the woodwork.

    Finding elegant solutions to problems of any size. For example, I enjoy challenges related to golf. Not golfing code to obscurity, but golfing it to a point of elegance where it is clean, succinct and clear. Many answers to PerlMonks questions include fragments of that nature. Not always the main part of the answer, but often a clean way of setting up the preconditions for the core part of the answer.

    Perl reduces RSI - it saves typing
      Grand Father's comment resonates a lot. There is something very satisfying about making a solution elegant and balanced (two quite subjective terms), the type of design solution or little code paragraph that just makes you grin...
Re: What type of challenges do you enjoy?
by graq (Curate) on Aug 29, 2008 at 11:04 UTC

    I think most 'programmers' enjoy the same thing. However it is always constrained to some extent by the business for which they work.

    Part of the point of programming is solving puzzles.
    Just like life.
    But we all know, not all puzzles are equal.
    Just like... anyway you get the point.

    Who doesn't like to make their life easier and more enjoyable. Who wants to repeat the same laborious solution to the same problem over and over again? That's what machines are for!

    My favourite challenge is: how much can I get paid whilst not actually having to sit at a desk using a computer? Sadly I am not very good at that particular challenge. I'm still here.

    -=( Graq )=-

      Who doesn't like to make their life easier and more enjoyable. Who wants to repeat the same laborious solution to the same problem over and over again? That's what machines are for!

      Based on some of the code and methodology of my coworkers, I'd have to say that this is much rarer than you think. Most of my coworkers are just as happy to hardcode logic in their systems over and over again, which, of course, means solving the same bugs over and over again. Refactoring, data-driven design, or even decent object-oriented style, tooling ... it's all just simply beyond their desire. "No time for it." I keep telling them they don't have time not to do it, but they just don't listen.

      So I'm sure they'd love to have an easier life... but they're not willing to work for it. Yet ... it's a challenge I enjoy.

Re: What type of challenges do you enjoy?
by dwm042 (Priest) on Aug 29, 2008 at 17:57 UTC
    I like coding simulations, calculations, fitting curves. I like slicing data in ways people seldom do. Boy was I happy when I recently found easy ways to create Gaussian distributed random numbers in Perl.

    For the time being I'm simulating polls, because taking results that get analyzed badly are so much fun when you look at them in a slightly different way (Monte Carlo simulations rock!).
Re: What type of challenges do you enjoy?
by ForgotPasswordAgain (Priest) on Aug 29, 2008 at 09:53 UTC

    One thing I like is designing interfaces, either user or application programmer. I like balancing useability with power, whittling things down until there is an elegant, simple, and coherent interface that is nonetheless capable of doing everything required of it.

Re: What type of challenges do you enjoy?
by SFLEX (Chaplain) on Aug 29, 2008 at 12:08 UTC
    The more challenging codes I like to play with is encryption, polyalphabetic algorithm. Then build the script so its clean but not so easy to fallow how the method works.
    Other times I make what ever I feel like at the time which could be anything.
Re: What type of challenges do you enjoy?
by shmem (Chancellor) on Aug 31, 2008 at 16:01 UTC

    Basically, the challenges I most enjoy are those that are... well... most challenging. Wait, no. Not climbing Nuptse. More those which need skills I have, and then of those, they which need hidden skills I have. Like mastering perl, for some degree of mastering (yes, most of those who present me something as a challenge regard perl as something obscure, not enterprise ready, write-only etc.), or gut thinking.

    Gut thinking? Yes. That vegetative apparatus is as complex as the brain, and perceiving the interaction of both is exciting. I've perceived that introducing myself to SunOS4.1.3 UNIX. There are no explanations, there are just references. I ate manpage after manpage, and followed each SEE ALSO and then each SEE ALSO there. None of that made sense. But somehow ruminating over all that, things fell into place. I don't know which is greater, the actual knowledge of details or the unconscious big picture.

    So, over the time, I have a belly of knowledge which can't be realized but on demand.

    The most enjoyable challenge is a broken system which I don't know, infested with a heisenbug - solve that.

    P.S.: well, the above written applies to the realm of computers and programming. Elsewhere:

    Entzieh dich nicht dem einzigen Geschäfte
    vor dem dich schaudert; dieses ist das deine.
    Nicht anders sagt das Leben was es meine,
    und schnell zerwirft das Chaos deine Kräfte.

    Do not elude the only single task
    which makes you shiver; it's yours by rigour.
    Life only then responds to what you ask
    but chaos quickly will disperse your vigour.
    Hugo v. Hoffmannsthal, translation shmem

    Enjoying that challenge is already mastering it... ;-)

Re: What type of challenges do you enjoy?
by Lawliet (Curate) on Aug 31, 2008 at 14:42 UTC

    Well, as of lately, I like any challenge that I am able to solve.

    Delving further into my preferences will show I am fond of doing as much as I can to automate anything. Be it a small script to automate a web survey to get me coupons, to a program that downloads all the newest web comics. And so on.

    I'm so adjective, I verb nouns!

    chomp; # nom nom nom

Re: What type of challenges do you enjoy?
by CharlesClarkson (Curate) on Aug 31, 2008 at 14:33 UTC

    Outside programming I am fond of Cross Sums puzzles and of mazes. When I was a kid, I drew a lot of mazes and was surprised how many people found that hard to do. I don't have the vocabulary for crosswords or the patience for logic problems.

    The programming projects I find most enjoyable are web site scraping scripts. I was surprised to find what I would have guessed a mundane task so enjoyable.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://707537]
Approved by moritz
Front-paged by Old_Gray_Bear
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2021-03-08 15:39 GMT
Find Nodes?
    Voting Booth?
    My favorite kind of desktop background is:

    Results (125 votes). Check out past polls.