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.
  • 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 !

    M Offline
    M Offline
    MarkTJohnson
    wrote on last edited by
    #21

    Scratch is good, especially for elementary age learners, some adults too. My wife was (retired now) the gifted teacher at an elementary school and was given the edict to teach about robotics and programming. She was able to learn then teach Scratch to her kids. They took off on it, as you would expect with gifted kids.

    I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.

    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

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

      It used to be Pascal; then Java. Not a big leap to C#. The (NET) "framework" elevates it to a platform versus a simple language. They won't hit any walls.

      "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

      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

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

        It's not; it hinges on the concept of OO. Objects are hard conceptually, classing variables and methods into logical entities. 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). Problems arose when my I got pages worth of procedures, largely copy/pasted. At that time, I was ready for OO and inheritance. Teach her a procedural language and things that give quick reward. Once she knows about variables and procedures, give her a challenge that requires too much writing, and after a day or three, introduce OO and inheritance.

        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.

        B 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

          B Offline
          B Offline
          begonias
          wrote on last edited by
          #24

          Any language would be good to teach programming. It may be difficult to really stick with the basics with C#, not only because of the syntactic sugar, but also because of in-built functions. You can also argue against using Visual Studio or PyCharm or JetBrains as a beginner's IDE. They are a bit too helpful at times and there is nothing better than learning by oneself (even if it is very slow). Eclipse may be a good choice (or maybe VS Code), wouldn't go as far as text-editor only, like Vim.

          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

            M Offline
            M Offline
            Member 9167057
            wrote on last edited by
            #25

            It's certainly not bad. You can do low-overhead programs in C# just like you can do in Python (which, I presume, is what they're doing for teaching purposes), you can go fully-blown structure like you'd do in Java. Speaking of structure, C# is well-structured and allows learning concepts without delving too much into the implementation. Which is, as far as I'm concerned, a good way to learn such things. Too many co-workers of mine tend to get lost in the details, missing the big picture, as if they never learned to think outside of low-level details...

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

              Was thinking exactly about that - how to build the lessons...

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

              J Offline
              J Offline
              jakopo87
              wrote on last edited by
              #26

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

              P 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

                U Offline
                U Offline
                User 14060113
                wrote on last edited by
                #27

                As C# includes many features that you also have in C++ and C, you could use C# as a language for absolute beginners, as long as you start with a very small subset of everything that's possible in C#. No lambda expressions, no null propagation, no classes, no properties etc., just some loops and branches, and maybe some functions. And then you can slowly work your way up to the more advanced features.

                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

                  V Offline
                  V Offline
                  Vaso Elias
                  wrote on last edited by
                  #28

                  I would recommend it. If they offer it in the school, probably they know how to teach it. But the other questions are for all programming languages they teach: Do they teach it right, whatever it is? Do they teach it the way, to be open to use other languages or whatever language you choose, would you be taught that it is the only and best language? You can try it yourself that it is easy Hello World - Introduction to C# interactive C# tutorial | Microsoft Docs[^] and surprise your daughter with your knowledge :) or be step ahead?

                  Kornfeld Eliyahu PeterK B 2 Replies Last reply
                  0
                  • V Vaso Elias

                    I would recommend it. If they offer it in the school, probably they know how to teach it. But the other questions are for all programming languages they teach: Do they teach it right, whatever it is? Do they teach it the way, to be open to use other languages or whatever language you choose, would you be taught that it is the only and best language? You can try it yourself that it is easy Hello World - Introduction to C# interactive C# tutorial | Microsoft Docs[^] and surprise your daughter with your knowledge :) or be step ahead?

                    Kornfeld Eliyahu PeterK Offline
                    Kornfeld Eliyahu PeterK Offline
                    Kornfeld Eliyahu Peter
                    wrote on last edited by
                    #29

                    Vaso Elias wrote:

                    If they offer it in the school, probably they know how to teach it.

                    You are probably live in an utopian state... :-D

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

                    "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

                    1 Reply Last reply
                    0
                    • L Lost User

                      It's not; it hinges on the concept of OO. Objects are hard conceptually, classing variables and methods into logical entities. 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). Problems arose when my I got pages worth of procedures, largely copy/pasted. At that time, I was ready for OO and inheritance. Teach her a procedural language and things that give quick reward. Once she knows about variables and procedures, give her a challenge that requires too much writing, and after a day or three, introduce OO and inheritance.

                      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.

                      B Offline
                      B Offline
                      BryanFazekas
                      wrote on last edited by
                      #30

                      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 1 Reply Last reply
                      0
                      • V Vaso Elias

                        I would recommend it. If they offer it in the school, probably they know how to teach it. But the other questions are for all programming languages they teach: Do they teach it right, whatever it is? Do they teach it the way, to be open to use other languages or whatever language you choose, would you be taught that it is the only and best language? You can try it yourself that it is easy Hello World - Introduction to C# interactive C# tutorial | Microsoft Docs[^] and surprise your daughter with your knowledge :) or be step ahead?

                        B Offline
                        B Offline
                        BryanFazekas
                        wrote on last edited by
                        #31

                        Vaso Elias wrote:

                        I would recommend it. If they offer it in the school, probably they know how to teach it.

                        Not necessarily. I recall a couple of classes where the instructor was learning the material a day ahead of teaching it, and a lot of the professors had no idea how to teach. Many moons ago a coworker did a tech interview for a college professor who wanted to leave academia and get into consulting. She failed the tech interview in a language she had been teaching for 5 years. She could explain language syntax, but had no idea how to program anything of any complexity.

                        V 1 Reply Last reply
                        0
                        • B BryanFazekas

                          Vaso Elias wrote:

                          I would recommend it. If they offer it in the school, probably they know how to teach it.

                          Not necessarily. I recall a couple of classes where the instructor was learning the material a day ahead of teaching it, and a lot of the professors had no idea how to teach. Many moons ago a coworker did a tech interview for a college professor who wanted to leave academia and get into consulting. She failed the tech interview in a language she had been teaching for 5 years. She could explain language syntax, but had no idea how to program anything of any complexity.

                          V Offline
                          V Offline
                          Vaso Elias
                          wrote on last edited by
                          #32

                          I had the same experience myself when I was studying at university, however we had also teachers who knew way too much and they did teach us lot :) There are always good and experienced teachers and then those who need to work more on their teaching skills :).

                          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
                            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
                                          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