No one teaches PROGRAMMING any more
-
-
Yep, educational institutions are now pandering to "enterprise" business. So, all that these poor students are getting exposed to are high level frameworks. God forbid they know how a computer works.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long
Chris Austin wrote:
Yep, educational institutions are now pandering to "enterprise" business.
ROFL! That's why I love MIT's brief but effective differentiator[^]. :) /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Chris Austin wrote:
Yep, educational institutions are now pandering to "enterprise" business.
ROFL! That's why I love MIT's brief but effective differentiator[^]. :) /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Ravi Bhavnani wrote:
ROFL! That's why love MIT's brief but effective differentiator[^].
Funny. For a second, I thought I was reading the synopsis of the CS department where I went to school - their approach was pretty much exactly the same. Little or no emphasis on languages; little or no emphasis on application development for its own sake. Lots of emphasis on algorithms and data structures; lots of emphasis on math. Incidentally, my degree was in Engineering, but there's alot of overlap and I took alot of CS classes.
It has become appallingly obvious that our technology has exceeded our humanity. - Albert Einstein
-
Christian Graus wrote:
I think CS is dead
I don't think it's dead, just endangered. Good lord, I hate interviewing people these days. I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree. I think we have lowered to bar way too much.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long
Chris Austin wrote:
I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree. I think we have lowered to bar way too much.
Hmm, I'm not sure I could answer that one off the top of my head. B-trees[^] are rather non-trivial, aren't they? Or maybe I just haven't studied them closely.
-
Christian Graus wrote:
I think CS is dead
I don't think it's dead, just endangered. Good lord, I hate interviewing people these days. I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree. I think we have lowered to bar way too much.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long
Chris Austin wrote:
I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree.
I'd be incredulous if he didn't just say, "I wouldn't, I'd grab one of the myriad tried & true, publicly available b-tree implementations that are already out there". Requesting simple example code is a good way to weed out those who can't code from those who can but isn't code re-use supposed to be one of those things a GOOD programmer strives for?
T-Mac-Oz
-
The worst is in the gaming degrees - particularly the ones started by schools to seem "hip" (that's what the kids say right?). They pay thousands of dollars to learn how to point and click. If this is supposed to be the new competition I've got some awesome job security. We have kids coming out to interview that might have some concepts like state management and render queues in their pocket but if you asked them to implement it their brains will explode. And not in the good way. Actually there really isn't a good way is there?
-
Chris Austin wrote:
I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree. I think we have lowered to bar way too much.
Hmm, I'm not sure I could answer that one off the top of my head. B-trees[^] are rather non-trivial, aren't they? Or maybe I just haven't studied them closely.
Leslie Sanford wrote:
B-trees[^] are rather non-trivial, aren't they?
Depends on the requirements:
Leslie Sanford wrote:
a simple b-tree
is little more than a linked list (though with two "next" - left & right - nodes instead of one). A self balancing b-tree (actually useful as more than just an academic exercise) does take a bit more work.
T-Mac-Oz
-
As funny as it sounds, it really is a sad state that CS is in right now. I, personally, blame outsourcing.
"impossible" is just an opinion.
Hello Folks, I am from the outsourcing capital of the world. Alright, don't shoot, I am one of guys who can program. I am in product development, mostly telephony related. I wrote my first program in 'C' back in 1989, and switched to 8086 assembly for a year and finally into C++ in 1991, I am still with it. I first heard about STL from BS himself when he presented it in 1994 at C++ 11th birthday event at AT&T Holmdel (NJ). So I have been around. ;-) I guess you are all talking about situation in US, but India is in no better shape. Despite having so many programming vacancies, hardly anybody knows programming anymore. Therefore, blaming the situation on lack of jobs (out-sourcing) can't be right. IMHO, programming can be taught only by programmers, and in India no programmer would take up a teaching job. The difference in pay for an University teacher and a corporate programmer is too much. Even a programmer with a passion for teaching (like me) can't imagine switching to a teaching career. I first considered teaching pro bono at the local university, then I gave up. The C++ syllabus they had is cast in stone, new and delete is considered advance programing and templates are not even menttioned. Besides, if I ignore the lousy syllabus and teach those kids some real C++, they will flunk the exam since the programs will float way above the examiners understanding of C++. The only way to learn real programming is via books and Internet, that is if the person is interested enough to do it. But the onslaught of easy languages like C#/Java/VB don't make it easy.
-
Someone the other day posted their VB assignment ( in university ). It was 'name your 10 favourite properties of VB.NET controls and why you like them. The OP was asking 'what's a property' and 'what's a control property'. I think CS is dead, I am considering changing careers.
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
-
There hasn't been anything fundamentally new in computing since 1973 all we've seen since then is ever more trivial refinement, what do you expect? This is the age of the "architect" not the "developer". I completely agree that anything called "computer science" should be reserved for nuts and bolts stuff and the 1 or 2 people per semester that are still interested in that can take it, the rest can be in "application development" etc. It's kinda like they don't teach carpenters how to make carpentry tools anymore and at some point in history some guys were sitting around with mugs of ale and deploring the loss of the good old days. :)
"The pursuit of excellence is less profitable than the pursuit of bigness, but it can be more satisfying." - David Ogilvy
-
I'm very optimistic - you never could TEACH programming, like you can never TEACH absolute pitch - only try to learn how to exploit it in the best manner. If it exists... Regards, Gennady
-
Someone the other day posted their VB assignment ( in university ). It was 'name your 10 favourite properties of VB.NET controls and why you like them. The OP was asking 'what's a property' and 'what's a control property'. I think CS is dead, I am considering changing careers.
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
We've been employing nothing but grads for at least the last year. On the whole they are at or just below what I would consider average but there are some really top notch candidates coming out of our uni's at the moment if your willing to put the effort into finding them.
-
Hello Folks, I am from the outsourcing capital of the world. Alright, don't shoot, I am one of guys who can program. I am in product development, mostly telephony related. I wrote my first program in 'C' back in 1989, and switched to 8086 assembly for a year and finally into C++ in 1991, I am still with it. I first heard about STL from BS himself when he presented it in 1994 at C++ 11th birthday event at AT&T Holmdel (NJ). So I have been around. ;-) I guess you are all talking about situation in US, but India is in no better shape. Despite having so many programming vacancies, hardly anybody knows programming anymore. Therefore, blaming the situation on lack of jobs (out-sourcing) can't be right. IMHO, programming can be taught only by programmers, and in India no programmer would take up a teaching job. The difference in pay for an University teacher and a corporate programmer is too much. Even a programmer with a passion for teaching (like me) can't imagine switching to a teaching career. I first considered teaching pro bono at the local university, then I gave up. The C++ syllabus they had is cast in stone, new and delete is considered advance programing and templates are not even menttioned. Besides, if I ignore the lousy syllabus and teach those kids some real C++, they will flunk the exam since the programs will float way above the examiners understanding of C++. The only way to learn real programming is via books and Internet, that is if the person is interested enough to do it. But the onslaught of easy languages like C#/Java/VB don't make it easy.
cpp.samurai wrote:
Therefore, blaming the situation on lack of jobs (out-sourcing) can't be right.
Outsourcing is not a function of lack of jobs, but rather a function of wanting to pay less for a given job. The concept of paying less for the same thing is not a new one, what has changed in the recent decade is more or less a lack of oversight, or lack of checks and balances, or how ever you want to view it... the result is less quality for less money. It hurts the real programmers in India, and in the USA and everywhere. There are more than enough jobs, and more than enough people to fill them. A given IT job usually gets on the order of 100 to 300 applications. Even here with all our restrictions we get 100 applications for any one job. But those jobs are going elsewhere because no one wants to pay us the money, or even you the money, they want to pay someone less than either of us makes, and not bothering to find out if they can do the job before giving it to them. The result is encouraging failure, and living with 2nd rate products, and in many cases 3rd rate products or vaporware because no product is ever produced for the money.
-
As funny as it sounds, it really is a sad state that CS is in right now. I, personally, blame outsourcing.
"impossible" is just an opinion.
I blame .net, intellisense and languages that make it easy for people to think they know what they're doing. I've seen a lot of drag n drop kiddies in the U.S. as well. :) But, yeah, outsourcing hasn't helped the situation out much.
- S 50 cups of coffee and you know it's on!
-
-
Leslie Sanford wrote:
B-trees[^] are rather non-trivial, aren't they?
Depends on the requirements:
Leslie Sanford wrote:
a simple b-tree
is little more than a linked list (though with two "next" - left & right - nodes instead of one). A self balancing b-tree (actually useful as more than just an academic exercise) does take a bit more work.
T-Mac-Oz
T-Mac-Oz wrote:
A self balancing b-tree (actually useful as more than just an academic exercise) does take a bit more work.
I prefer optimal imbalanced trees myself (splay tree). :) I am the only person at my work who understands data structure storage, btrees, n-ary-trees, skip lists, splay-trees, meshes, etc. Oh sure, anyone on the team could use a hash-table, or an STL list/vector, etc. But no one could write their own. One of the team said he wrote a hash routine, I asked what his hash function was... he looked at me dumbfounded, then answered, well, its a hash table so it just has one. uh huh.... overlap-hit, distribution, turns out it was multiple and mod.... When you take data structures in my school, you learned to make your own data structures, today you learn to use existing data structures. eh? what learning is that? that is just training, just rote, no conceptual analysis, no thought, no design, no fitting of requirements to result.
-
Ravi Bhavnani wrote:
ROFL! That's why love MIT's brief but effective differentiator[^].
Funny. For a second, I thought I was reading the synopsis of the CS department where I went to school - their approach was pretty much exactly the same. Little or no emphasis on languages; little or no emphasis on application development for its own sake. Lots of emphasis on algorithms and data structures; lots of emphasis on math. Incidentally, my degree was in Engineering, but there's alot of overlap and I took alot of CS classes.
It has become appallingly obvious that our technology has exceeded our humanity. - Albert Einstein
Patrick S wrote:
Little or no emphasis on languages; little or no emphasis on application development for its own sake. Lots of emphasis on algorithms and data structures; lots of emphasis on math.
With the exception of the math, that's the way I gather most CS faculties were oriented through at least the 80's & early 90's (if not the whole 90's). Lots of stuff (who remembers the name of that notation/language used for proving the logic of an algorithm?) that most graduates will never even think of again unless they land in some highly specialised area like NASA, DOD or purely academic CS. Most CS graduates were useless for the first couple of years while they learned how to actually apply the useful stuff they were taught & forget the arcane. I do wonder if it's gone too far the other way now though, too much reliance on pre-existing frameworks is bound to stifle innovation in some areas but with the ever increasing complexity of computing environments it is a practical option. Personally I'd like to see more emphasis on problem-solving & design, which has historically been (in my experience, first as a student, later as an employer) a bit light-on in CS faculties. As an employer, I'd rather hire someone who can conceptualise a solution, then find the best tool(s) for the job as opposed to someone who can make a specific RAD environment do backflips but I think I might be in the minority on that one. Also schooled in Engineering (though combined with CS so I saw both sides :) ), I might be a bit biased :) .
T-Mac-Oz
-
The issue is that over the last 30 years, the world has transitioned into a business driven slop fest. Businesses feel that they can create a crappy product and fix it if it's successful. The only problem is that once it's successful, there isn't time to redevelop the product because there's functional improvements to be made. Through legal decisions, the business people that drive the corporations have set the tone for our work environments, which is largely based on the design McDonald's invented of creating systems to control people who act like hosts for the activities that make the few at the top all the money. Haven't we all bought into that we should make all the jobs replacable so that we can easily move around and others can blend in efficiently without having to be inventive? What's great is that they got us to build the system to make us obsolete or braindead, it was too complicated for them to figure out so they figured out how to sell us to do it. In any case, because the underlying quality of a product in undervalued vs the ability to create a shiny object to be consumed by the public or other unweary purchasers, IT departments are not properly supported by the company to create quality platforms unless the workers are willing to sacrifice the majority of their time to the project. And then, after all is said and done, there isn't equal compensation with the people who are driving the business side of things, so after time, the profession has suffered. The veterans that preach good practices of taking 2 days to write this correctly are overturned with 'take the 2 hour hack solution'. So why should anyone be expected learn to program beyond the extent that the corporations that run our society make it worth doing? -Foster "Welcome to McDonald's, can I take your order?" FosterAF@IntotheBlur.org
modified on Tuesday, May 13, 2008 8:05 AM
-
I'm very optimistic - you never could TEACH programming, like you can never TEACH absolute pitch - only try to learn how to exploit it in the best manner. If it exists... Regards, Gennady
Speaking as someone doing a computer science degree, I would have to disagree. I am only a second year, but many of my papers are math papers, with not so much emphasis on writing programs using any particular language, more on algorithm construction, abstraction, good design practices, and now optimisation. I also do an architecture papers where we are currently learning assembler, using the 8051 processor. Next year I hope to get into the good stuff, like artifical intelligence, networking, etc. Hope I have convinced you not all is lost :-D PS: We did binary trees in first year, as well as having an assignment this year where we had to implement binary search trees with a few extras - there was a bit about balancing them in there too :)
-
Hello Folks, I am from the outsourcing capital of the world. Alright, don't shoot, I am one of guys who can program. I am in product development, mostly telephony related. I wrote my first program in 'C' back in 1989, and switched to 8086 assembly for a year and finally into C++ in 1991, I am still with it. I first heard about STL from BS himself when he presented it in 1994 at C++ 11th birthday event at AT&T Holmdel (NJ). So I have been around. ;-) I guess you are all talking about situation in US, but India is in no better shape. Despite having so many programming vacancies, hardly anybody knows programming anymore. Therefore, blaming the situation on lack of jobs (out-sourcing) can't be right. IMHO, programming can be taught only by programmers, and in India no programmer would take up a teaching job. The difference in pay for an University teacher and a corporate programmer is too much. Even a programmer with a passion for teaching (like me) can't imagine switching to a teaching career. I first considered teaching pro bono at the local university, then I gave up. The C++ syllabus they had is cast in stone, new and delete is considered advance programing and templates are not even menttioned. Besides, if I ignore the lousy syllabus and teach those kids some real C++, they will flunk the exam since the programs will float way above the examiners understanding of C++. The only way to learn real programming is via books and Internet, that is if the person is interested enough to do it. But the onslaught of easy languages like C#/Java/VB don't make it easy.
Well I cant call me self a real programmer, more of a script hijacker, but I have been writing full time in VB now for about 6 years, and the lack of courses in this country for real programming is shocking (South Africa), I have been hooked since I was sixteen and got my first IBM DX1 66Mhz Desktop with dos 6.2 on it, lol, those were the days, I cant count 3 programmers I have actually met in this country face to face and as for real programmers none, not even one... ever, everything I know I have had to beg borow or steal to get the information and tools I need, the joke is I still dont fully understand the way the compilers i use work or how to build a friken signed assembly, if someone was to start a school that only taught real programming and programming related things, like binary and why we need a math processor on a main bourd I would quit my job and go back to school for another 5 years. I have never been with out a job for longer then 4 weeks in this business and if the bloody schools caught on and actualy taught some real world uses I would know a lot more programmers and then maybe would be able to learn something from a super smart programmer out there. if any body, can help me with explaining how to build a signed assembly reply to this thread lol