A question about programming
-
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
Like SQL, LINQ is an intention revealing/implementation hiding mechanism and as such has a valuable role to play in making C# development better. However there is still a need to know how to do the implementation as you will need to use that when it comes down to it.
-
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
It's human nature to want to run before you can walk. Is that a bad thing? Not if it's the desire to run that makes you learn to walk but you still have to learn the two in the right order. LINQ is definitely for one of the later chapters of the tutorial.
98.4% of statistics are made up on the spot.
-
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
-
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
I think when Linq is best introduced/presented will depend on the student/trainee/audience background. Someone with depth SQL scripting and/or other language experience may get into it quickly. For most folks, I think presenting iterative code examples together with Linq examples that do the same thing ... in increasing order of complexity ... is valuable. I observe some students have difficulty with the "deferred evaluation" aspect of Linq. I like to use the metaphor of "creating a map," compared to actually following the map and bringing something back. What's your favorite metaphor/mnemonic ?
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it.» Claude Levi-Strauss (Tristes Tropiques, 1955)
-
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
I hate linq. There. I said it. I come across a bit of linq and I haven't got a clue what the heck it's doing. Even if it's code that I wrote. :laugh:
We won't sit down. We won't shut up. We won't go quietly away. YouTube, VidMe and My Mu[sic], Films and Windows Programs, etc. and FB
-
I think they should learn GWBasic or BasicA first, then spend the next 10 years learning assembler, c, c++, Pascal, Fortran, Cobol. Maybe then they can ask a proper question in Q&A rather than "CODZ PLZ".
When you are dead, you won't even know that you are dead. It's a pain only felt by others. Same thing when you are stupid.
That's pretty close to how I did it... Except for the time frame which is more like 30 years :laugh:
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
I'd just like a chance to prove that money can't make me happy.
Me, all the time -
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
Yet LINQ stands for Language Integrated Query, so it is effectively part of the language. LINQ can never replace C# - it isn't a language - and LINQ queries (for said novice) are written in C#. I do, however, agree about learning it later, when one can properly use standard chained method calls vs. the SQL like query format of LINQ. I just think LINQ (especially LINQ to Objects vs. data access) is so terribly cool it's hard to stop oneself from wanting to just dive in. I did, as soon as it arrived, but fortunately I had close on five years C# experience and knew it well.
"'Do what thou wilt...' is to bid Stars to shine, Vines to bear grapes, Water to seek its level; man is the only being in Nature that has striven to set himself at odds with himself." —Aleister Crowley
-
That's pretty close to how I did it... Except for the time frame which is more like 30 years :laugh:
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
I'd just like a chance to prove that money can't make me happy.
Me, all the time -
I agree. That's why beginners need to learn the basics of how to think like a computer on a simple teaching language first.
Learning C#. Once they get past "Hello, world", it takes a while (if ever) for it to sink in that they need to get familiar with a few hundred .NET "classes" in order to become productive.
"(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal
-
I agree. That's why beginners need to learn the basics of how to think like a computer on a simple teaching language first.
"basics of how to think like a computer" The language that most closely matches "how computers think" is Assembly language and even that is an abstraction to allow us mortals to approximate thinking like a computer without having to program in machine code. Back when computers had console switches & lights on them (to read out registers, and various other things internal to the computer) you could arguably say you could think like a computer if you could use these things fluently. Yes, there were actually people who could stand at the front console and program the darn things. All of the higher level languages are further abstractions of machine code to bring it into a form that we can more easily express our thoughts in.
-
I think they should learn GWBasic or BasicA first, then spend the next 10 years learning assembler, c, c++, Pascal, Fortran, Cobol. Maybe then they can ask a proper question in Q&A rather than "CODZ PLZ".
When you are dead, you won't even know that you are dead. It's a pain only felt by others. Same thing when you are stupid.
My first exposure to code was Basic on an Apple II. 10?"Hello ... 50 goto 10 Then when I found a C tutorial on a shareware CD, I couldn't figure out why GOTO was all the way in chapter 12! After all, I had no idea what a function was, and had it stuck in my mind that goto was needed for everything... Instead of reading from chapters 1-12, I just searched for Goto, and went from there. :D (Small remote town, no internet at the time, as it wasn't much of a thing outside of universities yet)
-
No, not a programming question, it's a question (observation) about programming. Noticed so many newbies within hours of deciding to "learn c#" are out on the board asking "how do I do X in linq." Why is that? Deciding to learn C# is useful, be it a first or second programming language and one can map a lot of that same skill onto other languages, even auto convert it. But they want to jump straight into linq which is too unique, doesn't convert well, doesn't map well, and if overused [at the expense of fully learning c#] can even limit application design choices. Perhaps authors of c# books/tutorials should highlight the fact that although linq is useful: it probably should be learned later, after one has some mastery of c#, it should be used [as intended] to supplement c#, not replace it, just because one line of linq can replace a few lines of c#, that doesn't always make it better, faster or smarter and can even reduce maintainability.
Signature ready for installation. Please Reboot now.
Linq is a good thought, but make the C# language less readable. If you write code that is difficult to maintain, you are creating more of a problem. Just because you can use the newest cool tool or idea, but your code and design requires more time for someone else to understand it, you are not doing a good job of engineering. Part of being a good engineer is to be sure that someone else can understand the design and code to quickly go on with it. Anything less is something anyone out of high school programmer can do. To become a good engineer, you must know more than just programming (in any language). Design, documentation, system designing, requirements analysis, and asking the right questions to understand what the customer needs. Also, allowing for the next person to quickly be able to pick up the project and continue on.