Coffeehouse Thread

21 posts

Why No Computer Science"y" Books in C#?

Back to Forum: Coffeehouse
  • User profile image
    PerfectPhase

    ktr said:
    Sven Groot said:
    *snip*

    I tend to agree that since C# has introduced several new paradigms (functional, declarative, dynamic, etc...), it has become the best language for the majority of projects out there.

     

    However, with all these new capabilities comes complexity.  For a CS student with no experience with programming languages, C# is generally (IMHO) not a good first language.  The language is so powerful and broad now that it is hard to know where to start if you've never been exposed to programming.

     

    C# has had a flood of innovation (LINQ, lambdas, dynamic programming, extension methods, etc...).  Not to mention all of the additional features that C# 1.0 had over Java (delegates, properties, etc...).  The truth is that to you and me C# is beautiful but to a beginner it is simply daunting.

    I disagree with a lot of that, pretty much all the new features in c# are additive.  Just because LINQ is there doesn't mean you have to use it, same with dynamic and even generics.   Especially in a taught course, I would have thought that there would have been some structure to introduce features in a logical, progressive way.

     

    What I find more disturbing in general is the number of times comments like 'CS students with no experience with programming' keep turning up, they just baffle me.  Whatever you chose to study I would have thought that you would have at least some interest in the subject before choosing that course. 

  • User profile image
    Heavens​Revenge

    The answer is simple, C#'s primary strong point is developer productivity, not developer understanding.

     

    For both C/C++ and Java you do need some true CS knowledge to code elegantly designed structure and powerful tools, Java is OO, as in serious OO, and most devs don't know OO until you see an elite European's Java code, it is completely object oriented, pure objects doing stuff to other objects, without exception.

    C# can let you see your machine, with lots of verbose pain, unlike how a true machine language doesn't allow you to choose which level or spectrum of abstraction you see, you code the machine, not the runtime.

     

    C# and VB are both bad CS learning languages, they are for workforce productivity only, and for ones who already understand execution flow.

  • User profile image
    Sven Groot

    PerfectPhase said:
    ktr said:
    *snip*

    I disagree with a lot of that, pretty much all the new features in c# are additive.  Just because LINQ is there doesn't mean you have to use it, same with dynamic and even generics.   Especially in a taught course, I would have thought that there would have been some structure to introduce features in a logical, progressive way.

     

    What I find more disturbing in general is the number of times comments like 'CS students with no experience with programming' keep turning up, they just baffle me.  Whatever you chose to study I would have thought that you would have at least some interest in the subject before choosing that course. 

    What I find more disturbing in general is the number of times comments like 'CS students with no experience with programming' keep turning up, they just baffle me.  Whatever you chose to study I would have thought that you would have at least some interest in the subject before choosing that course. 

    I'd say that roughly fifty percent of the first year students when I started doing CS had no previous exposure to programming whatsoever. Not even a single line of BASIC. They had to start from scratch with C++ which isn't much fun.

     

    Not to mention that the same basic programming course that teaches the CS students C++ was also mandatory for physics, chemistry, astronomy and LST (Life, Science & Technology) students. Guess how much interest they have in learning something like C++.

     

    Quite a lot of the people who picked CS in my year were of the "I didn't know what to study but I kinda like working with computers so let's do this" kind. Of course, Leiden is a classical University and its CS curriculum leans very heavily towards the science side. As a result, it has very little to do with "working with computers" and all of these people will invariably change majors after the first semester.

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.