OT: Becoming a Modern Software Engineerby Wally Hartshorn (Friar)
|on Feb 06, 2003 at 21:43 UTC||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.)
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)