The Perils of Java Schools

Not for 'how-to' coding questions but PHP theory instead, this forum is here for those of us who wish to learn about design aspects of programming with PHP.

Moderator: General Moderators

josh
DevNet Master
Posts: 4872
Joined: Wed Feb 11, 2004 3:23 pm
Location: Palm beach, Florida

Post by josh »

I think he meant by educated, "official" education... something you can put in a resume.. if he just meant general knowledge I would have to agree with you hockey
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

d11wtq wrote:Just because something is easier to learn doesn't mean it's a bad thing to learn. Technology is always moving forward and new languages will keep surfacing, each one perhaps making certain tasks a little easier or cleaner -- that's not bad, that's just technology evolving. You have to move with the times.

Granted, it's easier to pick between good and bad devlopers in a language like C but you can still see differences in any language.

Hell.... If I got hung up on one language and nothing else there's a good chance I'd be out of the job in 30 years time.
Simple evolution...

How dull would it be if we stayed writting code in assembler...nevermind frustrating :)

Those old timer programmers don't get it...sure they might know the ins and outs of the x86 instruction set...and be able to out optimize next gen compilers with their tricks and techniques, but at the end of the day...if I can write a program in half the time it takes them...

Evolution will weed out the bad from the good :)

These are such silly arguments... :lol:

Cheers :)
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

jshpro2 wrote:I think he meant by educated, "official" education... something you can put in a resume.. if he just meant general knowledge I would have to agree with you hockey
I figured he might be saying that...


Didn't I say something to suggest just that though??? :?

I can't remember and i'm to lazy to go back and look :D
Roja
Tutorials Group
Posts: 2692
Joined: Sun Jan 04, 2004 10:30 pm

Post by Roja »

jshpro2 wrote:I think he meant by educated, "official" education... something you can put in a resume.. if he just meant general knowledge I would have to agree with you hockey
As I said in my post..
Roja wrote: Granted, in this discussion, I'm defining that (educated) as the lack of a degree, which is certainly not always a perfect match to not being educated, but I think its a reasonable comment for this context.
I already explained that I don't feel that degree=education, but as a general statement, a group of people that have earned more degrees is generally more educated (especially in this discussion).

Joel is arguing that school needs to be *harder*, because the graduates aren't smart enough. I posit the opposite - that school needs to be less challenging at first, so that we get a larger community of more educated candidates to draw from.
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

Roja wrote:
jshpro2 wrote:I think he meant by educated, "official" education... something you can put in a resume.. if he just meant general knowledge I would have to agree with you hockey
As I said in my post..
Roja wrote: Granted, in this discussion, I'm defining that (educated) as the lack of a degree, which is certainly not always a perfect match to not being educated, but I think its a reasonable comment for this context.
I already explained that I don't feel that degree=education, but as a general statement, a group of people that have earned more degrees is generally more educated (especially in this discussion).

Joel is arguing that school needs to be *harder*, because the graduates aren't smart enough. I posit the opposite - that school needs to be less challenging at first, so that we get a larger community of more educated candidates to draw from.


Fair enough 8)
User avatar
BDKR
DevNet Resident
Posts: 1207
Joined: Sat Jun 08, 2002 1:24 pm
Location: Florida
Contact:

Post by BDKR »

Speaking of all this edumakashum stuff, perhaps I shouldn't be listenting to "Beercan" by Beck (which just tickles the hell out of me). :lol:

About Joel, I wouldn't say he has a "better than you" attitude, but it can be a little caustic. However, if you think he's bad, try some Fabian Pascal! That guy will step on your toes with certainty.

That said, he does sound typical of a lot of older guys that have been there and it's something I've come to expect. When they don't like the way thngs are going, they can easily sound like the bitter old tossers they are busily becoming. LOL....

But I think his tone is besides the point. Instead, is their truth in what he says. Or perhaps a better question is one of import. Is it indeed important to consider the things he's mentioning? In short low level vs high level programming knowledge. I think that ultimately depends on the direction one wants to go.

However, all of the high level stuff we do today is firmly planted on the shoulders of that low level stuff. PHP is written in C. So is Python. So is Perl. Same with the Linux Kernel and MySQL. Of course we can keep building higher and higher levels of abstraction, but there has to be someone that can speak to the metal somewhere. The person that can do that and also do application development will have a very complete view of what's going on as opposed to someone that can create an object but doesn't know what message passing is, does not know what's meant by a "tree" or "queue", or never heared of recursion. Joel's contention is that this person make a more valuable application developer becuase he's more likely to understand and fix problems that may arise at level closer to the metal.

There is more to programming than application development. If you want to write OS's, HAL's, 3D engines, or code used for scientific purposes, then it starts to become very important to have a greater understanding of some of these low level concepts. I personally love PHP becuase it allows me to focus on logic and I'm not bothered with worrying about strings. But I'm uttterly fascinated with things like 3D engines and MegaSquirt (Open source DIY Fuel Injection code. I'm also into high performance Turbo charged cars). I also like do systems stuff. Clusters in particular. Therefore, this stuff is of interest to me.

Furthermore, when I started chewing on "Fundemental Algorithms" (which is Vol 1 of "The Art of Computer Programming") by Donald E. Knuth, not only was I completely blown away about how much I didn't know, but I was later blown away x10 by how much of a better programmer (PHP included) it made me.

Anyway, I don't believe that knowing C is a pre-req for becomming a good programmer. Nor do I believe that a CS major is needed. Hell, I'm a music major. LOL. (And is it turns out, my hero, John Carmack, never finished college either.) Just define where you want to go and do what it takes to get there. BUT, keeping that old jingle about reviewing the past so you don't repeat stuff in your head, perhaps there is a reason to read and listen to the ranting of old tossers like Fabian Pascal and Joel Spolsky. Or at the very least, to make sure you have a good understanding of the varying paradigms and how we arrived at the present acceptable "think" on application development.

Cheers,
BDKR
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

BDKR wrote:Speaking of all this edumakashum stuff, perhaps I shouldn't be listenting to "Beercan" by Beck (which just tickles the hell out of me). :lol:

About Joel, I wouldn't say he has a "better than you" attitude, but it can be a little caustic. However, if you think he's bad, try some Fabian Pascal! That guy will step on your toes with certainty.

That said, he does sound typical of a lot of older guys that have been there and it's something I've come to expect. When they don't like the way thngs are going, they can easily sound like the bitter old tossers they are busily becoming. LOL....

But I think his tone is besides the point. Instead, is their truth in what he says. Or perhaps a better question is one of import. Is it indeed important to consider the things he's mentioning? In short low level vs high level programming knowledge. I think that ultimately depends on the direction one wants to go.

However, all of the high level stuff we do today is firmly planted on the shoulders of that low level stuff. PHP is written in C. So is Python. So is Perl. Same with the Linux Kernel and MySQL. Of course we can keep building higher and higher levels of abstraction, but there has to be someone that can speak to the metal somewhere. The person that can do that and also do application development will have a very complete view of what's going on as opposed to someone that can create an object but doesn't know what message passing is, does not know what's meant by a "tree" or "queue", or never heared of recursion. Joel's contention is that this person make a more valuable application developer becuase he's more likely to understand and fix problems that may arise at level closer to the metal.

There is more to programming than application development. If you want to write OS's, HAL's, 3D engines, or code used for scientific purposes, then it starts to become very important to have a greater understanding of some of these low level concepts. I personally love PHP becuase it allows me to focus on logic and I'm not bothered with worrying about strings. But I'm uttterly fascinated with things like 3D engines and MegaSquirt (Open source DIY Fuel Injection code. I'm also into high performance Turbo charged cars). I also like do systems stuff. Clusters in particular. Therefore, this stuff is of interest to me.

Furthermore, when I started chewing on "Fundemental Algorithms" (which is Vol 1 of "The Art of Computer Programming") by Donald E. Knuth, not only was I completely blown away about how much I didn't know, but I was later blown away x10 by how much of a better programmer (PHP included) it made me.

Anyway, I don't believe that knowing C is a pre-req for becomming a good programmer. Nor do I believe that a CS major is needed. Hell, I'm a music major. LOL. (And is it turns out, my hero, John Carmack, never finished college either.) Just define where you want to go and do what it takes to get there. BUT, keeping that old jingle about reviewing the past so you don't repeat stuff in your head, perhaps there is a reason to read and listen to the ranting of old tossers like Fabian Pascal and Joel Spolsky. Or at the very least, to make sure you have a good understanding of the varying paradigms and how we arrived at the present acceptable "think" on application development.

Cheers,
BDKR
Wow! Well spoken :D
User avatar
BDKR
DevNet Resident
Posts: 1207
Joined: Sat Jun 08, 2002 1:24 pm
Location: Florida
Contact:

Post by BDKR »

Roja wrote: ... - that school needs to be less challenging at first, so that we get a larger community of more educated candidates to draw from.
This is interesting and at first blush I completely agree with it.

However, I would say that depends on how we decided to "introduce" students to programming. I believe there should be an "order of things' that somewhat matches the history of artificial language development. In other words, the place for teaching OO should come a lot later. Not up front like these schools that are teaching Java at an introduction level.

But for making it easier, teaching something like PHP (with no OO) up front just to get the students to think logically as programmers would be a wonderful idea in my opinion. At least in this way, the more difficult things can be introduced to a person that at least has a grip on coding.
timvw
DevNet Master
Posts: 4897
Joined: Mon Jan 19, 2004 11:11 pm
Location: Leuven, Belgium

Post by timvw »

BDKR wrote: But for making it easier, teaching something like PHP (with no OO) up front just to get the students to think logically as programmers would be a wonderful idea in my opinion. At least in this way, the more difficult things can be introduced to a person that at least has a grip on coding.
Here is how i would teach things:
(1) Write a simple program to perform a bit of I/O on the terminal
(2) Let the students make a couple of similar programs, so they feel like copy/pasting most of their code
(3) Introduce them to functions (and algorithms)
(4) Let them make a couple of similar programs, this time performing I/O to different devices (terminal, socket, file)
(5) Introduce them to interfaces (and classes)
(6) Let them recognize "patterns" in similar problems
...

I think it's hard(er) to understand things if you don't have the right foundations (~education). But that doesn't mean you can't realise good solutions.. When i see people empty a large container with oil, i'm pretty sure they don't know how the engine of the tanker works either ;) Does that mean they can't do a good job?
mickd
Forum Contributor
Posts: 397
Joined: Tue Jun 21, 2005 9:05 am
Location: Australia

Post by mickd »

the only problem i face is that since i know what lots of the c commands are (since alot of them are similar to php) but lack the experience in writing the c applications, i get alot of syntax errors etc and the c errors that get the complier shows arnt as logical as php ones :?

overall, just cant be bothered to sit down and practise some basic c programming...
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

mickd wrote:the only problem i face is that since i know what lots of the c commands are (since alot of them are similar to php) but lack the experience in writing the c applications, i get alot of syntax errors etc and the c errors that get the complier shows arnt as logical as php ones :?

overall, just cant be bothered to sit down and practise some basic c programming...
The warnings and errors the GNU compiler gives are excellent IMO. You'll get a line number, a reason why it failed (or warned) and sometime's you'll even get a possible resolution. I've not worked with any others since it's just something I play around with in my spare time to keep that squishy blob of dough in my head entertained :)
mickd
Forum Contributor
Posts: 397
Joined: Tue Jun 21, 2005 9:05 am
Location: Australia

Post by mickd »

yeah your right, i guess its because of my lack of c knowledge and practise in c that how to correct the error isnt as obvious.
User avatar
Buddha443556
Forum Regular
Posts: 873
Joined: Fri Mar 19, 2004 1:51 pm

Post by Buddha443556 »

Maybe the trend in CS has less to do with making it easier to learn and more to do with market demands. Software projects haven't gotten smaller over the years. At one time 100,000 lines of code was a large software product. Now projects with 1,000,000s lines of code are common. Such projects require huge amounts of manpower. Your average programmer only produces 15 lines of code a day. It takes a lot of programmers to bring in one of these ultra-large software projects in any sort of reasonable amount of time. In such projects, it may be more important that the programmers are able to work in a team than know the ins and outs of recursion.

No doubt schools such as MIT will still produce the 1% that understand a computer from the semiconductor up. So no worries. :wink:
Post Reply