Re: AspectJ: solution to Java's repetitiveness?



"thufir" <hawat.thufir@xxxxxxxxx> wrote in message
news:HFVQj.95102$rd2.50579@xxxxxxxxxxxx
On Sat, 26 Apr 2008 06:56:59 -0400, Lew wrote:

Sooner or later you'll have to forget about college, and move on to
learning.

Well, everything else being equal, college would be an asset.

-Thufir

Like Lew I learned FORTRAN (FORTRAN 77) in university, along with VAX
Assembler. The only real benefit of university in learning those languages
was that I myself could not afford to lease and operate either a CDC 6400 or
a VAX 11/780 at home. Every language I have learned since I have learned
myself.

I don't rule out the usefulness of a good (I stress this word) course in a
first programming language. It obviously can't hurt to learn the
fundamentals of good programming from a good teacher. But there's no good
reason why subsequent programming languages can't be self-taught. I have in
fact used FORTRAN for real, but most every language I've used in the past
three decades I had to pick up on my own.

In addition, a good CS curriculum will cover(among other things) algorithms
and data structures in depth, something that is not usually emphasized in
standalone programming courses, and also not something that teach-yourself
programmers tend to study. And ideally in a good CS program you'll also get
taught software engineering, again not something that a standalone
programming language course will emphasize, and again not something that
do-it-yourself programmers usually see as a major goal. But this presupposes
a *good* CS program.

I myself realized well into my career that my imperfect understanding of
algorithms and data structures was hurting me, so I bought Knuth (The Art of
Programming) and Sedgewick (Algorithms in C) and proceeded to brush up.
Similarly, and also well into my career, I decided that some formal
knowledge of software engineering was in order, so on my own time I took a
certificate from DalTech in software engineering, covering software project
management, QA and testing, requirements analysis, design, maintenance, and
some other odds & ends. The latter was the first and only formal education
in the field I've had since leaving school.

Some other things to keep in mind about learning programming languages
through courses. Unless offered in sequence as part of a structured
curriculum, they usually have to start off with the assumption that for some
students it's a first language. Hence the treatment will be basic, and taper
off at a dissatisfying intermediate level at best.

Also, why assume that the teacher is an expert on the language? Not
infrequently the instructor's qualifications are simply (a) that they
learned the language/technology before you did, and (b) they know just
enough about it to teach the *course*. When a new programming language comes
out, there's no finishing school that prospective instructors attend - they
learn it the same way that any other developer does, by teaching themselves.
They may not even have had to seriously use it before they end up teaching
it. As an example, a former colleague of mine at one job was a part time CS
instructor at a local university. He was a real wizard at C++ and a pretty
good programmer.But he was just in the process of teaching himself Java when
he got tapped to teach a course in it...he was literally learning Java
concepts just in time to teach them. Take my word for it, his students were
not well-served when it came to some aspects like concurrency.

Bear in mind too that programming language courses don't always show up when
you need them. They tend to get offered when there's already a solid base of
people who (somewhat) know technology X, and there has been enough hype
about X so that some of that first group decides to teach courses in X. For
a developer that's frequently too late. In my area (Nova Scotia) the first
courses in XML didn't start showing up until well after 2000, and there are
many other examples.

So in the final analysis you'll do just as well or better if you teach
yourself, provided that you have a solid grasp of fundamentals, and you know
how to learn. Just learning how to run code snippets and modify them a bit
won't cut it, obviously.

Incidentally I am just teaching myself Ruby. Main motivation being, I have
some reasonable expectation that I might use RoR on some project in the near
future. Having determined on both Windows and Linux that you can develop
something of a working web app using Rails without knowing any Ruby at all,
I turned to the fundamentals and am using "Programming Ruby", and setting as
my goal real-world small programs that I already know how to write in a
number of other languages. The primary target here is to learn the Ruby
idioms...what's the Ruby way of doing things? But one thing's for sure - I'd
absolutely be wasting my time paying for a course in Ruby. I can learn more
in a week of my own free time than I would in a month's worth of evening
classes at some campus.

AHS


.



Relevant Pages

  • RE: C# book for 16 yo?
    ... First I would suggest first learning Visual Studio.NET. ... Then I suggest 2 books to actually learn C# - Microsoft has a book called ... important to quality programming. ... language that combines all the best features of previous languages and is ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Lisp Ruby Scheme
    ... :> pure functional programming in Haskell and learning it in Scheme ... prototypical language to incorporate it, so if I wanted to really grok ... I would find me a compiler for Eiffel and start feeding it ...
    (comp.lang.scheme)
  • Re: Opinions on intro lisp books
    ... But Lisp is a little different, ... Some languages support one style of programming better than they ... Even if that weren't the case, I'm not sure that a language being a ... I don't believe that learning to program in CL requires more theory ...
    (comp.lang.lisp)
  • Re: Newbie (Followup)
    ... level language (as I believe I will end up learning more). ... know a little bit including the basics of pointers, ... Alas I am forced to learn a "language" that deviates from even the most basic principles of programming (from what I have seen so far/ ...
    (comp.lang.c)
  • Re: object system...
    ... for that you need machine language. ... isn't even as fast as other systems programming languages. ... Stroustrup's stated design goal was to enable ... all manner of elegance or abstraction can be sacrificed for speed, ...
    (comp.object)