Philosophy Major bad Programmer
-
In fairness, we have lingerie football[^].
Compensated the downvote, that was funny too.
-
I think we all know that writing software is a matter of black and white. There may be many different ways to successfully solve a given problem, but the different methods will produce concrete results - unless you are writing in Prolog, then you may not know the outcome. We also tend to find a method that ‘works for us’ and continue to use that same sequence of code to solve similar problems. A programmer working with me many years ago either had a short attention span or leaned on his professors’ admonition that everything in the world is gray… He would never reuse a snippet that worked and because we were asked to comment our code (this was back in cryptic Assembler/Fortran land) he would liberally sprinkle ‘THIS MIGHT WORK’ anywhere there was questionable logic. Lesson: Don’t hire Philosophy Majors for Dev projects!
Gray beard, but no holey tee-shirts, 50+ yrs writing software.
I happen to have 2 undergraduate majors: pilosophy and mathematics (numerical analysis). I have been programming in the robotics industry for 20 years and am quite sucessful and proficient in a domain which is very demanding. I have seen many programmers come in/out of this industry and I can tell you that education is not really what makes a quality developer. We have all worked with many CS graduates that were ineffective and helpless. It is more about the person then the degree. I thought this issue was well understood. Perhaps not by all.
-
Edsger Dykstra pointed out philosophy majors as one of the better sources of good programmers in his article criticizing computer science programs as not producing a better crop of programmers. You see, there is very little opportunity to learn analysis in computer science, because the programs are oriented to teaching technique and theory - it wasn't until graduate school that I was REQUIRED to have adequate error handlers in my homework code, or to analyze its performance and optimize it for peak efficiency. More than half of the students my classes in the M.S. Comp Sci program had degrees in areas other than computer science. Contrast this with philosophy, where detailed formal analyses of philosphical positions and the consequences that arise from them are demanded from you starting sophomore year. Or to my major, psychology (the B.S. kind, not the B.A. kind), where in my sophomore year I had to turn in nine separate experimental reports with analysis (my B.S. program also required two semesters of BASIC programming, as our faculty believed that learning to program would help us perform statistical analyses and mathematical models of behavior as the state of the art improved). And of course there's physics and mathematics, both of them producing bumper crops of programmers every year. Computer science programs have improved a bit thanks to the criticisms of Dykstra and others...but the other fields have not themselves grown less difficult. I don't know what your background is, but the fact is, ANYONE can become a programmer without ever having to learn to write an explicit report detailing how and why their program works, and what its side effects could be if left in operation. Most programmers, in fact, are barely competent enough to leave understandable comments. About 90% of programmers are what I call "coders", as they will code whatever they're told to code. Virtually every programmer I've met who I'd consider to be in the ten percent I call "developers" had a bachelor's degree in another area, and sometimes a master's in another area as well. You might want to consider a bit more exposure to philosophy and psychology yourself, enough at least to avoid making yourself look like a bigoted pinbrain by making childishly insulting and glaringly ignorant remarks about these fields - believe me, there's plenty of room for critiques and VALID insults in both fields if only you know more about them than the fact that you don't like them. As I said earlier, your story was amusing, it's just th
cpkilekofp wrote:
ANYONE can become a programmer without ever having to learn to write an explicit report detailing how and why their program works, and what its side effects could be if left in operation.
See, this is part of the reason Philosophers don't make good programmers - your basic assumption was WRONG! I wasn't talking about 'writing a report about a program' - it was writing a 'reporting program' as in: Headers, Page #, Body (detail, totals), Footers. We actually had to code these by hand back in the dark ages....
-
I happen to have 2 undergraduate majors: pilosophy and mathematics (numerical analysis). I have been programming in the robotics industry for 20 years and am quite sucessful and proficient in a domain which is very demanding. I have seen many programmers come in/out of this industry and I can tell you that education is not really what makes a quality developer. We have all worked with many CS graduates that were ineffective and helpless. It is more about the person then the degree. I thought this issue was well understood. Perhaps not by all.
Agree totally with your conclusion. It's LOGIC, LOGIC, LOGIC. Still think several extended courses in Computer History would be invaluable to these young whipersnappers who start their career at .NET and never look back. That's how the 'Wheel' gets reinvented over and over!
-
cpkilekofp wrote:
ANYONE can become a programmer without ever having to learn to write an explicit report detailing how and why their program works, and what its side effects could be if left in operation.
See, this is part of the reason Philosophers don't make good programmers - your basic assumption was WRONG! I wasn't talking about 'writing a report about a program' - it was writing a 'reporting program' as in: Headers, Page #, Body (detail, totals), Footers. We actually had to code these by hand back in the dark ages....
Frank Towle wrote:
I wasn't talking about 'writing a report about a program' - it was writing a 'reporting program' as in: Headers, Page #, Body (detail, totals), Footers. We actually had to code these by hand back in the dark ages....
ROTFLMAO...no. Your understanding of what I said is, er, WRONG. I wasn't talking about your guy, I was talking about what the average Philosophy and Psychology students have to do in order to get even halfway through their degree, that is, describe the workings of complex abstractions in detail in their native language. Now, I understand, there are a lot of computer science programs that include technical writing as a requirement, which I think is a major step in the right direction; one of the reasons I was made to suffer Experimental Psychology was so that, by the time I'd done the ninth or tenth experiment, I'd have learned how to write a passable description of a psychological experiment, i.e. one that would stand at least some chance of getting published in a peer-reviewed journal. Hmmm...these days, you could have had your Philosophical Phlower Child document the code, keeping him out of trouble, if you couldn't push him aside any other way - at least he'd probably know how to write in English. And yes, I remember in one job we let the weak guy do the report programs - he turned out to be the saboteur by willful neglect, as every one of his programs was Y2K non-compliant even though we were writing this stuff in 1995. In every other job I had after that, the really weak guys didn't last long enough to contribute much - it was a much more competitive environment.
-
cpkilekofp wrote:
ANYONE can become a programmer without ever having to learn to write an explicit report detailing how and why their program works, and what its side effects could be if left in operation.
See, this is part of the reason Philosophers don't make good programmers - your basic assumption was WRONG! I wasn't talking about 'writing a report about a program' - it was writing a 'reporting program' as in: Headers, Page #, Body (detail, totals), Footers. We actually had to code these by hand back in the dark ages....
Oh, just a passing thought, but had your guy had a good grounding in Symbolic Logic in his coursework? That was one of the bigger advantages of a Philo. vs. some of the other fields, as few of them dealt in Boolean or other discrete mathematics and had no familiarity with De Morgan's Rule and the other shortcuts.
-
Oh, just a passing thought, but had your guy had a good grounding in Symbolic Logic in his coursework? That was one of the bigger advantages of a Philo. vs. some of the other fields, as few of them dealt in Boolean or other discrete mathematics and had no familiarity with De Morgan's Rule and the other shortcuts.
-
On you mean "The negation of a disjunction is the conjunction of the negations." This kind of trap produces compound conditions that should be totally outlawed in software development!
Frank Towle wrote:
On you mean "The negation of a disjunction is the conjunction of the negations." This kind of trap produces compound conditions that should be totally outlawed in software development!
Um, it also allows compound logical statements to be broken up in to a series of pure conjunctive clauses (i.e. Horn clauses) which allows one to search a set of Horn clauses for those that are true for a particular set of facts. This is the essence and basis of the Prolog programming language. Properly used, the De Morgan transformation and other logical transformations allow logical statements to be reorganized into whatever best fits the computing environment you must use. It's like the C language: don't throw it out just because some idiot can overwrite the operating system in DOS.
-
Frank Towle wrote:
On you mean "The negation of a disjunction is the conjunction of the negations." This kind of trap produces compound conditions that should be totally outlawed in software development!
Um, it also allows compound logical statements to be broken up in to a series of pure conjunctive clauses (i.e. Horn clauses) which allows one to search a set of Horn clauses for those that are true for a particular set of facts. This is the essence and basis of the Prolog programming language. Properly used, the De Morgan transformation and other logical transformations allow logical statements to be reorganized into whatever best fits the computing environment you must use. It's like the C language: don't throw it out just because some idiot can overwrite the operating system in DOS.
Interesting - I recall being able to define the 'probability' of something being a fact, think we called it 'fuzzy logic' but I didn't find the specifics. Is some of your last reply related to this? I don't have the time to look up the stuff you mention. :)
-
@Alan, this is fun. I actually co-designed and implemented an Expert/AI system for telecom troubleshooting in the late 1980's (NOT with my philosophy friend) using Prolog, C, Peer-to-Peer networking, fault-tolerance, USGS Mapping, Touch screen, voice response and anything else we could get our hands on. Our hand picked development team was a real cross section of life and skill set including our Prolog instructor. We even attended the 'Third Annual Artificial Intelligence and Advanced Computer Technology Conference', Long Beach, CA, April 1987. We presented our working prototype to the Senior Engineers of a major telecom company who doubted this could be done - they brought in AI PROFESSORS from the same university XCON/OPS5 came out of... The professors said Artificial Intelligence was still in the investigation stage and wasn't ready for prime time. Final result: The 'major' telecom company used OUR system in their fancy demo facility to show prospects the future of telecom systems management.
Wow, I had not seen OPS5 in print anywhere in a long time.... Used to do that on a DEC MicroVAX II.
I need a 32 bit unsigned value just to hold the number of coding WTF I see in a day …
-
Mr. Spear was writing about a fantasy world - not reality! You write like a real Ph.D Some humans were brilliant programmers, Steve Jobs, Bill Gates, Charlie Bachman and many others come to mind regardless of what I did. Don't think any of them had one of those - you know (ph.d)
-
Correction Steve Jobs was not a brilliant programmer though no doubt he was a brilliant salesman. Common misconception, in reality Jobs sold Wozniak's programs. ;P
-
Hi r, I am a brilliant programmer - created the very first mainframe terminal emulator program for the Apple II - called it 'STEM' (you figure it out). Wished I'd had Steve around to sell it for ME!