No one teaches PROGRAMMING any more
-
That is a universal phenomena and is one of the reasons I'm working on getting my PhD is so I can come back and teach development to university students. I'm just appalled at their complete lack of knowledge on the subject and what is even more appalling is the attitudes some of them have. I'll never forget a fresh grad that wanted to work as a consultant and bill by the hour.
"Every time Lotus Notes starts up, somewhere a puppy, a kitten, a lamb, and a baby seal are killed. Lotus Notes is a conspiracy by the forces of Satan to drive us over the brink into madness. The CRC-32 for each file in the installation includes the numbers 666." Gary Wheeler "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon
-
- Right. I had to get up in the morning at ten o'clock at night, half an hour before I went to bed, eat a lump of cold poison, work twenty-nine hours a day down mill, and pay mill owner for permission to come to work, and when we got home, our Dad would kill us, and dance about on our graves singing "Hallelujah." - But you try and tell the young people today that... and they won't believe ya'. :laugh:
-- Time you enjoy wasting is not wasted time - Bertrand Russel
-
Well, no-one taught programming in the first place really. There are probably just as many programmers (and places that teach programming) as there were 'back in the day', but there are a lot more application developers. If someone can get a working ASP.Net web app out the door in two weeks, so what if they can't convert their own salary into hex without a scientific calculator?
Regards Nelviticus
-
I'm still studying in college, Software Development course and all they have thought us until now is Visual Basic 6. However we did have some C++ lectures at the beginning of course. Now I don't know whose fault is it?! If it's the college or the Edexcel(Educational awarding body) that hasn't included that in course. On the other hand people are also finding it hard to write simple database application in VB. Now I think I will go for System/Electronics Engineering, which is far more advance then just programming applications.
- Stop thinking in terms of limitations and start thinking in terms of possibilities -
-
Ray Cassick wrote:
When I started out you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper.
I got taught that, as well as using boolean operators to control a little led display and make it count from 0-9. See the information is still being passed on in some places, all hope is not lost!
My current favourite word is: Bacon!
-SK Genius
I did too way back when during my Bachelors days. But the point is that this terrifying trend is becoming more and more universal. OT: good job on the pair of articles. I've bookmarked them for some proper reading tonight or tomorrow :) Ace job mate
"Every time Lotus Notes starts up, somewhere a puppy, a kitten, a lamb, and a baby seal are killed. Lotus Notes is a conspiracy by the forces of Satan to drive us over the brink into madness. The CRC-32 for each file in the installation includes the numbers 666." Gary Wheeler "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon
-
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.
Being from India as well and undergoing my college course (1st year), I completely understand and agree with cpp.samurai. I think you are overestimating C++ in India. Forget "new" and "delete", my teacher barely understands what pointers are which naturally spills over to the students as well. In my opinion, I find programmers in US, UK, etc are vastly superior. Obviously, I am judging by the people *I* meet which happen to be teenagers. I just don't find that kind of spirit here. Out of the 60 students in my class for my course ("Computer Science and Engineering"), the rest 59 can barely do a "Hello World". The problem lies in the root. Ask anyone in my class, they chose Computer Science simply because thats where the demand is not because they actually like the subject. I doubt outsourcing has any effect on programming worldwide. Its more of customer support, etc thats being outsourced, monotonous work. I don't think you can apply the same sort of teaching pattern for other subjects to programming. Ironic actually, you spent more time writing code in your book than a computer. I do agree, a certain amount of theory is required for programming as well but the usual grinding and mugging up can never be applied to coding. Sadly, it happens. Most of the students in my class can write basic programs but when it comes to pointers and stuff, they actually byheart the code and the examinations don't ask any questions beyond your textbook. I just don't get it, how can anyone just memorize a program. "There is no teaching, only learning." Programming is the best example for the quote :)
-
I know what you mean. When I studied we were writing complete programs using paper. Only after 4 months we got to touch a pc for the first time. Binary systems etc where covered in depth before even getting to the development language. By the time we actually got to turn on the pc's, we had loads of knowledge on the pro's and con's of certain data types, searching algorythms etc. I think the theory is still there though, but when I started over 12 years ago there weren't so many tools to assist the programmer. I find that today the focus seems to be more on using the tool than drilling down on the programming theory. Not entirely sure though, haven't done any "official" studies recently ;P
-
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!
I'm one of those people that has a development job (vb.net) and has not been taught programming. I got my job from working as a finance/payroll admin where I built a system to manage my companies Flex benefits using VBA and spreadsheets. I tought myself the VBA. I was moved into the development team (5 peeps) and sent on a course for people upgrading from asp to asp.net (!?!?!??!?!?). What's asp I asked. I've been doing this for 2 years now. I rely heavily on intellisense but no dragging and dropping. I tend to learn from asking colleagues, friends, reading books and google. I am well aware that there are some fundamental pieces of the puzzle that I am missing but I can build apps that achieve what they are supposed to do. If I had to go through the interview process for my job now I do not believe I would get it. The purpose of my post is two-fold 1. Does it matter that I am missing some coding fundamentals since I can build working applications? (don't get me wrong, I'm not kidding myself about my abilities) 2. Where and how do I learn these fundamentals? Should I turn off intellisense as a start? Do you all use intellisense?
Westie
-
Hi, I'm a regular user of CodeProject's codebase and saw this interesting post. I'm a master's student finishing up this term in robotics. The CS (we call it course 6--my school loves numbers for some reason) department at my institution is pretty rough and produces some pretty good programmers, but we don't take classes in programming. A point was made that managed languages like C#/Java/Python/etc. make it easier for people to just get by. IMHO, I think spending higher education time learning languages is a waste of money. The concepts of application development should be taught, and it should be left up to the student to experiment with different languages to find the best fit for their application. I guess what I'm trying to say is that no class has ever taught me programming, coming up with implementation for B-trees (without ever having seen one) and the like I think can only come from hardened experience in coding up a wide variety of apps over several years. This leads me to believe that the misconception here is that these "programmers" that keep applying for these jobs might not necessarily need to take classes in programming, maybe they just lack the experience necessary to acquire these programming skills. I constantly find myself referring to my intuition about programming which usually comes from a combination of intimate knowledge of application development concepts with experience with a variety of different programming languages. So I guess I completely agree with the point made that you just need to learn from reference books and the internet. In short, I'd probably shoot myself if I took a class on learning how to count in octal or learning the intimate details of Python or any other language. Seems like a waste of time unless its needed for the application. What most managers should be looking for is the ability for the new-hire to acquire knowledge quickly given the right amount of information. The industry is growing too fast for someone to know everything that you might want out of them.
-
The main problem is the word programmer - have always viewed the word 'programmer' as a 'task', something that is done by an engineer to achieve a goal, rather than a discipline in its own right. Hence if you recruit people with good engineering skills and a degree in a suitable discipline (for current company its electronics/physics/maths/software engineering), then they can be taught to 'program' with some suitable orientation course in C++. Should mention that self-taught has its place, what doesn’t is poor engineering skills!
-
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
RTFM. That's how we learnt.
-- What's a signature?
-
Hello all
cpp.samurai wrote:
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.
Hell yeah! I'm 18, learned my way into programming mostly on myself. Started at 12-13 with Pascal. By accident I found about C++ (heh...) because that was the language required to use Ogre3D (that was about 3 years ago), and after I got the hang of it, I loved it! I now know/write C, C++, and if you give me a pen and paper and lots of time, I can understand an ASM program too :) About 25% of my code is C++ (mostly when dealing with wxWidgets or other GUIs), the rest is typically C, and a bit of Python for those quick-and-dirty scripts. Of course it (C++) had to be by accident/internet, who else would mention it inside the school... at least pascal did its job well for those early algorithm crunching days. Anyway, I couldn't get a job in the field, so I went out to get this thing everybody was asking for: a 'diploma'. These guys at my Uni, they're practically brain dead. VB and Javascript the first year, and only the Almighty Java for the last 3. C++ is not even MENTIONED. The thing they talked about in week 1? Object-oriented programming, and how it will its follower's souls, and destroy the non-believers. They were talking OOP to people who think programming is 'a bit like HTML'. But it wasn't even 'oh this and that paradigm', it was just hailing OOP. I should have know, as "Diploma in Software Development" does not contain the word "programming"... :doh: Another even more interesting thing is that most of my colleagues not only seem to not be gifted with the, err, necessary amount of neurons, but they don't seem genuinely interested either! So to me, the story seems to have TWO sides... Personally, I see this line in the programming world, and on one side, there's an ever-growing throng of "developers" how draw a button on a form, and create "rich web applications" from templates, and on the other, the ever-same-amount of real programmers. Perhaps this is not actually a bad thing, I don't know. Funny thing is, I do C and C++ today, but I still have 3 years to go until I will be an officially certified button-drawer. Some career choice, eh? :) Now where's the closest McDonald's? Cheers. PS: they're actually not completely lost. My math teacher is an old lady who did COBOL and knows, or knew, how to pro
-
I'm one of those people that has a development job (vb.net) and has not been taught programming. I got my job from working as a finance/payroll admin where I built a system to manage my companies Flex benefits using VBA and spreadsheets. I tought myself the VBA. I was moved into the development team (5 peeps) and sent on a course for people upgrading from asp to asp.net (!?!?!??!?!?). What's asp I asked. I've been doing this for 2 years now. I rely heavily on intellisense but no dragging and dropping. I tend to learn from asking colleagues, friends, reading books and google. I am well aware that there are some fundamental pieces of the puzzle that I am missing but I can build apps that achieve what they are supposed to do. If I had to go through the interview process for my job now I do not believe I would get it. The purpose of my post is two-fold 1. Does it matter that I am missing some coding fundamentals since I can build working applications? (don't get me wrong, I'm not kidding myself about my abilities) 2. Where and how do I learn these fundamentals? Should I turn off intellisense as a start? Do you all use intellisense?
Westie
1. Yes. You are missing a lot of information that would enable you to code better, be more productive, deliver a better and less buggy product. 2. There is no gain in turning off Intellisense. Who has to know a million instructions from the top of the head? Working with Java or .Net is not the same as working with an 80 instructions language from 20 years ago. What you need is basic understanding of how a computer works and what goes on behind the "magic" of high level languages. You need to understand binary math in order to understand what is behind a conditional instruction in your current language. You need to understand what a pointer is, so you know what is going on when you pass a parameter by reference or by value or what happens when you do a "a=b".
-
This is not a direct response to the original post, but rather to all of the posts below and in general to what i have been seeing on the net. And here it goes: this is a big FU to all the people out there who are so pompous to think that CS is a real science. 99% of CS people including myself are nothing but mere construction workers. We are ants. Do not kid yourself. The real scientists in Computer Science are the guys designing hardware, .NET, Java and protocols. The rest (99%) are just users of it. Ants. Step down from the cloud. Wow! You wrote a for loop today!! And a switch statement too!??! Ohhh...and you even pointed to a pointer! A double pointer!!!! Damn dude, you must be a scientist or something...hahaha! You extended a class?!! You wrote your own abstract class? Woooow! I though only Einstein could do that. We have a bunch of tools at out disposal and we (creatively) use them to speed up and organize someone's process. And we get paid for it. If you think that real programming is done in C++ good for you! Here's a tip for you then: even "realer" programming is done in assembler! Yay! Pointers are a joke man! Wait until you move all the bits to the left until one pops off. :D Goot times! Ok. But what about the endless number of applications NEEDED in todays world to speed stuff up, to make our societies more efficient? Should we do them in C++ or in C#? Do i need to work with pointers to log a person into a website? I don't think so. And the whole world doesn't think so. And thank you know who for that! Computer science is evolving, and so should you. Memory barriers are less and less. We need a shitload of programmers...so much room for computerizing this world and so little people to do it. I guess only the ones that know b-trees and pointers are any good - not! Get real. Why should you get paid more than the guy in china? What are you? Born in a higher cast? Are you from the Eyes or the Feet? Ohh...you are english, so you colonised the whole world and therefore your code is better than that Indias dude. After all you brought civilization to their land. His code sucks compared to yours. For mem the best programmers are the old school self thought ones. The guys that broke into pentagon and such. Computer world is wild and we are trying to tame it. Everyone has a go at it if he has a machine and can get online. I went to college, got a degree but who's to say that a kid in India didn't put in more time and learned more about designing a system in .NET than me? After all, today, he could have read th
-
...and have you also noticed, it's hard to find courses to learn Morse Code? :-D
Stevishere www.Em8s.net
-
El Corazon wrote:
Outsourcing is not a function of lack of jobs, but rather a function of wanting to pay less for a given job.... the result is less quality for less money. It hurts the real programmers in India, and in the USA and everywhere.
Again, in India that statement doesn't hold good. Here people are thoroughly overpaid for the work they do. Too much demand for programmers due to masive outsourcing has led to a situation where even a third rate programmer can get a highly paid job. Worse part is, they think they deserve it. One has to interview 100s of candidates to find a real programmer, they are an endangered species. We normally hire smart fresh graduates and teach them programming, there is no other choice. Pardon my rant, since I am part of senior management despite being a programmer, I see all these very closely during the recruitment process. Running a small product company in such an environment is no joke.
-
-
This is not a direct response to the original post, but rather to all of the posts below and in general to what i have been seeing on the net. And here it goes: this is a big FU to all the people out there who are so pompous to think that CS is a real science. 99% of CS people including myself are nothing but mere construction workers. We are ants. Do not kid yourself. The real scientists in Computer Science are the guys designing hardware, .NET, Java and protocols. The rest (99%) are just users of it. Ants. Step down from the cloud. Wow! You wrote a for loop today!! And a switch statement too!??! Ohhh...and you even pointed to a pointer! A double pointer!!!! Damn dude, you must be a scientist or something...hahaha! You extended a class?!! You wrote your own abstract class? Woooow! I though only Einstein could do that. We have a bunch of tools at out disposal and we (creatively) use them to speed up and organize someone's process. And we get paid for it. If you think that real programming is done in C++ good for you! Here's a tip for you then: even "realer" programming is done in assembler! Yay! Pointers are a joke man! Wait until you move all the bits to the left until one pops off. :D Goot times! Ok. But what about the endless number of applications NEEDED in todays world to speed stuff up, to make our societies more efficient? Should we do them in C++ or in C#? Do i need to work with pointers to log a person into a website? I don't think so. And the whole world doesn't think so. And thank you know who for that! Computer science is evolving, and so should you. Memory barriers are less and less. We need a shitload of programmers...so much room for computerizing this world and so little people to do it. I guess only the ones that know b-trees and pointers are any good - not! Get real. Why should you get paid more than the guy in china? What are you? Born in a higher cast? Are you from the Eyes or the Feet? Ohh...you are english, so you colonised the whole world and therefore your code is better than that Indias dude. After all you brought civilization to their land. His code sucks compared to yours. For mem the best programmers are the old school self thought ones. The guys that broke into pentagon and such. Computer world is wild and we are trying to tame it. Everyone has a go at it if he has a machine and can get online. I went to college, got a degree but who's to say that a kid in India didn't put in more time and learned more about designing a system in .NET than me? After all, today, he could have read th
-
-
RAD is not the problem really. I was seeing a downfall of education at the same time. I think RAD tools enabled people at a great degree. Unfortunately managers saw what they could do and suddenly many people found themselves with the title of developer even if they did not think they were. The quick 'wants' of business were as much at fault I think.
I think that most of the people reading this thread will agree with your premise. However, some of the things that were pointed out have a lot to do with the "lack of teaching/teachers": - Students aren't really interested in "learning", they just want to do the minimum to get by, and get a paycheck. Unfortunately, they don't take the time to consider what it takes to do a great job doing this stuff, especially if they have to "compete" with someone who is doing this because they love it. I consider myself fortunate that I have found something that I really like to do that I can get paid (fairly well) to do. [Thanks Dad for explaining this "fact of life" to me.] - People who "really" know how to program, and how to teach "good" programnming, are in short supply, and will continue to be so until the pay for teaching allows talented programmers, who think that they "might" want to teach are willing to try it out. However, I have a friend who tried teaching at a local university, and was appalled by the "tell me what I need to know to pass the class" mentality of the vast majority of the class. Many were only taking the class because of the prospect of getting a "decent" job was better for those with a "computer science" background. :-( Bob