3 ms·
I started with Python, then Lisp, then I had my first job working with C#. I honestly don't think C# would make one iota of sense to me if I did not have any ba
by dizzystar 13y ago
I started with Python, then Lisp, then I had my first job working with C#. I honestly don't think C# would make one iota of sense to me if I did not have any background in programming.
I think that there is something be said about learning the value of all the libraries and working at a high-level view when your aim is production, but for learning, peeling away all the abstractions and forcing yourself to learn the fundamentals first is more important, with a much larger payoff once you are exposed to working with higher-level concepts. The dichotomy is that being productive is somewhat at odds with learning the fundamentals, but being productive in C# requires some intuition and knowledge about when to use a tool as much, if not more so, than how to use a tool.
I think that the entire .Net ecosystem is a terrible place to start. The first reason is Visual Studio. There is immense value in learning how to compile a program, using real REPL, learning how to design your file tree, and many other issues. I also think that a language that basically requires you to use code-completion is bad for your discipline as a programmer and doesn't enforce one of the major tenets of LCTHW, which is that typing and accuracy are highly valuable skills and depending on code-completion is akin to doing copy-pasting. Typing forces you to consider the "why" of your actions.
I also think that C# is generally much slower to develop on because far more verbose than other languages. It is better, IMO, to just focus on the problem at hand. Having a program that is 3x longer than Python can't be good for a beginner. Too much to focus on. Just get to the point and focus on it.
There aren't many learning resources about C# and using it for programming fundamentals. The advice can often be highly confusing and at odds with what you are ultimately attempting to accomplish. There is something to be said abound step-by-step and simple and straight-forward when you are just starting out.
I think C# is fine as a second or third language to learn. The reason is that there are many wonderful ideas and concepts in there, but they won't make a whole lotta sense without something to refer to in your own mind.
I hope the above isn't interpreted as a bash of the language or .Net as I believe that C# is a beautiful language with some amazing concepts. With that said, I'm sick and tired of seeing slow sites with the .aspx extension. If people with years of experience get bogged down in the complexity of the framework, what will happen to our beginner?