C# is a great language, but not a good starting language because you need to deal with a lot of secondary elements like header files, Visual Studio with its unintuitive solution system, or the .NET framework before you can code anything of practical value.
If you want to learn coding for the sake of improving the quality of your logical thinking, low-level languages are the way to go, and I’m not aware of any language that teaches this better than Ada.
If you want to see quick results, go learn a scripting language. They’re all pretty much the same; Lua just seems to be the most popular these days.
There are also lots of “esoteric” languages that are designed to fit specific (often absurd) programming philosophies rather than maintain functionality; I know there are some that aim to make coding as painful as possible (Brainfuck and Whitespace come to mind), but there may also be some that teach programming logic especially well. I’m not particularly knowledgeable about this huge field of languages, so I leave recommendations to someone else.
I’m not sure when you last used C#, but solutions are only used if you want to group 2+ separate projects together, are fairly intuitive (there’s a single unintuitive bit—running the main project doesn’t rebuild the others, but it DOES pop up a warning to that effect), and I don’t think I’ve ever seen someone struggle with them outside of the complexities of a multi-user office where the solution file is stored in subversion (solved by not storing solution files in SVN!)
Equally, I’m not sure why the ”.NET framework” would add any complexity. The ability to look at a control in a UI and see all of it’s attributes is something most people find a lot more intuitive. The ability to double-click a control and add an obvious default event is also very helpful, in my experience with teaching.
Header files, I will concede. For basic programs, C# automatically includes the necessary ones, however—so it’s not something that really comes up until you’re doing more advanced code.
C# is a great language, but not a good starting language because you need to deal with a lot of secondary elements like header files, Visual Studio with its unintuitive solution system, or the .NET framework before you can code anything of practical value.
If you want to learn coding for the sake of improving the quality of your logical thinking, low-level languages are the way to go, and I’m not aware of any language that teaches this better than Ada.
If you want to see quick results, go learn a scripting language. They’re all pretty much the same; Lua just seems to be the most popular these days.
There are also lots of “esoteric” languages that are designed to fit specific (often absurd) programming philosophies rather than maintain functionality; I know there are some that aim to make coding as painful as possible (Brainfuck and Whitespace come to mind), but there may also be some that teach programming logic especially well. I’m not particularly knowledgeable about this huge field of languages, so I leave recommendations to someone else.
I’m not sure when you last used C#, but solutions are only used if you want to group 2+ separate projects together, are fairly intuitive (there’s a single unintuitive bit—running the main project doesn’t rebuild the others, but it DOES pop up a warning to that effect), and I don’t think I’ve ever seen someone struggle with them outside of the complexities of a multi-user office where the solution file is stored in subversion (solved by not storing solution files in SVN!)
Equally, I’m not sure why the ”.NET framework” would add any complexity. The ability to look at a control in a UI and see all of it’s attributes is something most people find a lot more intuitive. The ability to double-click a control and add an obvious default event is also very helpful, in my experience with teaching.
Header files, I will concede. For basic programs, C# automatically includes the necessary ones, however—so it’s not something that really comes up until you’re doing more advanced code.