Sometime back, a post appeared on my university group regarding Introduction to Programming in C#. I replied to that post and I feel that the same can be said for Java as well. I wanted to share it here as well. REMEMBER this is not an anti-C# or anti-Java post.
This is what I wrote
"The more important question that comes to my mind is that why are these students being taught C# in their Introduction to Programming Courses.
C# is a complete development solution but it will never allow a student to learn the basics of programming. You never teach English using Shakespeare's plays in Nursery classes. You begin with A-B-C. When you tell someone in the first class that Hello World program would look like this
- What will you tell a student about Console . How will you explain the concept of Classes.
- How would make him understand that Writeline is a static method.
- What will you have to say about Namespaces and assemblies etc.
And this line is itself written in a class – in a Main Method that happens to be a static method itself … and it goes on. Believe me, its difficult to produce good programmers like this.
What will these students learn in OOP courses? How will they be able to appreciate the benefits of OOP over structured programming? How will they decide when to use OOP and when to go for structured programming.
What will they learn in Data Structure courses when they already have ArrayList and Stack classes? What will these students do in Operating Systems and System Programming courses. They will only make SIMULATIONS in OS courses. How would they be able to write operating systems and compilers. In short, when will they learn to do some serious programming?
I'm sure that many students would be keep themsleves busy in aligning the Buttons on left side of the form, connecting with databases, opening a file using File Open Dialog etc.
Students in starting semesters should also realize this that being able to Develop "COOL INTERFACES" in the starting semesters is not going to take them anywhere. They should also ask their Instructors to teach them the basics. Finally, if possible, students in first/second/third semesters should request the concerned authorities to teach C/C++ instead of C# or Java."