Geek talking

Pinoy geek talking about everything under the sun

Java is not the culprit!

Posted by rom on December 31, 2005

Mr. Joel Spolsky is dead wrong here. His generalization that because Java does not require students to think about pointers and recursion (heck, we do cover recursion! see JEDI courseware) make them mediocre programmers is a bit flawed. Using the same line of thinking, every student who does not get to optimize an if-then loop using registers ala Assembly language will be a mediocre programmer as well! πŸ˜€

Anyway, Java is just one of the languages used to solve problems. What mediocre programmers do not have is the problem solving skills of great programmers. Solving real world problems correctly and properly is the aim here. Besides, teaching Java is just one or two courses in computer science.

For example, a Data Structures course is a particular CS/IT course where pointers and recursion are extremely important. I suggest that Mr. Spolsky check out how we are doing it using Java! πŸ™‚

Advertisements

4 Responses to “Java is not the culprit!”

  1. Sampo said

    Well, call me nuts but I really think knowing assembly language helps people become good programmers. It’s good to know something about how the CPU works, what is easy and fast for it to do and what cannot be fast. Of course this kind of knowledge can be gathered elsewhere as well but learning assembler is not a bad choice either.

    And before flaming start I know better algorithms are the first thing to learn. Still it somewhat bothers me when I occasionally get to know how little some “professional” programmers know about the inner workings of the computer.

    That’s for the low level, if you want to learn about more abstract thinking and to work with a language which does not get in your way you should really learn Common Lisp.

    Disclaimer: I know people who are good programmers and do Java, not many who enjoy it though.

  2. rommel said

    I agree with you that learning assembly language helps – perhaps the same argument can be said of learning Java or C#, for that matter. However, the programming language should not be the one to blame for the mediocre performance of new CS/IT graduates. CS/IT students should know what tools to use to solve particular real world problems. Will you be using assembly language to develop a web-based enterprise information system?

    Developing one’s problem solving skills is the first. From there, you learn programming languages and then learn how to solve problems efficiently by using algorithms.

    Again, learning a functional language like Lisp is also helpful but then again, try solving a real world problem like deploying a mobile application using Lisp – no go! πŸ™‚

    Bottom line is – CS/IT students must learn these to enable them to select the best tools for the job. Preferring one tool over another just because it makes problem solving easier is not a crime. πŸ™‚

    PS. Thanks for reading the blog.

  3. Sampo said

    I don’t want to argue I pretty much agree with you just a few things to point out (somewhat nitpicky):
    – Common Lisp is not a pure functional language and it is very much possible to write real world application with it πŸ™‚
    – If java is the only environment available how about ABCL(http://armedbear.org/abcl.html), it’s Common Lisp implementation running on java VM πŸ˜‰

    I just started blogging myself and I enjoy reading well written blogs about something else than “I ate 3 bananas for the breakfast today”. Maybe one day when I write less rants there will be people reading my blog too.

  4. rommel said

    Wow! That was quick! πŸ™‚

    Coolness! I did not learn the details of Common Lisp – just did a few exercises way back when I was an undergrad student. πŸ™‚

    ABCL? This is something new to me. Thanks for pointing it out.

    As for your blog, when I link it to mine, I hope you don’t mind. πŸ˜›

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: