Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Would you choose C#...

Would you choose C#...

Scheduled Pinned Locked Moved The Lounge
csharpquestion
63 Posts 35 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

    ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

    “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

    J Offline
    J Offline
    jochance
    wrote on last edited by
    #33

    My second thought was that I might be very biased (and so less right) since my first thought was "any other choice would be a mistake".

    1 Reply Last reply
    0
    • OriginalGriffO OriginalGriff

      I'd say yes - it makes pretty sure the code works before it lets it run (unlike Python), it starts simple, but builds to some incredible power (unlike PHP), and it's a real language (unlike VB). The error messages and the IDE itself are second to none, and the integrated debugging support is worth it's weight in gold for a beginner.

      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

      S Offline
      S Offline
      Steve Naidamast
      wrote on last edited by
      #34

      Uh... VB.NET is very much a "real" language. Though I am completely fluent on C#, I prefer working on VB.NET, which can do anything the C# language can do without all the extra complexity that C# has been introducing. Both C# and VB.NET, along with every other .NET language, all compile to the CLR and generate the same executable code. I don't know why people keep on saying that VB.NET is not a "real" language except for the fact that they do not like to [program in it. That is fine. But it is best to remember that there is no such thing as an "unreal" language...

      Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

      1 Reply Last reply
      0
      • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

        I hope they will learn how to use that debugger - I've seen courses where there was not a word about it...

        “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

        M Offline
        M Offline
        Matt Bond
        wrote on last edited by
        #35

        I got an entire degree in Computer Science and there wasn't a word about the debugger...

        Bond Keep all things as simple as possible, but no simpler. -said someone, somewhere

        P Kornfeld Eliyahu PeterK 2 Replies Last reply
        0
        • D Daniel Pfeffer

          If a so-called teacher doesn't know their subject, they deserve contempt. No one, teachers included, deserves respect merely by virtue of their job title.

          Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

          M Offline
          M Offline
          MSBassSinger
          wrote on last edited by
          #36

          In the US, unlike in decades past when public education was actually education, teachers get education degrees. They are taught they can teach any subject because they are "educators". In a lot of STEM-type classes (like programming), it is quite likely one or more students know the subject matter better than the teacher. Even back in the late 80s/early 90s when my oldest son was taking computer-oriented classes in high school, he knew the subject matter better than the teacher who was an "educator" but had no background in computer science. In the days when dinosaurs walked the earth, at least my 9th grade science teacher had a BS in General Science and actually knew her subject. same for my math teachers (BS in Math).

          1 Reply Last reply
          0
          • B BryanFazekas

            Eddy Vluggen wrote:

            For a kid, I'd recommend procedural languages; I did AMOS growing up, a kind of basic. It allowed to write instructions and play with parameters, and soon I started on my own Eliza-clone (which is totally doable in Basic and a fun exercise).

            This! Start the class with Notepad, command line compilation, and console applications. No IDE, no GUI, no classes. Just learning to think logically and solve problems. C# will work for this, but I'd probably use something different. My sons took programming-type classes in high school and college -- they spent more time making pretty output than they did making correct output. This was typical for these classes. Folks often think of OO as the Holy Grail. It's not -- I've dealt with far more badly designed class structures than I have badly designed procedural programs. When the only available tool is a hammer, everything look like a nail.

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #37

            When teaching, I'd like to first introduce programming as a list of instructions. Architecture and concepts can wait until they enjoy it :thumbsup:

            BryanFazekas wrote:

            Folks often think of OO as the Holy Grail. It's not

            I'm one of those; but starting there is not for most people. First you learn about methods and variables. Once you run into the limits of those, OO starts making sense. Before that, it seems a bit.. nonsense that you just do because everyone else does it.

            Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

            1 Reply Last reply
            0
            • OriginalGriffO OriginalGriff

              I'd say yes - it makes pretty sure the code works before it lets it run (unlike Python), it starts simple, but builds to some incredible power (unlike PHP), and it's a real language (unlike VB). The error messages and the IDE itself are second to none, and the integrated debugging support is worth it's weight in gold for a beginner.

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

              G Offline
              G Offline
              gvidali
              wrote on last edited by
              #38

              I am curious as to why you do not consider VB a "real language". That is like saying that - for example - German or Italian or Swahili or Punjabi are not real languages. I am actually and currently fluent in five different spoken languages -- and yet it would never occur to me that a language I do not speak or use is not a "real language". Point is: let's all stop making these silly arguments about a programming language or the other. Statements of that kind they only serve to reveal an elitist approach or a deep misunderstanding of the language's purpose. Plenty of excellent and successful developers grew up with Basic, Visual Basic, VB.NET... only to transition to other languages because of many different reasons... just NOT because those languages are not "real languages". I wonder what would you even say about ASM... :) Just my two cents.

              1 Reply Last reply
              0
              • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                J Offline
                J Offline
                Juan Pablo Reyes Altamirano
                wrote on last edited by
                #39

                I guess it's ok. I got taught OOP in Java before I returned to C++ (which was my first language oddly, C was my second). But once you start judging all languages from the lens of C (and even ARM assembler), it's hard to like any new ones. With exception of LISP :laugh:

                1 Reply Last reply
                0
                • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                  ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                  “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                  T Offline
                  T Offline
                  Thornik
                  wrote on last edited by
                  #40

                  Don't be confused, bro! Studying C# is VERY good idea! You not only study programming itself, but will have PRACTICAL and POWERFUL language in skills. C# is "hard" only if you take all features at once. But if you simply create 10-lines helpers inside Main(), it's EASY! :) Everything depends from teacher - if he is professional, studying can be cool. I support C#!

                  1 Reply Last reply
                  0
                  • OriginalGriffO OriginalGriff

                    Absolutely: respect is something you earn, not deserve. Being treated respectfully until you prove yourself unworthy is a different thing altogether. Generally speaking, those who demand respect are the least worthy of it in my experience.

                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                    S Offline
                    S Offline
                    Shmoken99
                    wrote on last edited by
                    #41

                    I grade on effort these days. I'd rather work with someone that is ignorant and trying hard than someone that knows everything and doesn't care. As for the C# question - see Griff's first response, that's what I wish I had said.

                    1 Reply Last reply
                    0
                    • L Lost User

                      Seems like a reasonable choice to me, comparable or better compared to common alternatives (Java or C++). As long as it gets taught in "C-like C# first, fancy things after" kind of order, and doesn't immediately start to confuse with too much "magic".

                      T Offline
                      T Offline
                      TheBugman
                      wrote on last edited by
                      #42

                      I used it to teach programming to an Art Major (female), and to both my boys that have mathematical minds. All 3 are developers now and do very well in several other languages. The result was that they learned well what they should and should not do in programming because it really takes away (C# does) the good-programmer responsibility of not doing stupid stuff like accessing linked lists with modify before addressing the possibility of collisions. Having said that, I think the basis and the simple things need to be learned first, not matter what the language. Beginning with concepts that would allow the student translate their programming logic to any other language is paramount to their formation. My two bits.

                      Tony G.

                      1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        I'd say yes - it makes pretty sure the code works before it lets it run (unlike Python), it starts simple, but builds to some incredible power (unlike PHP), and it's a real language (unlike VB). The error messages and the IDE itself are second to none, and the integrated debugging support is worth it's weight in gold for a beginner.

                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                        A Offline
                        A Offline
                        agolddog
                        wrote on last edited by
                        #43

                        Second (or third, or whatever--grunching)

                        1 Reply Last reply
                        0
                        • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                          ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                          “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                          N Offline
                          N Offline
                          Norm Powroz
                          wrote on last edited by
                          #44

                          The reality is that the choice of language really doesn't matter, although I would agree that restricting to a simpler subset during initial teaching helps. The goal is to understand the basics of programming, not the complexities of the task or the tool. After all, getting someone to understand "I = I + 1" can often be the divider that separates the programmers from the rest of the world. Before we get into the guts of the .NET library, it's necessary to first understand decisions, loops, and so on. My first language was FORTRAN IV, followed by other high- and low-level languages, now numbering over 30. I have used COBOL as a first language when creating new programmers, with good success. I knew someone who actually used assembler as the first programming language when teaching newbies, on the grounds that that way people would learn both how to program and how computers worked all at the same time.

                          1 Reply Last reply
                          0
                          • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                            ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                            “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                            P Offline
                            P Offline
                            Paul Sanders the other one
                            wrote on last edited by
                            #45

                            I would say it's a good choice, yes. It has a well-balanced set of language features but frees you from having to deal with managing memory and makes it hard[er] to shoot yourself in the foot. BUT, Interop is a whole other thing...

                            Paul Sanders. If I had more time, I would have written a shorter letter - Blaise Pascal. Some of my best work is in the undo buffer.

                            1 Reply Last reply
                            0
                            • J jakopo87

                              It's possible to set the C# language version on the project, version 7.0 should provide a good baseline for students.

                              P Offline
                              P Offline
                              PIEBALDconsult
                              wrote on last edited by
                              #46

                              I use LangVersion 3, I'd still with that.

                              1 Reply Last reply
                              0
                              • M Matt Bond

                                I got an entire degree in Computer Science and there wasn't a word about the debugger...

                                Bond Keep all things as simple as possible, but no simpler. -said someone, somewhere

                                P Offline
                                P Offline
                                PIEBALDconsult
                                wrote on last edited by
                                #47

                                Most of my education and early career were on VAX/VMS where the debugger is near impossible to use. We did use Turbo Pascal a bit as well, which was nice. Not having a usable debugger leads to a better developer with better debugging skills. A debugger is a course of last resort.

                                1 Reply Last reply
                                0
                                • D Daniel Pfeffer

                                  Kornfeld Eliyahu Peter wrote:

                                  Do we live in the same country?

                                  Geographically - yes. :)

                                  Kornfeld Eliyahu Peter wrote:

                                  (I used to be like her - it wasn't easy on me, so I decided to try and lead her on different paths...)

                                  At age 58, I am like her. As you say, it's not easy, but all I need out of life is to support my family and enjoy my hobbies. World-conquering can wait. :) My biggest problem is managers who see my age and experience, and want to "promote" me from specification, design, and coding to a managerial or a "people-facing" position. :omg:

                                  Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                                  S Offline
                                  S Offline
                                  sasadler
                                  wrote on last edited by
                                  #48

                                  I'm retired now but I love the tech so much that I avoided managerial positions like the plague. I have been a tech lead but that's as close as I went.

                                  1 Reply Last reply
                                  0
                                  • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                                    ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                                    “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                                    P Offline
                                    P Offline
                                    PIEBALDconsult
                                    wrote on last edited by
                                    #49

                                    I wouldn't. In my opinion a beginner needs to start with a simple language and learn more complex languages as he gains experience. With the result that he then knows several languages and can compare and contrast their features and syntax and make decisions about what he likes and doesn't like. Like many, I first learned BASIC, then Pascal, then a little COBOL and ForTran and assembly, then C, dabbled in C++, and finally C# for the past twenty years. Any object-oriented language is going to be too complex, with too much boiler-plate code the beginner doesn't need to know about (yet). Even C is too complex, requiring the developer to know about including libraries and linking them. A modern version of BASIC (not VB) should still be a good option for a beginner to get a feel for how to think about giving a computer instructions. Python (which I'm not about to learn) is pretty easy and can implant good indenting and formatting habits early. My kid had a couple of classes in Java. Well not really. Really just how to modify an existing MineCraft object, build it, and use it. He learned nothing.

                                    Kornfeld Eliyahu PeterK 1 Reply Last reply
                                    0
                                    • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                                      ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                                      “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                                      Z Offline
                                      Z Offline
                                      zezba9000
                                      wrote on last edited by
                                      #50

                                      Yes C# would be the best lang to teach IMO. C# supports tons of things you can branch to later. Unsafe code, Unity3D, etc. Its reach goes a lot further in the areas that people learning might care about.

                                      1 Reply Last reply
                                      0
                                      • R Rage

                                        Scratch[^] remains my choice for so many reasons, mainly because learning about sw engineering is not about learning a programming language, but learning about programming theory. Then C# is a good high level language to start with. As would by Python. I started with assembler, and this taught me far more than programming : a lot of computer architecture knowledge, which I still find useful today.

                                        Do not escape reality : improve reality !

                                        L Offline
                                        L Offline
                                        Lost User
                                        wrote on last edited by
                                        #51

                                        Hmmm, Never heard of Scratch. What exactly is it? Is it a visual learning tool?

                                        R 1 Reply Last reply
                                        0
                                        • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                                          ...as the language for teaching newcomers? That what they did at my daughter's school... She asked me if it is a good one - I told it is, to not to confuse her, but to be honest I'm not sure of it entirely...

                                          “Real stupidity beats artificial intelligence every time.” ― Terry Pratchett, Hogfather

                                          K Offline
                                          K Offline
                                          Kirk 10389821
                                          wrote on last edited by
                                          #52

                                          Learning Programming is NOT about the language. It's about the concepts, the building blocks, the approaches. Back in the day, we had paper terminals and "edlin on steroids called TECO" (ex$$) Nowadays, the software development ENVIRONMENT takes students HOURS to wrap their brains around. I remember teaching Java, using NetBEANS, and the CLASSPATH problem all the kids ran into, despite being in the handouts. LOL. It boils down to: - Inputs - Outputs - Variables/Data Structures - Computation (Conditionals, Loops, Algorithms) - What's Written for the "compiler" - What's Written for the NEXT Developer! I liked focusing on how do you decide between FOR/WHILE (and graded down if you got it backwards/wrong). It's a skill. You have to actually open up the software, and key something in, know how to run it. With some of the modern IDEs... That's not trivial your first time!

                                          Kornfeld Eliyahu PeterK 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups