OT: Good Programming Courses Suggestions for technique rather than language
Ian Petersen
ispeters-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Wed Aug 26 22:36:33 UTC 2009
On Wed, Aug 26, 2009 at 2:32 PM, Dave Germiquet<davegermiquet-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org> wrote:
> Basically so I'm programming the correct way, instead of just putting
> code together to do a specific task.
I would say that the skill you're looking to learn is one that every
good developer keeps learning anew, every single day. As such, I
don't have any suggestions on courses, and I wonder if any good ones
really exist. I think you're asking for a course that can teach you
"good taste" in design. In my somewhat limited experience, good taste
is partly innate, and partly like wisdom--learnable only through long
experience. My recommendation is to both read and write as much code
as you can.
As I think the Marines say, "luck is the residue of good design". I
think that has significant meaning in reverse--good design leads to
luck. What I mean is, code that's well designed is only proven to be
well designed when you come back to it "later" and it's easy to adapt
it to a new purpose. To the extent that I have any taste, I learned
it in a hands-on fashion by adapting existing code to support new
features and struggling through it. Eventually, you start to see the
struggles before you have to actually do any struggling and you get
better at building things in an extensible manner from the get-go. Of
course, as with any complicated skill, you'll probably swing too far
for a while and build the occasional highly-abstracted, fully
dependency-injected, 100% localized shell script for some one-off task
that you'll never do again. But fixing that comes with experience,
too, and, if nothing else, you'll have learned how to localize a Bash
script so you can do it again when it's actually necessary.
Ian
--
The Toronto Linux Users Group. Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
More information about the Legacy
mailing list