software engineering foundations?

S

skip

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:

http://www.cmcrossroads.com/bradapp/links/swe-links.html

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.

Thx,

--
Skip Montanaro - (e-mail address removed) - http://www.webfast.com/~skip/
------
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.
 
P

Paddy

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:

   http://www.cmcrossroads.com/bradapp/links/swe-links.html

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.

Thx,

--
Skip Montanaro - (e-mail address removed) -http://www.webfast.com/~skip/
------
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.

Is this the kind of thing you are after?
http://www.swc.scipy.org/

"Software Carpentry"

Overview

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.
 
F

Fredrik Lundh

Paddy said:
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%.

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 ;-)

</F>
 
A

Aahz

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?

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.
 

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. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,243
Members
46,836
Latest member
login dogas

Latest Threads

Top