On Tue, 25 Jan 2005, Micha Feigin wrote: > When I started at least it was taught as the second language after scheme. > From > doing later projects with people I can tell you it caused a lot of > misunderstandings and bad coding habits, especially the pointer stuff. > Learning c > first also makes people use c++ as a functional language instead of as an OO > language.
that's because the teachers are doing a lousy job (whether they are too clueless, or don't care, or think that their job is writing the test and letting the students learn from books - i don't know). > A first language should be an OO one with clean syntax and no pointers. It > doesn't need to be a powerful, but it has to be clear and simple so that > people > understand the concepts before they start using the heavy and obscure tools > that > allow them to break the concepts. Some of the problem is that lecturers tend > to > teach the language more then the concept (there area few good ones, but then > the course is considered difficult and people try to avoid it ;-) i'll repeat again - picking on the language is less important then picking on the teachers. even if you choose "the right language" (for whatever "right" value you use) you'll solve nothing, since the teachers are not teaching it properly. > I'm referring to c here. As a first language its taught with great emphasis on > functional programing (as opposed to OO). Although it is, good functional > programing should take in mind OO ideas which make the code much more > maintainable. you're mixing teaching and practicing. when you write code in C, indeed, use what you know from OO. but don't teach everything at once - or else people won't know when to use what, and will have a very shallow control of too many concepts. i'd rather they have very good control or fewer concepts. > I see a lot of code written by people who started out with c and there is a > tendency to use too many global variables, not defining functions as static > when > they are used locally and shouldn't be globally visible, etc. Using callbacks > is a > very neglected subject, and yes, pointers can make things very confusing at > first, although they can also be a very powerful tool if you use them > correctly. it's the teachers. and the teachers again. ofcourse, there are some people who don't have the qualities needed to learn - but i think they are only responsible for part of the 'failures'. the rest are the teachers - fix the teachers. use teachers that _want_ to teach, that _know how to_ teach, and that have a talent for teaching. > C++ is a bad language for beginners also since among other things its not > strict > enough on OO (as it stays compliant with c) and really need to know what it > does > behind the scenes if you don't want to have a very inefficient code in the end > (for example STL is not the best choice for programs that are supposed to be > real time and highly optimized). Besides, STL syntax can make things VERY > complicated at first. STL is "good enough" for many things. students don't learn real time in uni (or more correct - hardly any of them do). you're again mixing teaching with practicing at work. -- guy "For world domination - press 1, or dial 0, and please hold, for the creator." -- nob o. dy ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]
