非程序员学习 C#、.NET Framework 和 SQL 需要多长时间?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/413731/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-04 02:28:57  来源:igfitidea点击:

How long would it take a non-programmer to learn C#, the .NET Framework, and SQL?

c#.netsql

提问by user51713

I am not that good at programming. I finished my masters degree in electronics. I want to learn C#, the .NET Framework, and SQL. How much time do you think it would take (if I have 5 hours a day to devote to it)? Also, what order do I learn them in? I have Visual Web Developer 2008, is that enough to begin?

我不太擅长编程。我完成了电子学硕士学位。我想学习 C#、.NET Framework 和 SQL。你认为这需要多少时间(如果我每天有 5 个小时的时间)?另外,我按照什么顺序学习它们?我有 Visual Web Developer 2008,这足以开始吗?

Copied from a new question by the same user:
I should have specified that I wish to make a career out .NET Development. I'd like to give myself 2 months to get the 'basics' down. As a developer, what is expected out of you in IT companies? What skillset do they require and what are the responsibilities as a junior or mid-level developer? I don't have any industry experience, will I be able to get a feel of the job duties while at home?

复制自同一用户的一个新问题:
我应该指定我希望从事 .NET 开发。我想给自己 2 个月的时间来学习“基础知识”。作为开发人员,您对 IT 公司的期望是什么?他们需要什么样的技能,作为初级或中级开发人员的职责是什么?我没有任何行业经验,我可以在家中感受工作职责吗?

回答by Kibbee

It really depends on what you mean by "learn". You could probably spend a week and get a couple of pages up on the web that had some minimal level of interactivity to save information entered by the user in some database, and then have some other pages for querying and displaying the information. You could then spend the next 10 years of your life learning all the intricacies of the .Net framework, SQL, and mastering using the IDE.

这真的取决于你所说的“学习”是什么意思。您可能会花一周时间在 Web 上创建几个具有最低交互级别的页面,以将用户输入的信息保存在某个数据库中,然后使用其他一些页面来查询和显示信息。然后,您可以在接下来的 10 年里学习 .Net 框架、SQL 和掌握使用 IDE 的所有复杂性。

回答by Elie

If you have any programming experience, you can probably learn the C# syntax in a few hours, and be comfortable with it within a week or so. However, you will not be writing complex structures unless you write a lot of code with it. It's really the same as learning any language: you can learn all the words and grammer fairly quickly, but it takes a while to be fluent.

如果您有任何编程经验,您可能会在几个小时内学会 C# 语法,并在一周左右的时间内熟练掌握。但是,除非您使用它编写大量代码,否则您不会编写复杂的结构。这与学习任何语言真的一样:您可以相当快地学习所有单词和语法,但需要一段时间才能流利。

EDIT

编辑

A book you may want to pick up for learning C# is C# in a Nutshell (3.0)which I found to be very useful, and has been recommended by several people here.

你可能想拿起一本学习 C# 的书是C# in a Nutshell (3.0),我发现它非常有用,这里有几个人推荐。

回答by Chance

The period of which you are capable of learning really depends on your ability to grasp the logic behind programming while where to learn from depends on your learning style.

你能够学习的时间段实际上取决于你掌握编程背后逻辑的能力,而从哪里学习则取决于你的学习方式。

If you are a learn-by-a-book type of guy, just jump on Amazon.com and perform a quick search, pick up the book with the best reviews or wait for someone here to recommend a book (I'm not a programming by book guy)

如果你是一个书本学习型的人,只需跳上 Amazon.com 并执行快速搜索,拿起评论最好的书或等待这里有人推荐一本书(我不是一个书人编程)

If you prefer screencasts (video feeds demonstrating what to do) or tutorials, then go straight to the source: http://www.asp.net/learn/. There are tons of videos and tutorials explaining everything you need to get started.

如果您更喜欢截屏(演示如何操作的视频源)或教程,请直接访问源:http: //www.asp.net/learn/。有大量视频和教程解释了您开始所需的一切。

Visual Web Developer 2008 Express should be all you need to get started. Basically, the express editions are Visual Studio chopped down to a precise set of functionality to accomplish one thing. They don't have some of the bells and whistles needed for large scale development, but everything you should need.

Visual Web Developer 2008 Express 应该是您开始所需的全部内容。基本上,快速版本是 Visual Studio 被分解成一组精确的功能来完成一件事。他们没有大规模开发所需的一些花里胡哨的东西,但是你应该需要的一切。

回答by ChrisW

That's like asking how long it would take to learn French:

这就像问学习法语需要多长时间:

  • 1 day to learn what it is
  • 1 week to learn it to an infant/elementary level
  • 1 year to be considered a beginner by professionals
  • Several years to be considered an experienced professional
  • Plus there's "deep" knowledge of those subjects which a mere mortal such as you or I will never learn
  • 1天了解它是什么
  • 1 周将其学习到婴儿/初级水平
  • 1年被专业人士视为初学者
  • 几年被认为是经验丰富的专业人士
  • 另外,对于像你或我这样的凡人永远学不会的那些学科有“深入”的知识

Then again, plenty of people (most normal people, non-programmers) neverlearn those subjects, so if you're like "most" people then the answer would be "it would take forever" or "it will never happen".

再说一次,很多人(大多数普通人,非程序员)从来没有学习过这些科目,所以如果你像“大多数”人一样,那么答案将是“它会永远”或“它永远不会发生”。

回答by Sergio

Well, it will take you forever. There is so much to learn about programming that 10 years are not enough.

嗯,它会带你永远。关于编程有太多东西要学习,10 年是不够的。

http://norvig.com/21-days.html

http://norvig.com/21-days.html

Don't get me wrong, you will learn the basics quickly enough, but to become good at it will take much longer.

不要误会我的意思,你会很快学会基础知识,但要熟练掌握它需要更长的时间。

You should focus on an area and try to make some examples, if you choose web development, start with an hello world web page, then add some code to it. Learn about postbacks, viewstate and Sessions. Try to master ifs, cycles and functions, you really have a lot to cover, it's not easy to say "this is the best way to learn".

您应该专注于一个领域并尝试制作一些示例,如果您选择Web开发,则从一个hello world网页开始,然后向其中添加一些代码。了解回发、视图状态和会话。试着掌握ifs、cycles和functions,你真的有很多东西要讲,说“这是最好的学习方式”并不容易。

I guess in the end you will learn on a need to do basis.

我想最终你会在需要做的基础上学习。

回答by Craig

Just do it! Don't sweat the details.

去做就对了!不要担心细节。

回答by driAn

Can't tell how long it would take, it really depends on your existing knowlege. I managed to learn the C#/.NET 2.0 core basicsin about 2 months. My suggestion to you: Try to learn towards exams, they make sure your learning covers all important parts and also guide you through this new technology. See Microsoft Learning.

不知道需要多长时间,这实际上取决于您现有的知识。我设法在大约 2 个月内学习了 C#/.NET 2.0核心基础知识。我对您的建议:尝试学习考试,他们确保您的学习涵盖所有重要部分,并指导您完成这项新技术。请参阅Microsoft 学习

回答by Kezzer

How long is a piece of string? I think this is subjective. I know programmers that have learned an extraordinary amount in a very short time based on the experience that they've exposed themselves to.

一段绳子有多长?我认为这是主观的。我认识的程序员根据他们所接触的经验在很短的时间内学到了很多。

Basically, get your hands dirty and you're bound to learn more.

基本上,把手弄脏,你一定会学到更多。

回答by Otávio Décio

The answer in my view is related to whether you have a tangible problem to solve or if you just want to learn for example to be prepared for a possible new job. If you have a problem then you are in better shape. You can start by looking around and seeing how other people went about solving that problem. Languages in general you should be able to pick up fairly quickly (after all you hold an MS in EE, no small feat IMO).

在我看来,答案与您是否有切实的问题要解决有关,或者您是否只想学习,例如为可能的新工作做好准备。如果你有问题,那么你的状态会更好。你可以先环顾四周,看看其他人是如何解决这个问题的。一般而言,您应该能够相当快地掌握语言(毕竟您拥有 EE 的硕士学位,这在 IMO 是一项不小的壮举)。

What you need to be on the lookout for is good programming practices. You'll probably see yourself asking "why is this method so small", "why is this method empty and what the heck is this abstract word doing here". That will give you perspective beyond syntax towards good writing.

您需要注意的是良好的编程实践。你可能会看到自己在问“为什么这个方法这么小”,“为什么这个方法是空的,这个抽象词在这里做什么”。这将使您从语法角度看好写作。

回答by Andy Webb

Dive right it, make it a hobby, and have fun :)

正确潜水,让它成为一种爱好,玩得开心:)

Coming from an electronics background myself I can tell you that you should pick it up pretty quickly. And having an electronics background will give you a deeper understanding of the underlying hardware.

我本人具有电子背景,我可以告诉您,您应该很快掌握它。拥有电子背景将使您对底层硬件有更深入的了解。

IMHO the root of information technology is electronics.

恕我直言,信息技术的根源是电子。

For example..

例如..

Think of objects as components.

将对象视为组件。

The .NET framework is essentially drawers full of standard components.

.NET 框架本质上是装满标准组件的抽屉。

For example you know what a 7400 (NAND gate) is capable of doing. You have a data sheet showing the pin outs and sample configurations. You don't typically care about the circuitry inside. Software objects are the same way. We have inputs and we have methods that do something to the inputs to produce predictable outputs. As developers we typically don't care how the object was written... just that it does what it says it will do.

例如,您知道 7400(与非门)能够做什么。您有一份数据表,其中显示了引脚输出和示例配置。您通常不关心内部电路。软件对象也是如此。我们有输入,我们有方法对输入做一些事情以产生可预测的输出。作为开发人员,我们通常不关心对象是如何编写的……只关心它说它会做什么。

You also know that you can build additional logic circuits by using two or more NAND gates. This of this as instantiation.

您还知道可以通过使用两个或多个与非门来构建额外的逻辑电路。这作为实例化。

You also know that you can take a NAND gate and place it inside a circuit where you can modify the input signals coming in so the outputs have different behaviors. This is a crude example but you can think of this as inheritance.

你也知道你可以把一个与非门放在一个电路中,你可以在那里修改输入信号,使输出具有不同的行为。这是一个粗略的示例,但您可以将其视为继承。

I have also learned it helps to have a project to work on. It could be a hobbyist project or a work project. Start small, get something very basic working, and work up from there.

我还了解到有一个项目进行工作会有所帮助。它可以是业余爱好者项目或工作项目。从小事做起,做一些非常基本的工作,然后从那里开始工作。

To answer your specific question on "what should I learn first".

回答你关于“我应该先学什么”的具体问题。

1) Take your project you have in mind and break it into steps. For example... get a number from the user, add one to the number, display the result. Think of this as your design.

1) 把你想到的项目分解成几个步骤。例如...从用户那里获取一个数字,在数字上加一,显示结果。将此视为您的设计。

2) Learn basic C#. Write a simple console application that does something. Learn what an if statement is (this is all boolean logic so it should be somewhat familiar), learn about loops, learn about mathematical operations, learn about functions (subroutines). Play with simple file i/o (reading and writing text files). The basic C# can be thought of as your wiring and discrete components (resistors, caps, transistors, etc) to your chips (object).

2) 学习基本的 C#。编写一个简单的控制台应用程序来做某事。了解 if 语句是什么(这都是布尔逻辑,所以应该有点熟悉),了解循环,了解数学运算,了解函数(子程序)。使用简单的文件 i/o(读取和写入文本文件)。基本的 C# 可以被认为是连接到芯片(对象)的接线和分立元件(电阻器、电容、晶体管等)。

3) Learn how to instantiate and use objects from the framework. You have already been doing this but now it's time to delve in further. For example... play with System.Console some more... try making the speaker beep. Also start looking for objects that you may want to use for database work.

3) 学习如何实例化和使用框架中的对象。您已经这样做了,但现在是进一步深入研究的时候了。例如...多玩 System.Console... 尝试使扬声器发出哔哔声。同时开始寻找您可能想要用于数据库工作的对象。

4) Learn basic SQL. Lots of help and examples online. Pick a database you want to work with. I personally think MS Access is a great beginners database. I would not use it for multi-user or cross platform desktop applications... but it is a great single user database for Windows users... and it is a great way to learn the basics of SQL. There are other simple free databases available (Open Office has one for example) if you don't want to shell out $ for Access.

4)学习基本的SQL。网上有很多帮助和例子。选择一个您要使用的数据库。我个人认为 MS Access 是一个很棒的初学者数据库。我不会将它用于多用户或跨平台桌面应用程序......但它是一个非常适合 Windows 用户的单用户数据库......而且它是学习 SQL 基础知识的好方法。如果您不想为 Access 掏出 $,还有其他简单的免费数据库可用(例如 Open Office 有一个)。

5) Expand your app to do something with a database.

5) 扩展您的应用程序以使用数据库执行某些操作。