in reply to Learning by Doing

Can we novices hope to find a niche to test our new-found teeth on some real programming? Or are we doomed to a life of Comp. Sci. 101 excercises until we get us a nice computer job?
For one, you can continue reading the site. The IP question was simple, yes, but there are also more in-depth questions like, should i use MVC with HTMl::Template, Mason or something else. Learn the technologies and do easy large things to get the gist of what to do, what can be done.. and so on. The difference between a real world problem and a scienific one is just vested interest.

For instance.. writing a GPA calculator might be a silly exercise, but a lot of college sites have them. Would a GPA calculator be easy to write? Sure. You take in a bunch of inputs, you do some math, you pop out a number. You validate and do a bit of checking... it can't be more than 50 lines long.. maybe 100. But point is, someone will ask for it.

Now think of something that queries a database, formats the information into a pdf (nicely) and puts it on a server somewhere. Companies do this every day for reporting purposes.

The only thing that makes real world problems hard, are those little things that make people happy. "I don't like how long this takes." "Can you make this do this behavior instead." It's not limited to perl either. Knowing how to do anything in any language adds to your toolkit of things you can do. Just a matter of knowing how to tweak those things to make people happy.


Play that funky music white boy..

Replies are listed 'Best First'.
Re: Re: Learning by Doing
by husker (Chaplain) on Jan 07, 2004 at 17:07 UTC
    Actually a GPA calculator is not as trivial as it sounds at first.

    One of my projects at a mid-size 4-year regional school was to transition our paper transcript system to an electronic one. The old system had everyone's transcript on paper. New grades were printed on sticky labels every semester and each transcript had the label stuck to it by hand. If a grade was changed the records clerk used white-out and a typewriter to alter the transcript and a calculator to redo the GPA.

    When I went about creating the GPA module, I ran into all the wierd "what ifs" that occur for the 1% of the students. For instance, if a student graduates with an undergrad degree, comes back and takes more classes but is not in grad school, does their overall GPA start over with the new classes or does it include the undergrad degree courses? Scary answer: different clerks in the office did it different ways!

    The lesson? a) Rarely is anything as simple as it seems. b) Solving a problem requires that you understand it FULLY, including all the crufty parts people like to avoid. It is these two items which make "Learning by Doing" so powerful!

      Can we novices hope to find a niche to test our new-found teeth on some real programming? Or are we doomed to a life of Comp. Sci. 101 excercises until we get us a nice computer job?
      You see, the poster isn't talking about systems analysis and design, finding out what the user wants and implementing it. He's simply asking about where can he find non-examples.. full applications to write.

      You see, you wrote code for something w/o a spec. The basis of a GPA calculator is really simple. Do a few multiply's, a few adds, and a divide, and you have a gpa. Designing an interface on top of it, checking inputs and what not into an application is more of a challenge. What you ran into, was creating a simple application, and not passing user acceptance testing. :\


      Play that funky music white boy..