Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

OT: Becoming a Modern Software Engineer

by Wally Hartshorn (Hermit)
on Feb 06, 2003 at 21:43 UTC ( #233284=perlmeditation: print w/replies, xml ) Need Help??

Question: How do I learn to become a modern software engineer?

Background: I got my degree in Computer Science back in 1986. I learned COBOL, Pascal, PL/I, Fortran, C, Basic, and some assembler. I also learned structured programming, analysis, and design. I got a job as a Cobol programmer, then after several years switched over to doing Unix system administration, web page design, and (once in a while) some simple CGI programming in C. Recently, I've been able to spend more time on programming, this time in Perl, with minor forays into Java and Oracle's PL/SQL.

Problem: I'm starting to get my feet wet with orbject-oriented programming. This is something that wasn't taught when I was in college. In poking about trying to get a handle on things, I find myself reading articles talking about "use cases", "UML", "design patterns", "extreme programming", "refactoring", "agile methodologies", "evolutionary design", etc. In many cases, an article about "X" seems to assume familiarity with "Y", while an article about "Y" seems to assume a familiarity with "X". As a result, I'm coming to the conclusion that I've fallen behind on the software engineering technology curve, and would like to get caught up as quickly as I can.

My Plea: Given the above, can someone recommend a good sequence of "A", "B", and "C" that can help me start to learn whichever of the above are most useful? (I realize that there's going to be a certain amount of hype and manager-appealing buzzwords in all of this, but presumably there's something useful to be learned.)

Wally Hartshorn

P.S. I've been chastised for not pointing out that I have also posted this question on JavaJunkies. So I hereby officially point that out. I've also submitted it as an "Ask Slashdot" question, but I don't know whether it will be accepted. It's possible I'll post it at other places where I think the readers might be able to provide good information.

(Plug: Visit JavaJunkies, PerlMonks for Java)

  • Comment on OT: Becoming a Modern Software Engineer

Replies are listed 'Best First'.
Re: OT: Becoming a Modern Software Engineer
by chromatic (Archbishop) on Feb 06, 2003 at 21:53 UTC

    Run, don't walk, to pick up Steve McBreen's Software Craftsmanship. Then, become a craftsman, not an engineer. :)

    Seriously, the best way to become a better programmer is to find a mentor who's a good programmer. After that, read as much good code as you can. After that, read as many good books as you can. (The Pragmatic Programmer is another good place to start.)

Re: OT: Becoming a Modern Software Engineer
by dws (Chancellor) on Feb 06, 2003 at 22:07 UTC
    UML Distilled is a short, very approachable introduction to UML, by Martin Fowler and Kendall Scott.

    Martin Fowler's Refactoring: Improving the Design of Existing Code is the cannonical book on refactoring. Unfortunately, it's only available in hardback.

    Alistair Cockburn's Agile Software Development is a project leader-level introduction to Agile methods, and includes a great discussion of information flow within projects. If you liked Peopleware, you'll love this book.

    You may have gotten to a point in your career where you recognized that a great grip on technology isn't sufficient for succeeding in technology. Consider Jerry Weinberg's Becoming a Technical Leader, which lays out several good technology-independent strategies for being successful.

    For technology-dependent specifics, check out the articles on the O'Reilly site. Onlamp, another O'Reilly site, has many good articles on the latest and greatest Open Source stuff.

Re: OT: Becoming a Modern Software Engineer
by simon.proctor (Vicar) on Feb 06, 2003 at 22:42 UTC
Re: OT: Becoming a Modern Software Engineer
by hsmyers (Canon) on Feb 12, 2003 at 20:31 UTC
    My 2 cents worth---remember Sturgeon's “Ninety percent of everything is crud.” Derived from a quote by science fiction author Theodore Sturgeon. This applies to much of your quoted list. This leaves design patterns. My short course on that starts with “The Timeless Way of Building” then follow up with a current edtion of “Design Patterns” If you are wondering about why start with an obscure architectural design book---well it's where the current notion of 'patterns' started...


    "Never try to teach a pig to wastes your time and it annoys the pig."

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2020-10-27 18:20 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (257 votes). Check out past polls.