aliases, references & pointers (and the danger of dumbing thingsdown)

J

johanatan

Hi folks,

I ran across another article today warning against the dangers of
dumbing things down for students and it reminded me of the recent
discussion we had on references, pointers & aliases.

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

He makes basically the same points that Joel made in the last link I
sent. (This just goes to show that I'm not the only one who feels
this way).

And, a few more thoughts about aliases has occurred:

alias: an assumed name --or-- an alternative name for a thing
reference: a note in a publication [or manuscript] referring the
reader to another passage or source
pointer: one that directs, indicates, or points --or-- a variable that
holds the address of a core storage location

Out of these 3 definitions (which were taken from answers.com), only 2
indicate that a level of indirection is involved. Or, to say it
pictorially, that an arrow would be drawn between two nodes. In the
case of an alias, which is the primary which is the secondary? How
can you tell the direction of the arrow or that there even is an
arrow?

--Jonathan
 
D

Daniel T.

johanatan said:
I ran across another article today warning against the dangers of
dumbing things down for students and it reminded me of the recent
discussion we had on references, pointers & aliases.

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

He makes basically the same points that Joel made in the last link I
sent. (This just goes to show that I'm not the only one who feels
this way).

At the risk of going off topic...

joelonsoftware.com covered this article recently...
http://www.joelonsoftware.com/items/2008/01/08.html

As to the three main points of the article:

"1. Mathematics requirements in CS programs are shrinking."

Alan Holub covered this issue well in his book "Enough Rope to Shoot
Yourself in the Foot". He said, in part:

...skills in mathematics serve almost no purpose in computer
programming. The sort of organizational skills and analytic ability
needed for programming come entirely from the Humanities... The
process used to design and write a computer program is almost
identical to the process used to compose and write a book. The
process of programming has no connection at all to the process used
for solving mathematical equations.

"2. The development of programming skills in several languages is giving
way to cookbook approaches using large libraries and special-purpose
packages."

Isn't the above exactly what all the emphasis on software reuse has been
for?

"3. The resulting set of skills is insufficient for today¹s software
industry (in particular for safety and security purposes) and,
unfortunately, matches well what the outsourcing industry can offer. We
are training easily replaceable professionals."

Again, the ultimate goal is being achieved. Brooks said that programmers
weren't replaceable components no matter how badly companies wanted them
to be. Looks like he might have been wrong...
 
J

johanatan

At the risk of going off topic...

joelonsoftware.com covered this article recently...http://www.joelonsoftware.com/items/2008/01/08.html

As to the three main points of the article:

"1. Mathematics requirements in CS programs are shrinking."

Alan Holub covered this issue well in his book "Enough Rope to Shoot
Yourself in the Foot". He said, in part:

   ...skills in mathematics serve almost no purpose in computer
   programming. The sort of organizational skills and analytic ability
   needed for programming come entirely from the Humanities... The
   process used to design and write a computer program is almost
   identical to the process used to compose and write a book. The
   process of programming has no connection at all to the process used
   for solving mathematical equations.

That's quite a claim. I suppose we can all make claims like this.
But, where's the data to support it? How many non-technical majors
are programming full time (and successful at it)? Given two
programmers-- one that understands theory and one that does not (but
equal in other respects), then the one that knows theory will win
almost without exception. The same can be said of other fields too.

The problem with applications is that they are built on top of systems
and as much as we'd like to believe that applications are immune from
systems concepts, it just isn't true. I've seen it over and over
again in my experience. Building a multi-threaded application? Then,
you have to think about race conditions and deadlocks whether or not
you want to. The same exact problems are being solved on many
different levels in modern systems and it doesn't really matter much
which level you are programming in (if you doing a sufficiently
complex problem).

Sure, you can take some forms and slap them onto a database and let
people manipulate data, but that isn't really solving problems in any
sufficient complexity to be considered 'programming'.
"2. The development of programming skills in several languages is giving
way to cookbook approaches using large libraries and special-purpose
packages."

Isn't the above exactly what all the emphasis on software reuse has been
for?

Yes, but you still need to know about algorithmic complexity. I can
take a perfectly good O(c) algorithm and screw it up by calling it
many more times than necessary. There's always going to be glue code
(and as I tried to say before, as the complexity of your application
increases, the more likely you are to face 'systems' problems). And,
furthermore, there's always going to be a need for the people who
write the packages, or systems (would you suggest that they too not
know anything about mathematics?)
"3. The resulting set of skills is insufficient for today¹s software
industry (in particular for safety and security purposes) and,
unfortunately, matches well what the outsourcing industry can offer. We
are training easily replaceable professionals."

Again, the ultimate goal is being achieved. Brooks said that programmers
weren't replaceable components no matter how badly companies wanted them
to be. Looks like he might have been wrong...

Where's the data to support that?

--Jonathan
 
L

Linonut

* Daniel T. peremptorily fired off this memo:
Again, the ultimate goal is being achieved. Brooks said that programmers
weren't replaceable components no matter how badly companies wanted them
to be. Looks like he might have been wrong...

Brooks is still correct. Development is still far from a cookbook
discipline.
 
J

johanatan

* Daniel T. peremptorily fired off this memo:


Brooks is still correct.  Development is still far from a cookbook
discipline.

In short, yea. :) And even if it weren't the real R&D in the field
certainly would still be. Depends on the zoom level you want to look
at. On the fringe, you might be able to make something of an argument
for putting together parts from a virtual junkyard, but that's quite
different from engineering the raw machinery to start with. And both
of these terms are quite relative in a 'layered' environment. What's
software today might be hardware tomorrow and what's an application
today might be a supporting technology tomorrow. There's still
progress being made on all levels (that could certainly benefit from
some minds that understand machinery/engineering/mathematics/
algorithmic complexity/optimization/etc.

--Jonathan
 
D

Daniel T.

johanatan said:
That's quite a claim. I suppose we can all make claims like this.
But, where's the data to support it? How many non-technical majors
are programming full time (and successful at it)? Given two
programmers-- one that understands theory and one that does not
(but equal in other respects), then the one that knows theory will
win almost without exception. The same can be said of other fields
too.

Given any two programmers who are equal in all other respects, the one
who also "understands theory" will of course be the better man for the
job (even if only by a small degree.) How could anyone argue with that?
(Not that anyone has of course.)

However, when push comes to shove, programming is mostly about
communication, not solving complex mathematical formulae. Given two
programmers, one who knows calculus well but can't communicate well,
while the other communicates effectively, but has trouble with calculus,
the later person will be a much more effective programmer IMHO. (I
freely admit though that my personal bias might be showing, having never
even taken calculus... :)
Sure, you can take some forms and slap them onto a database and let
people manipulate data, but that isn't really solving problems in
any sufficient complexity to be considered 'programming'.

And you can slap together a fortran program to solve some complex math
formula, but that isn't programming either.
... And, furthermore, there's always going to be a need for the
people who write the packages, or systems (would you suggest that
they too not know anything about mathematics?)

Last I checked, logic (IMO the single most important thing to understand
in programming,) is taught in the philosophy department as a Humanities
course... Would you suggest those programmers not know anything about
logic? Not know anything about how to organize their thoughts and
communicate them effectively to others? That's what the humanities are
all about... communication.

Of course there are some mathematically intense areas of interest in
programming (3D comes to mind,) but those are niches. The rest of us use
those "large libraries and special-purpose packages."

"It's interesting that the original work in language theory that made
compiler-writing possible was done by a linguist--Noam Chomsky at
M.I.T.--not by a mathematician." (Holub)
Where's the data to support that?

Well, it's an assertion made by the writers of the article so you will
have to ask them that. I just found it odd that they were lamenting the
very situation that the executives in the industry have been hoping for
from the beginning... easily replaceable programmers...
 
C

Christopher

Hi folks,

I ran across another article today warning against the dangers of
dumbing things down for students and it reminded me of the recent
discussion we had on references, pointers & aliases.

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

He makes basically the same points that Joel made in the last link I
sent. (This just goes to show that I'm not the only one who feels
this way).

And, a few more thoughts about aliases has occurred:

alias: an assumed name --or-- an alternative name for a thing
reference: a note in a publication [or manuscript] referring the
reader to another passage or source
pointer: one that directs, indicates, or points --or-- a variable that
holds the address of a core storage location

Out of these 3 definitions (which were taken from answers.com), only 2
indicate that a level of indirection is involved. Or, to say it
pictorially, that an arrow would be drawn between two nodes. In the
case of an alias, which is the primary which is the secondary? How
can you tell the direction of the arrow or that there even is an
arrow?

--Jonathan

A programmer that hasn't taken discrete math or has not been exposed
to the course's curriculum within some other course is going to fail
miserably. Not all colleges call this course by the same name or
include its contents in one course, but basically they teach such
things as converting from one base to another, representations of
numbers and floating points, graph theory, big O notation and
analysis, proof by ... i forget the word... , series of numbers and
supporting formula, truth tables and creating forumula from them
(philosophy did not teach me that any truth table could be translated
into a series of nands and ors), etc.

All fundamental programing tools and mostly mathematical. That course
caused alot of would be programmers to consider other careers and
rightly so.

Like a previous poster said, Anyone can make some forms and set or get
data with it, but that is not programming, that is something more
artsy. Programming consists of algorithms and problem solving, and one
would hope... a mind that can do it efficiently and in a maintainable
manner.
 
J

johanatan

Given any two programmers who are equal in all other respects, the one
who also "understands theory" will of course be the better man for the
job (even if only by a small degree.) How could anyone argue with that?
(Not that anyone has of course.)

However, when push comes to shove, programming is mostly about
communication, not solving complex mathematical formulae. Given two
programmers, one who knows calculus well but can't communicate well,
while the other communicates effectively, but has trouble with calculus,
the later person will be a much more effective programmer IMHO. (I
freely admit though that my personal bias might be showing, having never
even taken calculus... :)


And you can slap together a fortran program to solve some complex math
formula, but that isn't programming either.



Last I checked, logic (IMO the single most important thing to understand
in programming,) is taught in the philosophy department as a Humanities
course... Would you suggest those programmers not know anything about
logic? Not know anything about how to organize their thoughts and
communicate them effectively to others? That's what the humanities are
all about... communication.

No, I think logic is excellent, but you can't take someone who has a
degree in humanities (and when you said humanities, I for some reason
was thinking about art, music, the Renaissance and such) and expect
them to program. There is just so much more to it than that. And, if
you are going to get that deep into formal logic, how are you going to
avoid mathematics? I think that philosophers and lawyers if they
truly understand formal logic would be great programmers. But, that
doesn't mean that they can step out with a philosophy or law degree
and program right away. Logic is only one part of math (and really
math is the purest form of what the other hard sciences involve). It
is, in essence, the language of the universe. I think it's safe to
say that unless you're approaching the Ph.D. level in any discipline,
you are not truly familiar with the all parts of mathematics that are
applicable to your discipline (and maybe not even then). Furthermore,
there are many parts of math besides logic that apply to programming.
Advancements in any of the other hard sciences almost always feed back
into math itself especially those coming from theoretical CS so people
studying other sciences are studying math whether they realize it or
not.

If you set out to become a programmer by studying humanities, the
formal logic part, I'm afraid, is going to be almost an afterthought.
You going to spend quite a lot of time studying other stuff that,
while useful in general, is not very applicable to programming (such
as which philosophers thought which things and so on, and to be quite
honest, much of it is purely political propaganda). Why not just
study the pure forms of these things (formal logic and languages) as
they appear in mathematics (without any particular biases)?
Of course there are some mathematically intense areas of interest in
programming (3D comes to mind,) but those are niches. The rest of us use
those "large libraries and special-purpose packages."

But, you still need to take care in how you use them (and you probably
find yourself re-solving some of the same problems the libs are
supposed to solve for you only at a different level--take a windowing
application for instance, which very much resembles the underlying
code inside the window manager and so on). Take other engineering
disciplines who use pre-packaged (usually highly specified) components
and put them together to form a new 'system'. There's still quite a
bit of thought/design that goes into making a system from pre-packaged
components. A whole branch of engineering is devoted to it.
"It's interesting that the original work in language theory that made
compiler-writing possible was done by a linguist--Noam Chomsky at
M.I.T.--not by a mathematician." (Holub)

Yes, that is interesting, but it involved much more than humanities.
It's quite technical describing in meticulous detail formal languages
and such, really borders on mathematics to me given the level of
specificity and the symbolic nature of it. There's quite a large
section of mathematics devoted to formal languages (and that might
have come out of Chomsky's work, but math has adopted it and its there
now for future generations of mathematicians). There's definitely a
lot of overlap in these disciplines, but math gets right to the heart
of things more quickly IMHO. I think Chomsky knows quite a lot of
math too. Linguistics certainly involves more than math, but the part
of it applying to computer languages and compilers can really be
reduced to problems in math (as can just about everything else).
Well, it's an assertion made by the writers of the article so you will
have to ask them that. I just found it odd that they were lamenting the
very situation that the executives in the industry have been hoping for
from the beginning... easily replaceable programmers...

I just don't buy it. But, maybe it is just the types of applications
I see being written--I'm sure there is a lot of thin code out there
that just glues stuff together, but I don't think that we'll be seeing
the end of the 'software crisis' any time soon.

--Jonathan
 
J

johanatan

A programmer that hasn't taken discrete math or has not been exposed
to the course's curriculum within some other course is going to fail
miserably. Not all colleges call this course by the same name or
include its contents in one course, but basically they teach such
things as converting from one base to another, representations of
numbers and floating points, graph theory, big O notation and
analysis, proof by ... i forget the word... ,
induction?

series of numbers and
supporting formula, truth tables and creating forumula from them
(philosophy did not teach me that any truth table could be translated
into a series of nands and ors), etc.

All fundamental programing tools and mostly mathematical. That course
caused alot of would be programmers to consider other careers and
rightly so.

Like a previous poster said, Anyone can make some forms and set or get
data with it, but that is not programming, that is something more
artsy. Programming consists of algorithms and problem solving, and one
would hope... a mind that can do it efficiently and in a maintainable
manner.

Yea, I agree completely with all of these points.

--Jonathan
 
J

johanatan

joelonsoftware.com covered this article recently...http://www.joelonsoftware.com/items/2008/01/08.html

That's interesting, but I think that the sort of college these guys
seem to be advocating is becoming more of a trade school than anything
(which is probably due to the coming of age of the discipline). But,
I think this argument has been fought over many of the other
disciplines and they all seem to have already come to the conclusion
that college is for theory and trade schools (or community colleges)
are for practice. You can see my bias, but I personally believe that
theory is the better route as its application naturally follows.
Typically, trade schools (or community colleges) require less time to
complete. For going for the theory, you are basically investing more
time up front in the hopes that later returns will be greater, and
that has been proven again and again to actually pay off in the long
run.

--Jonathan
 
D

Daniel T.

[I kept your entire comment below, but I notice it didn't attempt to
refute my main point, about effective communication, at all...]
No, I think logic is excellent, but you can't take someone who has
a degree in humanities (and when you said humanities, I for some
reason was thinking about art, music, the Renaissance and such) and
expect them to program. There is just so much more to it than that.
And, if you are going to get that deep into formal logic, how are
you going to avoid mathematics? I think that philosophers and
lawyers if they truly understand formal logic would be great
programmers. But, that doesn't mean that they can step out with a
philosophy or law degree and program right away. Logic is only one
part of math (and really math is the purest form of what the other
hard sciences involve). It is, in essence, the language of the
universe. I think it's safe to say that unless you're approaching
the Ph.D. level in any discipline, you are not truly familiar with
the all parts of mathematics that are applicable to your discipline
(and maybe not even then). Furthermore, there are many parts of
math besides logic that apply to programming. Advancements in any
of the other hard sciences almost always feed back into math itself
especially those coming from theoretical CS so people studying
other sciences are studying math whether they realize it or not.

If you set out to become a programmer by studying humanities, the
formal logic part, I'm afraid, is going to be almost an
afterthought. You going to spend quite a lot of time studying other
stuff that, while useful in general, is not very applicable to
programming (such as which philosophers thought which things and so
on, and to be quite honest, much of it is purely political
propaganda). Why not just study the pure forms of these things
(formal logic and languages) as they appear in mathematics (without
any particular biases)?

At this point, I think we are starting to get into an "opinion debate".
At the very least, we seem to have a different notion of what it means
to be an effective programmer. I will say this, I have a wife who
teaches college level composition, and a daughter who is taking college
level algebra. The former deals with the importance of writing multiple
drafts, understanding fallacies and logic, and the importance of peer
review. The latter deals with the minutia of applying low level
transformations, rote memorization, and encourages isolation from one's
peers. Of the two disciplines, I think the former methodology would
produce a better programmer, certainly someone I would rather work with,
than the latter.
 
J

johanatan

I'll address communication below.
[I kept your entire comment below, but I notice it didn't attempt to
refute my main point, about effective communication, at all...]
No, I think logic is excellent, but you can't take someone who has
a degree in humanities (and when you said humanities, I for some
reason was thinking about art, music, the Renaissance and such) and
expect them to program. There is just so much more to it than that.
And, if you are going to get that deep into formal logic, how are
you going to avoid mathematics? I think that philosophers and
lawyers if they truly understand formal logic would be great
programmers. But, that doesn't mean that they can step out with a
philosophy or law degree and program right away. Logic is only one
part of math (and really math is the purest form of what the other
hard sciences involve). It is, in essence, the language of the
universe. I think it's safe to say that unless you're approaching
the Ph.D. level in any discipline, you are not truly familiar with
the all parts of mathematics that are applicable to your discipline
(and maybe not even then). Furthermore, there are many parts of
math besides logic that apply to programming. Advancements in any
of the other hard sciences almost always feed back into math itself
especially those coming from theoretical CS so people studying
other sciences are studying math whether they realize it or not.
If you set out to become a programmer by studying humanities, the
formal logic part, I'm afraid, is going to be almost an
afterthought. You going to spend quite a lot of time studying other
stuff that, while useful in general, is not very applicable to
programming (such as which philosophers thought which things and so
on, and to be quite honest, much of it is purely political
propaganda). Why not just study the pure forms of these things
(formal logic and languages) as they appear in mathematics (without
any particular biases)?

At this point, I think we are starting to get into an "opinion debate".
At the very least, we seem to have a different notion of what it means
to be an effective programmer. I will say this, I have a wife who
teaches college level composition, and a daughter who is taking college
level algebra. The former deals with the importance of writing multiple
drafts, understanding fallacies and logic, and the importance of peer
review. The latter deals with the minutia of applying low level
transformations, rote memorization, and encourages isolation from one's
peers. Of the two disciplines, I think the former methodology would
produce a better programmer, certainly someone I would rather work with,
than the latter.

Well, I did take two semesters of composition and sure, it helped me
to organize thoughts and produce consistent work (a much better
example of this would have been my Master's thesis though). And, I
have friends who have gone through entire undergraduate programs in
English and Humanities and there's no way without some serious
training that they could program. To be honest, even half or more of
the students in the CS department couldn't program. So, I'm speaking
from quite a bit of experience here too.

The biggest problems with your thesis that I can see are:

1 - logic (at least of the degree required to be a good programmer) is
not the main emphasis of these other programs. If an English
professor mentioned 'fallacies and logic' it was certainly not to a
degree that would be useful to a programmer. Philosophy would have a
better chance of applying, but even then, I'm afraid that logic just
isn't that much of the curriculum for undergraduates.

2 - communication, while essential, is not all that writing good code
is about. You might be able to make the point that a very good
communicator who is somewhat technical could make a good requirements
elicitor, but that's about as far as good communication alone will get
you.

I do entirely agree that programmers should be good communicators, but
there's something there that involves the math side of the brain. You
argument is very strong for maintaing 'core' requirements for
undergraduates outside the CS curriculum, but those core requirements
alone won't prepare a student for being a programmer (unless you
approach the Ph.D. level, and even then, there's quite a bit of 're-
orienting' that would have to occur, and there's loads of other stuff
you'd have to learn that aren't directly relevant, such as political
propoganda machines churn out). I'm afraid that most undergraduate
humanities majors only briefly touch on logic.

Hope this helps to clarify my position. I think we both agree on the
importance of communication, but communication isn't all that's
required.

--Jonathan
 
D

Daniel T.

johanatan said:
I do entirely agree that programmers should be good communicators, but
there's something there that involves the math side of the brain. You
argument is very strong for maintaing 'core' requirements for
undergraduates outside the CS curriculum, but those core requirements
alone won't prepare a student for being a programmer...

That's good enough for me. Obviously I wouldn't expect a rhet/comp, or
even a philosophy major to be able to program right out of school, but
neither would I expect a math or physic's major to do so (even if he
does know the syntax of some programming language.) I wouldn't even
expect the latter to require less instruction before being able to
program, although to be sure he would require a different sort of
instruction.

Sounds like compromise is in order... I might even go so far as to say
that programming (the craft of writing programs, not the science of
analyzing them,) requires a well rounded individual, the math geek isn't
automatically the better candidate... Good enough? :)
 
J

johanatan

That's good enough for me. Obviously I wouldn't expect a rhet/comp, or
even a philosophy major to be able to program right out of school, but
neither would I expect a math or physic's major to do so (even if he
does know the syntax of some programming language.) I wouldn't even
expect the latter to require less instruction before being able to
program, although to be sure he would require a different sort of
instruction.

Well, I do have empirical evidence to refute this particular point.
For one, I knew Physics majors in school who did quite a bit of
programming (as their major required it) and were good at it.
Sometimes, the CS students would write the code for the Physics dept,
but all too often, they did their own coding (which was maybe not on
the same level of formatting/organization/tightness as a CS student's
code, but funtionally, it got the job done).

And, at a previous job, I worked with a nuclear physicist who had
taught himself to code (and already coded as a hobby before getting
into nuclear stuff).

I think that the ramp up time for a hard science major would be
massively less than a humanities major (especially if they knew a
syntax already) given that most of the hard sciences are doing
programming nowadays anyway. Of course, they are not being instructed
on how to structure code from an engineering perspective or as anal
about formatting (in my experience) but that stuff comes easily if
they are willing to embrace it.
Sounds like compromise is in order... I might even go so far as to say
that programming (the craft of writing programs, not the science of
analyzing them,) requires a well rounded individual, the math geek isn't
automatically the better candidate... Good enough? :)

I do agree that the best programmer would be well-rounded, but I
cannot compromise on the belief that mathematics/analysis is essential
(as the complexity of the project increases). The 'writing of
programs' as you put it should involve analysis (at whatever level you
are writing at). Yes, there are some scripting language type utilites
you can do without much analysis (maybe as a sys admin, but that isn't
really programming). At my university, there were 3 concentrations:

CS, IS, IT

the distinction between IS and IT was somewhat fuzzy to me but
basically they're your admin types who glue packages together and keep
systems running and so on (and in many cases, these students couldn't
hack even minimal hard core programming requirements).

I think there are situations where the 'math geek' isn't the better
candidate, but those situations are probably not all that appealing to
the math geek anyway so there would be no comptetition from him
there. Let's put it another way, those students that can do
engineering (or math) are probably already in a technical major, and
if they are not, then they are obviously not interested in doing
engineering/math. Most people in engineering do it because they love
it.

--Jonathan
 
J

johanatan

Well, I do have empirical evidence to refute this particular point.
For one, I knew Physics majors in school who did quite a bit of
programming (as their major required it) and were good at it.
Sometimes, the CS students would write the code for the Physics dept,
but all too often, they did their own coding (which was maybe not on
the same level of formatting/organization/tightness as a CS student's
code, but funtionally, it got the job done).

And, at a previous job, I worked with a nuclear physicist who had
taught himself to code (and already coded as a hobby before getting
into nuclear stuff).

I think that the ramp up time for a hard science major would be
massively less than a humanities major (especially if they knew a
syntax already) given that most of the hard sciences are doing
programming nowadays anyway.  Of course, they are not being instructed
on how to structure code from an engineering perspective or as anal
about formatting (in my experience) but that stuff comes easily if
they are willing to embrace it.


I do agree that the best programmer would be well-rounded, but I
cannot compromise on the belief that mathematics/analysis is essential
(as the complexity of the project increases).  The 'writing of
programs' as you put it should involve analysis (at whatever level you
are writing at).  Yes, there are some scripting language type utilites
you can do without much analysis (maybe as a sys admin, but that isn't
really programming).  At my university, there were 3 concentrations:

CS, IS, IT

the distinction between IS and IT was somewhat fuzzy to me but
basically they're your admin types who glue packages together and keep
systems running and so on (and in many cases, these students couldn't
hack even minimal hard core programming requirements).

I think there are situations where  the 'math geek' isn't the better
candidate, but those situations are probably not all that appealing to
the math geek anyway so there would be no comptetition from him
there.  Let's put it another way, those students that can do
engineering (or math) are probably already in a technical major, and
if they are not, then they are obviously not interested in doing
engineering/math.  Most people in engineering do it because they love
it.

--Jonathan

P.S. And, at another previous job, I worked side-by-side with a
different self-taught and very talented programmer who majored in
Physics/Astronomy in college. FWIW, I've yet to encounter an
Philosophy, English, or other Humanities major on the job though (but
this may just be lack of exposure).
 
R

red floyd

johanatan said:
P.S. And, at another previous job, I worked side-by-side with a
different self-taught and very talented programmer who majored in
Physics/Astronomy in college. FWIW, I've yet to encounter an
Philosophy, English, or other Humanities major on the job though (but
this may just be lack of exposure).

I worked with a woman who had a PhD in Linguistics... does that count?
 
J

johanatan

I worked with a woman who had a PhD in Linguistics... does that count?

Yea, absolutely. But, we've already discussed Linguistics. The
important part of Linguistics as it applies to computer science is
very 'mathematical' in nature. I'm not sure which discipline had
these 'discoveries' first, but like i said previously, the advances in
nearly all the other sciences feed back into mathematics itself.

--Jonathan
 
J

johanatan

I worked with a woman who had a PhD in Linguistics... does that count?

Well, yes, that counts. But, it's been covered twofold in the
discussion already.

1 - a PhD certainly 'approaches' the PhD level. I thought we were
talking about undergraduate degrees.
2 - Linguistics is (at least the part of it that applies to CS) very
much like what you find in mathematics concerning formal languages/
grammars and so on. It's uncleear to me whether the work was
discovered by a linguist or a mathematician (probably both), but like
I mentioned previously too, all advancements in other fields feed back
into math itself.

--Jonathan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top