C#:“学习”和“理解” ! [英] C# : "Learning" and "Understanding" !

查看:62
本文介绍了C#:“学习”和“理解” !的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!!!!

自从我开始学习C#已经有一段时间了,我已经学习了大部分概念,但最近我与其他程序员进行了互动,我已经理解了我有一个问题在我的C#旅程的理解部分...

我知道C#语言本身但语言的理解部分是我避开的部分学到或想过......

所以我想问一下有经验和成功的程序员一些TIPS关于理解C#的正确方法!

谢谢非常多!

Alireza Oliya。

Hello to all !!!
Its been a while since I started learning C# and I have "learned" most of the concepts but with the recent interactions I had with other programmers, I have understood that I have a there is a problem in the "understanding" part of my C# journey...
I know about the C# language itself but the "understanding" part of the language is the part I haven't learned or thought about ...
So I would like to ask you experienced and successful programmers some TIPS about the correct way of "understanding" C# !
Thank you very much !
Alireza Oliya.

推荐答案

请看一下:我把这个问题称为修辞。它确实是。你把理解作为头等大事是好的。



严格来说,没有理解C#这样的东西。你本身无法理解它。您真的需要了解整个计算字段。要理解它,您需要了解CRL的工作原理。不是全部细节,但足够深刻。要理解这一点,您需要了解操作系统,程序和计算机如何协同工作。而且,要理解这一点,你需要了解CPU,内存和其他组件的工作原理,而不是所有细节,但要足够深入。



因此,我永远不会相信在CPU级别使用汇编语言指令从不开发任何东西的开发人员。我不是说任何人都应该是合格的大会开发人员。这只是因为汇编程序是达到这个级别的传统工具;在实践中,它可能是其他任何东西。而且我不会说这就足够了。完全没有。



假设任何人都对从Hello world写入CPU寄存器的所有功能有深刻的理解,将这些数据铣削到视频卡操作的操作中最后,屏幕缓冲区上的位和它们在监视器上的渲染。这种理解水平是否足以理解计算?不可以。这样的开发人员可能对某些已知的计算机体系结构有这种理解。一个真正有益的东西应该真的能够理解如何编程一些未知的,尚未设计的计算机。这不会是一个奇迹。真正的开发人员应该了解很多抽象概念。信息熵,冗余,堆栈,数字理论,集合,可计算性,闭包......只是为了继续这个无序列表将需要一整本书。不是很详细,但足够深。



现在,正确的理解方式怎么样?我坚信没有这样的方式。有许多不正确的方法可以避免。唯一的方法是学习使用你的大脑,并且,当你去,学习如何避免不正确的方式。许多非常优秀的老师,可能会帮助你缩短这种方式并获得更多的知识...... 有可能失去一个最重要的项目:你可能会错过自己找到这种方式的能力。这就是为什么,你的大部分方式,你应该依靠自己和你自己的大脑



...我在想这个答案非常怀疑。我的判断将假设现实生活中存在的许多程序员应该被排除在真正的软件工程师社区之外。如果有人气馁并离开现场,想着我不会成为其中之一,该怎么办?经过一番思考,我决定在这样的理解中不会是邪恶的。我真的希望大多数程序员成为真正的或离开这些领域。它将真正改善整体工作。一个真正的初学者应该是勇敢的,永远不应该被高期望所挫败。如果有人会害怕大量的工作和知识,那么这种精神萎靡的人永远不会参与计算会更好。太多的开发者被这个领域所吸引,因为他们认为这将是一项轻松的工作,可以提供足够的资金。但是谁需要它们?







一些参考资料,引用:

Please take a look: I dubbed the question as "rhetorical". It really is. It is good the you put the understanding as the top priority.

In a strict sense, there is no such thing as "understanding C#". You cannot "understand" it per se. You really need to understand the whole computing field. To understand it, you need to understand how CRL works. Not in all detail, but deeply enough. And to understand that, you need to understand how OS, a program and a computer work together. And, to understand that, you need to understand how CPU, memory and other components work, not all detail, but deeply enough.

By that reason, I will never trust a developer who never develop anything using Assembly language instructions at the CPU level. I don't say that anyone should be a qualified Assembly developer. This is only because the Assembler is a traditional tool to get to this level; in practice, it could be anything else. And I am not going to say that this would be enough. Not at all.

Let's suppose anyone has deep understanding of all the functionality from writing "Hello world" to CPU registers milling this data into the operations with the video card operations and, ultimately, bits on the screen buffer and their rendering on the monitor. Would this level of understanding be enough to understand computing? No. Such developer may have this understanding for some set of known computer architectures. A real good-for-something should really be able to understand how to program some unknown, not yet designed computers. And that would not be a miracle. The real developer should understand a lot of abstract concepts. Informational entropy, redundancy, stack, theory of numbers, sets, computability, closures… just to continue this unordered list would take a whole book. Not in all detail, but deeply enough.

Now, how about the "correct way of understanding"? I strongly believe there is no such way. There are many "incorrect" ways which could be avoided. The only way is to learn using your brain, and, as you go, learn how to avoid incorrect ways. Many perfectly good teachers, potentially, could help you to shorted this way and to gain a lot more knowledge… at risk of loosing one most important item: you could miss the ability of finding such ways by yourself. That's why, most of your way, you should really rely on yourself and your own brain.

…I was thinking about this answer in great doubt. My judgement would assume that many "programmers" existing in real life should be excluded from the community of "real" software engineers. What if someone is going to be discouraged and leave the field, thinking "I am not going to be one of them"? After some thinking, I decided that it would not be great evil in such understanding. I really would prefer that majority of "programmers" either become "real" ones or leave the fields. It would really improve out work overall. A real beginner should be brave and never should be discouraged by high expectation. If someone is going to be afraid of a lot of work and knowledge, it would be better that such weak-spirited person would never go in for computing. Way too many "developers" have been attracted to the field because they thought it would be an "easy" job giving enough money. But who need them?



Some references for you, with quotes:
RenéDescartes写道:

Dubium sapientiae initium
怀疑是智慧的起源

Dubium sapientiae initium
(Doubt is the origin of wisdom)




Alan Perlis 写道:

一种不影响编程方式的语言,不值得了解。




通过了解机器面向语言,程序员倾向于使用mu更有效的方法;它更贴近现实。

By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality.





-SA


这篇关于C#:“学习”和“理解” !的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆