software engineering foundations?

Discussion in 'Python' started by skip, Jul 22, 2008.

  1. skip

    skip Guest

    Sorry for the off-topic-ish post. My son (a fairly junior sysadmin type)
    mentioned to me today that he was looking for online courses for Perl. (I
    don't hold that against him. Perl is still a lingua franca in the sysadmin
    realm.) In my work I have from time-to-time had to pick up and maintain
    scripts (generally shell/Python stuff) which non-professional programmers
    have written. It's never what you would call a "pleasant" task.

    There are software construction skills which are entirely distinct from the
    language in which you are programming. We can tout object-oriented,
    structured programming, test-driven development or other software
    engineering techniques, but there is a body of knowledge out there which is
    orthogonal to the language in which the code is written. People who are not
    professional programmers often lack those skills and their code shows it.

    Are there any good online resources for this "software structure" axis?
    Googling for "object oriented programming tutorial" yields a bunch of stuff,
    much of it language-specific. I'm trying to find something a bit more
    general than that though.

    I Googled for "software engineering tutorial" as well. Most of the early
    hits were either inaccessible (ACM subscription only) or contents-like stuff
    (conference announcements, for example). Number eight on the list was this
    rather promising page:

    It was last updated over 10 years ago. I find it hard to believe that
    so little has changed in that time that some other page with more recent
    references hasn't percolated to the top of Google's page rank! After all,
    the Web has grown just a tad in that timeframe.

    I have a sneaking suspicion that what I'm looking for is out there, but that
    I'm not asking Google in the right manner. Any and all pointers/suggestions
    cheerfully accepted.


    Skip Montanaro - -
    ELON MUSK: If fuel cells were good, don't think you'd see them somewhere,
    like maybe in a laptop or a cell phone or a $200 million military satellite
    maybe? And yet, where do you see them?
    SPENCER MICHELS: You don't.
    ELON MUSK: Exactly.
    skip, Jul 22, 2008
    1. Advertisements

  2. skip

    Paddy Guest

    Is this the kind of thing you are after?

    "Software Carpentry"


    Many scientists and engineers spend much of their lives programming,
    but only a handful have ever been taught how to do this well. As a
    result, they spend their time wrestling with software, instead of
    doing research, but have no idea how reliable or efficient their
    programs are.

    This course is an intensive introduction to basic software development
    practices for scientists and engineers that can reduce the time they
    spend programming by 20-25%. All of the material is open source: it
    may be used freely by anyone for educational or commercial purposes,
    and research groups in academia and industry are actively encouraged
    to adapt it to their needs.

    - Paddy.
    Paddy, Jul 22, 2008
    1. Advertisements

  3. Judging from the table of contents and a quick sampling of a few
    lectures, that's mostly about programming (with a strong Python
    flavour), and the material about the engineering process is pretty
    simplistic, I'd say. On the other hand, the bibliography does have the
    following to say about the book I recommended:

    In short, it is everything I wished someone had told me before
    I started my first full-time programming job.

    so I guess it's not all that bad ;-)

    Fredrik Lundh, Jul 22, 2008
  4. skip

    Aahz Guest

    While this doesn't really directly address your question, I think that
    anyone who wants to do serious programming of any sort really should read
    _The Mythical Man-Month_ by Fred Brooks -- make sure to get the 25th
    anniversary edition.
    Aahz, Jul 23, 2008
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.