【问题标题】:How long would it take a non-programmer to learn C#, the .NET Framework, and SQL? [closed]非程序员学习 C#、.NET Framework 和 SQL 需要多长时间? [关闭]
【发布时间】:2009-01-05 16:49:14
【问题描述】:

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

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

【问题讨论】:

  • 在开始回答这个问题之前,人们需要先了解几件事:1)你有什么编程经验(Java?C++?SML?)2)你想要完成什么(您是否正在尝试构建网页、桌面应用程序、嵌入式系统?)
  • 你和我同时在编辑,所以你的编辑没有被采纳。我刚刚看到了。如果您想对我的编辑进行编辑,请成为我的客人。 :-)
  • 没问题,Gortok,你的编辑很好:)
  • 搜索类似的问题,例如关于获得学位。但是,我建议您将注意力集中在工具而不是大脑上,这已经限制了您的未来 (c2.com/cgi/wiki?ProgrammingIsInTheMind)。
  • 您拥有电子学硕士学位。 - 我是一名 EE 专业的学生,​​从事编程工作已经 3 年多了。我可以告诉你的是,它并不比 EE 更令人兴奋。除了它从来没有比EE更好的职业道路。正如我最近发现的那样,“程序员没有与其他专业人士不同的知识资本”。 - 请谷歌了解更多关于知识资本的事情

标签: c# .net sql


【解决方案1】:

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

  • 1 天了解它是什么
  • 1 周学习到婴儿/小学水平
  • 1 年被专业人士视为初学者
  • 几年才能被视为经验丰富的专业人士
  • 此外,对于那些像你我这样的凡人永远无法学习的学科,还有“深入”的知识

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

【讨论】:

  • 我同意——把这个问题想象成“学习绘画需要多长时间”。你可能会在几周内学会粉刷一栋房子,但画出会卖的艺术品?创造博物馆品质的艺术品?这一切都取决于你的愿望和能力。
  • 此外,OP ('Gortok') 一开始就不是非程序员,所以这也取决于他已经知道的情况;例如,我在一周内使用了 C#,但我开始对 C++ 和 Win32 API 有很好的了解。
  • 我的错误:“Gortok”编辑了 OP,但他不是原始海报。
  • 另一个问题是,那幅只有几行画布的博物馆艺术品呢?
  • 毕加索的一些线条画在images.google.com/images?&q=picasso+drawing...与他早期的一些画作对比,在bcn.cat/museupicasso/en/collection/highlights.html...毕加索,至少,在之后 他学会了制作传统艺术。
【解决方案2】:

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

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

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

例如..

将对象视为组件。

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

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

您还知道,您可以使用两个或更多与非门构建额外的逻辑电路。这就是实例化。

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

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

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

1) 将您心中的项目分解为多个步骤。例如......从用户那里获取一个数字,将数字加一,显示结果。将此视为您的设计。

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

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

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

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

【讨论】:

  • 我想为这个答案投超过 1 票,但我不能。 :-)。我也来自相同的背景,我喜欢你如何在这两方面建立联系。感谢您的努力。
【解决方案3】:

去做吧!不要担心细节。

【讨论】:

    【解决方案4】:

    好吧,它会带你永远。编程有很多东西要学,10 年是不够的。

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

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

    你应该专注于一个领域并尝试做一些例子,如果你选择Web开发,从一个hello world网页开始,然后添加一些代码。了解回发、视图状态和会话。试着掌握if、循环和函数,你真的有很多东西要讲,说“这是最好的学习方法”并不容易。

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

    【讨论】:

    • 我点击这个问题只是为了添加那个链接。点赞!
    • “我猜你最终会在需要做的基础上学习。”但愿如此。您边做边学,因为如果您尝试吸收整本书而不打算构建某些东西,那将毫无意义。如果你积累了一些经验,然后回去读同一本书,你就会学到新的东西。
    【解决方案5】:

    C# 最棒的地方在于它非常吸引人。很容易上手,而且你也会玩得开心。

    但是 .Net 框架是一个非常大的库,其中充满了许多值得探索的精彩内容,而且由于 .Net 的性质,您也将在学习它时获得乐趣。它是一个连贯的、面向对象的、有据可查的库,而 C# 使得使用它变得如此简单,以至于您可以在编码时轻松地发现自己的方式。

    关于 .Net 和 C# 的绝大多数文章、书籍或资源都只专注于解释功能和框架,而很少关注如何避免怪癖、变通方法或例外情况,就像我不想要的其他语言一样命名(*cough C++*) 所以最终学习C#和.Net的经历从头到尾都是非常愉快的,而你使用.Net可以完成的事情也让它非常有收获。

    在我看来,您选择了一种好的语言作为开始,最后回答您的问题,它将带您了解:

    • 2到3个月学习基础
    • 1 到 2 年成为精通开发者
    • 5 年或更长时间才能成为专家,或者根据您的奉献精神,成为“大师”。

    但话又说回来,击败数字并打破限制是人性的本质。你能比这更快吗? ;-)

    【讨论】:

    • 5 年不会让你成为大师,只会让你成为一个经验丰富的开发者,犯过足够多的错误,不会浪费大家的时间。与像 Anders Hejlsberg 这样的 C# 团队负责人这样的大师相比,有些人(包括我)永远不会成为大师。
    • 5 年的编程,不会让你成为大师,但如果你是大师的材料,至少需要 5 年“或更长时间”才能成为大师……:)
    • 安德斯不是大师……他不止于此,他是“父亲”……
    【解决方案6】:

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

    基本上,亲自动手,你一定会学到更多。

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

        如果你是一个通过书学习的人,只需跳转到 Amazon.com 并进行快速搜索,选择评论最好的书或等待这里的人推荐一本书(我'我不是书呆子的编程)

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

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

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

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

            编辑

            您可能想为学习 C# 挑选一本书是C# in a Nutshell (3.0),我发现它非常有用,并已被这里的几个人推荐。

            【讨论】:

              【解决方案11】:

              如果你想学习,真的想学习,那么时间并不重要。每天都往前走。让你对这些东西的热情推动你前进。有一天你会发现你擅长 C#/.NET。

              【讨论】:

                【解决方案12】:

                您将很快学会 c#(语言语法并不复杂)。 真正学习 .NET 框架需要很长时间,但你会很快掌握框架中大量使用的部分,并且应该开始看到框架中的模式。 p>

                我给你的建议:不要只是从书本或网站上学习。他们会教你语言和框架,但不会教你如何编写任何有用的东西。

                编写小代码 sn-ps 会教你如何完成非常具体的任务,但不会教你如何编写应用程序。我的建议是你考虑一个可能有趣的应用程序(并且可行......例如,不要认为你会在一两个月内编写操作系统或孤岛或其他东西)。就我个人而言,在我学习的时候,我编写了自己的全功能 IRC 应用程序,包括富文本、个人消息传递等。

                【讨论】:

                  【解决方案13】:

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

                  您需要注意的是良好的编程实践。你可能会看到自己在问“为什么这个方法这么小”,“为什么这个方法是空的,这个抽象词在这里做什么”。这将为您提供超越语法的视野,从而获得出色的写作。

                  【讨论】:

                    【解决方案14】:

                    当我从金融业转行时,我休了 9 个月的假,根据 Ivor Horton 的一本书全日制学习 C++。我从我最好的朋友那里得到了很多支持,他是一位大师,我从高中开始就将编程作为一种爱好(当时我 36 岁)。

                    不仅仅是语法问题。诸如指针、引用传递、多层架构、结构与类等的想法,这些都需要时间来理解和学习使用。并且您正在向其中添加庞大且不断发展的 .Net 框架,以及与 C# 完全不同的技能组合 SQL。您也没有提到该框架的各种子集正在变得越来越广泛使用,例如 WPF、WCF、WF 等。

                    你是一名学者,所以你绝对可以做到,但这需要很长时间的认真努力,而且你肯定需要一些项目来工作和学习。祝你好运。

                    【讨论】:

                      【解决方案15】:

                      根据 Malcolm Gladwell 的说法,你需要 10,000 小时才能变得真正好。所以开始吧。

                      【讨论】:

                        【解决方案16】:

                        简单的答案:比两个月长得多。无论如何,学习熟练的编程将需要更长的时间。我花了好几年的时间才学会成为一个称职的面向对象程序员,而且我很擅长这些东西。

                        更详细的答案:首先学习 C# 还是 SQL 并不重要,因为它们非常不同。我可能会建议使用 SQL,因为它更容易学习并且更独立有用。

                        您将很难适应家里的工作现实,就像您学习管道或量化金融一样。

                        如果没有尝试做一个或多个项目,您将很难将所有信息放在一起。你需要让其他人告诉你什么时候你是愚蠢的,什么时候你过于聪明并且会在以后付出代价,什么时候你真的得到它。

                        试着找一个你觉得有点意思的开源项目。研究他们的代码。弄清楚他们为什么要这么做。查看错误列表,并尝试找到尽可能微不足道的内容来修复。从那里工作。学习贡献会教给你一些对工作世界有用的东西,它会给你一些可以指出的东西。如果您有一些经验可以指出,那么获得第一份工作会容易得多。

                        【讨论】:

                          【解决方案17】:

                          抛开所有“相对论”,并不快。基于你说你以前从未编程过的事实......成为一名基本的程序员,几年。

                          要想成为一名优秀到优秀的(使用设计模式和行业认可的标准,这些标准与 ISO/IEC 9126 标准定义的通用标准相关,例如可测试性、可维护性等)程序员,通常需要多年的经验和编码..你不会成为“Sr”。或一夜之间成为“架构师”,对于一个不会乱写代码的中级开发人员来说也是如此。

                          这始终是一个改进的过程。所以学习是相对的。但是在开始设计类和接口之前,学习基础知识似乎很简单。甚至潜在客户也会偶然发现基础知识……做错事。每个人都这样做。有很多事情需要注意。

                          如果您只是要添加功能(使用您的主管或架构师为团队预留的类)而不是真正添加新类等,这会更容易......但您应该注意编码使用标准,您仍然必须了解 OOP 的复杂领域。但这并不是真正的 OOP。当您开始创建类、接口并了解继承、堆、引用等时。yada yada...并且真正理解无论您多么聪明或认为您可能多么聪明,都需要时间。

                          所以,对于一个新程序员。不容易。准备好编写大量代码。如果你不是,在你所在的地方找一份工作。一切都是为了尽可能多地编码,这样你才能变得更好。

                          首先阅读这些书。不要深入研究任何其他人,因为他们不适合以您可以快速上手的方式教您语言:

                          http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/ref=pd_bbs_sr_4?ie=UTF8&s=books&qid=1231280335&sr=8-4

                          http://www.amazon.com/Head-First-SQL-Brain-Learners/dp/0596526849/ref=pd_bbs_sr_7?ie=UTF8&s=books&qid=1231280335&sr=8-7

                          http://www.amazon.com/Head-First-C-Brain-Friendly-Guides/dp/0596514824/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1231280393&sr=8-1

                          http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1231280393&sr=8-3

                          它们会让你快速开始理解,比那里的任何书籍都好。

                          对于这些蹩脚类型的回复,请忽略它们:

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

                          那些来自开发人员(通常是领导),他们有一些不希望你学习的自我之旅。每个人的学习速度不同,学习速度也不同,最终你会变得“快”。我已经厌倦了听到高级开发人员说这样的声明,而他们的 sh** 也臭了很多次,不管他们有多好。相反,他们应该帮助团队取得成功和学习,只要他们的团队努力跟上并做他们自己能做的事情(而不是偷懒)。

                          确保您首先尝试获得初级开发人员职位...

                          【讨论】:

                            【解决方案18】:

                            2-3 个月来学习基础知识……没办法。除非你肯定会编码意大利面条。 1-2年也是如此。意大利面就是这样..

                            【讨论】:

                              【解决方案19】:

                              建立在您已经知道的基础上,并查看大量招聘广告。例如,我见过一些工作要求 WinForms/WPF 和电子设备来编写 UI 以控制自定义硬件。

                              您可能会发现“机器人”.net 工具包很有趣。

                              .Net 现在太大了,任何人都无法同时学习 WEB 和桌面,因此您必须决定要走的路。 Web 有更多的工作,但很少有人拥有出色的桌面剧照。

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2019-10-13
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多