Episode 4: Things Nobody Will Ever Tell You (At Least Not Nicely)

I have found that students of computer science (CS) and information technology (IT) in most Indian colleges have several misconceptions about programming and computers in general. This seems to be a common problem in other parts of the world, too. I’ve made a list of some of the most common problem areas, and I’m posting it here for the benefit of annoyed geeks all over the world who have to explain these things over and over to that annoying but hawt girl who never goes out with them. No offense meant to any annoying but hawt girls who might be reading this right now. Would you like to go out with me? I’m free this Friday at 7:00 PM.

Note that most of the problem areas I have listed deal with C++ and the Turbo C++ IDE. This is because most Indian colleges teach C and C++ in the first two years of the CS/IT course.

I will keep adding new points to this list as I encounter them. Leave your suggestions in the comments section of this post.

April 3, 2009 • Posted in: Education, Programming

18 Responses to “Episode 4: Things Nobody Will Ever Tell You (At Least Not Nicely)”

  1. scragar - April 3rd, 2009

    I think you should also mention style.

    Nothing is more annoying that someone who produces really ugly code, if you can’t read it you can’t improve it, you can’t tell if it’s broken, and you certainly can’t expect anyone else to do it.

    Oh, and trial and error workers, those really annoy me, not as much though, you know the kind, they produce some code that doesn’t work, throw in a -1 or +3 here, there and everywhere, and in the end it works, but no-one can tell how or why it does, it just looks like a bunch of random numbers thrown around.

  2. Abhishek Nandakumar - April 3rd, 2009

    @scragar Coding without trial and error? That’s stupid. You expect people to write code on paper and wait till they think they’ve got it right?

    >it just looks like a bunch of random numbers thrown around
    Is that because of lack of documentation? Code doesn’t automatically become useless if you don’t understand it.

  3. Kitallis - April 3rd, 2009

    @Abishek
    scragar is pretty right. I think you should read the whole thing.

  4. Loxias - April 3rd, 2009

    @scragar, Abishek
    Coding is kind of like composing a song, you can sit down with staff paper and pen and think about how to construct your song using principals of music, or you can break out your instrument and play until it sounds the way you want it to.
    Of course the latter method doesn’t really work for larger more complex programs. Code may not be useless if you don’t understand it, but it is when no one understands it.

  5. Ankur Banerjee - April 4th, 2009

    I think it’s worth mentioning that any ‘real’ coding done these days is no longer in Turbo C++’s silly implementation. Wake up, colleges.

  6. Kitallis - April 4th, 2009

    @Uncool
    BTW, It’s too redundant now. You don’t need talk about this time and again. It Seems like you’re very interested in people like those :P

  7. Ankur Sethi - April 4th, 2009

    @kitallis I’m interested in these people because they make up my entire class at college. Unlike you, I actually go and talk to people, and it annoys me to no end when they say stupid things. This concept might be too difficult for you to understand, but I actually have friends in college.

    @xAbhishek What scragar means to say is that making random changes to code and praying that it works is not a good programming style. I know several people who go, “Ah, so there’s an off-by-one error here. Let me add 3 here and subtract 7 here to see what happens.”. Don’t change parts of code you don’t understand. What you meant to say, if I understand this correctly, is that programming is a process of experimentation and learning by failing. You’re right, too, but scragar said that these experiments must have a logical foundation.

    @ankurb Will do that right away. I wonder why I forgot to mention this …

  8. Abhishek Nandakumar - April 4th, 2009

    @Ankur Sethi: Spot on.

    @Ankur Banerjee: I think a lot of colleges are realizing this. Which is why Cygwin has become really popular, all of a sudden. In fact, the DU CompSc. dept wants to eradicate Windows. It is happening or has already happened in quite a few colleges, including Acharya Narendra Dev, Gargi and Hansraj if I’ve heard correctly.

  9. Ankur Sethi - April 4th, 2009

    @xAbhishek: Not happening in IPU :(

  10. Apoorv Khatreja - April 8th, 2009

    @xAbhishek

    Neither is it happening in DCE. Damn, IT is hellish over here.

  11. Manish Sinha - April 8th, 2009

    @xAbhishek
    Not happening in MIT,Manipalt too. Students are still stuck up in the stone age.

  12. Ankur Sethi - April 8th, 2009

    I’m thinking of approaching the guys at IPU. Problem is, most of them don’t use the Internet, and I suspect they even have email addresses. I’ll either have to go to Kashmere Gate and meet them in person – quite a challenge.

  13. Strider - April 14th, 2009

    Another of your problem-with-Indian-CS-teaching post. Its true but, lets move on. The only people reading this are those who already know about this and can’t do anything about it.

  14. Moving Ahead - April 26th, 2009

    Moving Ahead from Turbo C…

    2009-04-26 03:38…

  15. Laxminarayan Kamath - May 11th, 2009

    Another common mistake is calling GNU/Linux as Linux. Linux is the Kernel. GNU is the operating system. Redhat GNU/Linux, Fedora GNU/Linux, Ubuntu GNU/Linux, Debain GNU/Linux, are all “Distribitions” that package together the GNU operating system, the Linux kernel, with other softwares and customizations to make installation and maintainance of GNU and Linux easy.

    In fact, GNU can also be used with other Kernels like the HURD. Actually, the original kernel that was meant to be used with GNU was Hurd(which in turn uses the microkernel Mach). But development was slow, and Linus Torvalds Implemented his kernel Linux which was stable, and so got adopted by the community at large as the Kernel of choice. The Debian team has actually worked on a Debian GNU/HURD distribution.

  16. Laxminarayan Kamath - May 11th, 2009

    And though I don’t recommend using IDEs, if you badly need one for GNU/Linux, there is Anjuta:

    http://projects.gnome.org/anjuta/downloads.shtml

  17. Tagz | "Episode 4: Things Nobody Will Ever Tell You (At Least Not Nicely) at A Series of Uncool Events" | Comments - May 16th, 2009

    [...] [upmod] [downmod] Episode 4: Things Nobody Will Ever Tell You (At Least Not Nicely) at A Series of Uncool Events (blog.uncool.in) 1 points posted 5 days, 10 hours ago by kamathln tags students computer [...]

  18. AnkurG - May 19th, 2009

    I am amazed to read about Ankit Fadia in your blog. Before that I thought I was only one who is used to say ill of him… great, terrific words used for him.
    PS: If hacking can be done in ethical way, then it will never be called hacking. And yeah correct difference b/w ‘Cracking’ and ‘Hacking’ is mentioned. Something I really want to teach most of guys.

Leave a Reply