On Saturday, December 7, 2002, at 11:22 PM, Dave Watts wrote:
>> P.S. There is a member of this list who was/is a teenage
>> prodigy with CF (and quite a few other web technologies)
>> -- Dave, if you see this, you could provide some real-life
>> experience for input!
>
> I'm not sure whether you're referring to me, since there are plenty of
> Daves, so forgive me if I'm presuming too much. If you are referring
> to me,
> I unfortunately will have to disappoint you, since I was never a
> teenage
> prodigy with CF or anything else, although I was considered pretty
> competent
> with small arms in my late teens.
Nope, another Dave (younger -- still a teen, I think)
> I can comment on learning programming informally, though. I didn't
> come from
> a CS background, but learned programming the hard way, by
> trial-and-error,
> basically. Being self-taught sounds nice, but if you think about it,
> it's
> kind of silly - if you're self-taught, your teacher is by definition
> incompetent!
You had the same teacher as me --
Actually, I took lots of formal programming classes, but there were no
CS classes back then.
> I hate to be a wet blanket, but I'm not a big fan of teaching CF
> programming
> to kids, for several reasons. First, I'm not sure that we should be
> teaching
> programming to kids generally; on the list of things that everyone
> should
> learn, I think it's pretty low.
I should have been more specific. I don't think everyone should learn
programming,
anymore than everyone should learn French.
The computer labs in schools usually serve multiple purposes:
For everyone: general exposures to computers & what they can do
As a tool for certain disciplines: secretarial, accounting,
engineering, etc., using
tools such as word, excel gpss.
And programming for those who are interested -- not everyone is
interested in
art, music, etc,. but the schools provide instruction for those who
are.
> There's a difference between learning basic
> computer skills (which, sadly, are necessary for almost everyone
> nowadays)
> and learning how to program. I think it's a sad commentary on the
> state of
> the computer industry that people have to spend so much time learning
> basic
> computer skills, actually - these things are supposed to be easy to
> use, but
> of course they aren't, really. I'd much rather see every student have a
> firmer grasp on the "three Rs" than have them all able to churn out web
> applications. I'd rather see civics classes again, actually. I just
> don't
> think programming is all that important, I guess.
I don't think one excludes the other.
The schools I was involved with were in Silicon Valley in the 1980's,
before the web.
But almost every family had at least one member employed in a
computer-related industry.
Within a 15 mile radius we had Stanford, HP, Commodore, IBM, Sun,
Apple, Xerox Parc, Fairchild, Oracle, Sybase, Intel, Applied Materials,
etc,
There was a lot of interest in computers by the children of the
employees of these companies.
I suspect that there are other computer ghettos where this is true.
For these environments, programming is, often, a popular subject.
> Second, for those students who want to learn programming, I think it's
> more
> important to focus on core programming concepts than it is to teach the
> specifics of CFMX. I'd rather see them learn programming using a
> lower-level
> language than CFML, and a more general-purpose language, too. I think
> Java
> and Python would be better languages for learning how to program.
I agree, to a point.
Likely they are still teaching BASIC :(
Part of the technique of educating people is in the order in which you
develop the students' skills.
For example, If you were teaching web site development, you might start
with HTML basics, a little CFML for programming and get them
comfortable with the ideas of presentation and problem-solving.
Then, maybe introduce Java to those who are interested, after they have
learned the concepts and you have built their confidence.
I may be wrong, but I think you would lose most of the students if you
started with: OO concepts, class files, compiling, etc.
I think the neat thing about CF is that you can focus on the problem,
rather than the requirements of a language that is used for
problem-solving.
With CFML, like CoBOL (gasp) you can teach people to write simple
programs (and see results) in a matter of minutes. Once they are
comfortable, and interested, they are yours to teach what you will.
As an aside, In the late '60s, early seventies I taught quite a few
CoBOL classes to beginners and professional programmers, I continually
experimented with different ways of teaching the class. By far the
best results were obtained with this approach:
In the first 5 minutes of the class we would write a simple program --
really simple, say calculate pi or netPay.
They, the students, would write a working program in the first 5
minutes of the class. Of course they had to Keypunch, Compile,
Assemble and execute this on the mainframe. they did that -- total
chaos -- but a few minutes later they each had a running program,
Results!
I had them -- everything else just built on that simple example. I
introduced concepts as needed during the course, and showed them how to
find things in the manuals. At the end I provided complete examples
(printouts and punched cards) of every problem in the course. They had
everything they needed to start programming in CoBOL.
We let them play at it for a day or two, then brought them for CoBOL
part II.
It started this way: "Well, you guys have been screwing around with
CoBOL for 2 days, now you are gioing to learn how to do it right! Do
you have any questions ---"
My point!. CFML is one of the few languages that permit you to do the
same thing -- largely because of its English-like constructs.
You can teach problem-solving with (CF) programming easier than with
almost any other language,
Sure, once they have grasped the concepts, you have to show them how to
do it right.
But it is much easier (better) teaching/learning results first.
> Finally, for teaching purposes, you don't want to make things too easy
> - for
> example, if you wanted to teach someone about HTML, Notepad would be a
> better tool (I think) than Dreamweaver MX. I see this a lot, actually,
> now
> that Dreamweaver is used in the Macromedia courses. The "Fast Track To
> ColdFusion" class is easier for students, because they don't have to
> know
> any HTML to get through it, but the students don't actually know how to
> generate a dynamic select box, say, because in Dreamweaver you do it by
> clicking on a button or two, rather than by typing in the necessary
> HTML and
> CFML.
Again, one should not be taught to the exclusion of the other -- there
is a need for both power tools and hand tools.
There is nothing wrong with starting with DW, then later showing them
what is under the covers -- then teaching them form the ground up (or
vice versa).
> So, yes, CFMX is good enough for us to use, but not good enough for our
> kids. Personally, I'd be very distraught if my kids ended up being CF
> programmers. Shouldn't we want our kids to be better off than we are?
> (I
> don't have any kids, so this is purely hypothetical for me. If I did,
> I'd be
> pushing them toward law school instead of programming.)
Didn't say I wanted my kids to be programmers -- I want them to be well
rounded in many skills and hopefully free to pursue a career that
interests them.
But, be a lawyer, doctor, musician they will be exposed to computers
and the web -- and maybe hire someone to program an application for
them. It would be valuable if they understood enough about what is
involved, so they would not be at the mercy of some programmer.
>> So, now you have a 13-year-old who understands HTML, CFML,
>> SQL-- watch out!
>
> That's all well and good - if he's going to start working today as a
> consultant. In the long run, again, I think he'd be better served by
> learning general programming theory rather than the specifics of
> languages
> that may well be obsolete by the time he's ready to work in the field.
Maybe yes, he will start working as a consultant (pays better than a
lot of jobs)-- but likely not!
And yes, if he is going to be a consultant, he will likely need to
learn other languages -- which ones?
I think that once you are exposed to application development, you learn
other technologies as: they become popular; are needed for a specific
task; or pique your interest.
I'd wager that you didn't start programming in Flash, Java, SQL, and
CFML -- but you use them now, because each performs certain tasks
better than anything else.
I started with ForTran, Assembler, CoBOL, APL, BASIC, Forth, Pascal,
VBS. JavaScript, Perl , flat files, ISAM (no RDBMSes, back then) --
I've programmed the "Native-American" problem in more languages than I
can remember.
But I don't use them anymore --- except:
CF Loops are logically he same as ForTran loops
CF RegExps are similar to Perl RegExps.
ISAM indexes are very similar to SQL indexes
CFscript and Flash Action Script are similar to JavaScript.
CF self-documenting code is similar (in philosophy) to CoBOL's.
So, in a way, yes, I do use them -- because many of their components
are included in the languages I now use.
I imagine that every programming language will eventually become
obsolete -- but the concepts live on.
To sum up, I think that CFML is an excellent language to expose people
to problem-solving by programming-- whether they will become
programmers or not.
For those who do become programmers, they get the benefit of instant
gratification; cause and effect; results; --whatever you want to call
it. They get comfortable with the concepts before learning all the
rules.
For those who don't become programmers, they learn the concepts and
understand what is involved in problem-solving by programming. They
are better prepared deal with programmers, when they encounter them --
and they will!
Dick
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Your ad could be here. Monies from ads go to support these lists and provide more
resources for the community. http://www.fusionauthority.com/ads.cfm