如何从头开始编程?

时间:2010-08-02 21:19:53

标签: c# .net programming-languages

我从来没有真正有任何编程经验,我的叔叔告诉我,如果我想开始编程,请到这个网站寻求陌生人的帮助。我知道几种语言的名字,但我根本不知道任何事情。我十四岁,如果有任何意义,我可以快速打字。我的一个叔叔想让我学习c#。所以我的问题是,c#是一个好的开始,如果没有,哪里是一个好的开始,我该如何学习呢?

20 个答案:

答案 0 :(得分:20)

您可能希望了解最新版本的Head First C#。它特别适合新手 - 它专注于“有趣”的例子而不是商业导向的例子。我个人并不喜欢这种学习方式,但它显然适合很多其他人。

请确保您购买的是最新版本(包括.NET 4)或上一版本的最新版本:早期版本有很多错误,但这些错误已经过一段时间的纠正。

答案 1 :(得分:17)

C#是一个很好的语言。

Here是一本很好的免费电子书,可以帮助您入门。它不仅讨论了编程语言,还讨论了程序员的意义以及如何专业地处理它。

正如乔恩在他的answer - Head First C#中所说,这也是一本很好的第一本书(正如Head First HTML所有其他书籍一样)。

您可以免费获得Visual Studio Express编程环境(带语法高亮和智能感知,编译器,调试器等编辑器)here - 只需选择C#版本。

答案 2 :(得分:15)

C#是一个好的开始,但你可能会发现编写网站更有趣。这很容易,每个人都可以看到你做的很酷的事情,而且你已经有了开始这样做的工具 - 只需要一个文本编辑器和一个Web浏览器。 HTML和Javascript也比C#更简单,更简单,但功能不强。

http://www.w3schools.com/是一个很好的起点。

答案 3 :(得分:9)

如果你的一个叔叔想要你学习C#,他可能会在几年后将你视为他的雇员。所以,直接问他这是他的计划,并说服他帮助你。

如果你的叔叔不知道编程,只是放弃了这个C#的建议,因为他在某个地方听到了这个词,他可能会对你不利。

如果我是你,我会自由选择我想要的东西,我当然不会选择C#,因为它将你与专有操作系统联系在一起(Mono是一个笑话,承认它)。

我的选择可能是Python,因为它几乎可以在任何平台上运行。你有两个非常有价值的初学者教程,从非常不同的方面接近教学编程,所以你可以选择最适合你的教程:the official Python tutorial和Zed Shaw的Learn Python The Hard Way(不要害怕可怕的标题,这本书对初学者非常有价值。)

编辑:

阅读完评论后,我想补充几点。

有多少C#程序员为了好玩而编码?大多数使用微软技术的程序员都是专业的 - 这是他们的工作,他们是为了赚钱,他们中的大多数人都没有勇气承认他们的工作有时很无聊(即使是这样),因为这样的说法是针对企业政策渗透到他们的(咳嗽!)免费编程工具提供的基础设施周围的文化。

仅仅在几年之内,那些对程序或多或少认真进行编程的用户群体就爆炸了。在那些日子里,有sourceforge--与程序员有关的单个怪物。今天有launchpad,bitbucket,github(最近超过1000000个存储库,其中大多数是由免费许可证管理的小型个人宠物项目)。有多少项目正在使用C#?

今天的编程比以往任何时候都更多地重用或“窃取”(在正常意义上)代码。 C#项目群,小型通用图书馆在哪里?虽然一些编写专有软件的程序员对新手不是很有帮助(因为他们认为这是咨询,他们可以做钱),而一些编写自由软件的程序员也不是很有帮助(因为他们缺乏社交技能) ,代码更重要。你不是只通过阅读书籍来学习编程,而是通过学习工作代码来学习。而自由软件生态系统提供了更多的代码来研究。

一般来说,参与编程的人有两种选择:

  • 避免使用专有资料,可能会被称为“匿名网络精英”,从而获得大量免费软件
  • 忽视专有vs免费圣战,冒着感受到专有软件确实意味着什么以及它如何破坏良好意图的风险,如this guy

答案 4 :(得分:9)

在我看来,在学习编程或学习新编程语言时,有一个关键工具。该工具是“您真正有兴趣解决的问题”。

它可能是您感兴趣的游戏,也可能是桌面或基于网络的工具,它可以帮助您在学校或生活中获得某些东西。

如果你真的想解决一个真正的问题,总会有免费的工具,教程和在线极客来帮助你学习如何解决它。

学习编程而不解决实际问题就像学习用锤子,钉子和短木头建造房屋一样。你可以学习锤子的基本机制,但是在你不得不面对在尝试构建有用的东西时遇到的问题时,你永远不会成为木匠。

之后,我认为C#是学习编程的一门很棒的通用语言。并且有一些非常棒的免费工具可用。

我同意那位用几种语言进行实验的海报。用不同的工具解决同样的问题可以让这些工具的不同范例真正大开眼界。

答案 5 :(得分:5)

编程有很多,但它可以分解为几个关键元素:

  • 理论
  • 工艺
  • 方言

理论只需要很多学习。书籍,课堂,试错,研究等。

工艺具有丰富的经验。

这会留下方言......或者更确切地说是你想要流利的特定语言。

要回答这个问题,需要列出一长串你想要做的事情。如果你真的没有任何特定的方向,你的'叔叔想要你学习它'可能是一个很好的理由。

答案 6 :(得分:4)

我会说一些热门语言,比如C#,Python,Ruby。我说这个的原因是,我认为喜欢一种语言有点像开发味蕾。我知道许多人因为牙箍和合成糖而感到厌恶。我想要拯救你的一切都是因为语法被吓倒而扔掉了

答案 7 :(得分:3)

我相信C#是一个非常好的起点。你真的对14岁的节目感兴趣,这非常漂亮。

我建议拿起一本C#书并阅读它。当你来的时候按照例子。

我最喜欢的C#书籍之一是Andrew Troelsen:带有.NET 4.0的Pro C#是他的最新着作。 :)

http://apress.com/book/view/1430225491

答案 8 :(得分:3)

C#绝对是一个很好的起点,这就是原因之一:

C#是一种恰当的语言,几乎会迫使你知道你作为程序员做了什么。 我开始使用PHP开始我的编程生涯,而且语言太松散了,你几乎无法搞砸。你可以制作很酷的网站,但在你被雇用做一些需要更强语言的事情之前,永远不会知道它们有多糟糕。那时,PHP中从未使用过的某些术语和数据类型将会使您感到宽泛。 回想一下,现在我知道很多编程语言,从PHP开始是开始编程的一种非常糟糕的方式,至少在我看来。我不敢相信我在这个领域有一份工作,知道我从哪里开始。 Java也是一个很好的开始。真的,任何严格的编译语言。当您从严格的编译语言中了解基础时,像PHP这样的松散语言可以轻松添加到您的知识库中。

当然,你可能想要考虑你想要编程的内容。如果你想做网络工作,C#是一个很好的基础,但是你会怀疑你会将它用于网络工作,除非你正在深入研究某些事情。 Objective C用于iphone和ipad的开发,所以学习它不会出错。

Java适用于网络,现在是一个移动平台,所以它绝对是一项很好的投资。 Java的原则将帮助您编写更好的Web代码,并且如果您想稍后分支到C,则可以形成良好的基础。反之亦然,我想。

PHP非常容易学习,如果您想进入Web开发,它将很好地为您服务。如果你走这条路,你应该知道html,css并至少熟悉数据库的mysql。仅供参考,php开发人员在编程领域只有十几个人,所以除非你想运营自己的网络公司并自己做网站,否则不要指望做到这一点。

无论如何,MVC(模型视图控制器)将是一个重要的事情。如果您的代码结构合理,那么对于您自己以及其他可能需要在您离开的地方进行维护的人来说,维护起来会变得无比轻松。

玩得开心。

答案 9 :(得分:2)

复制我在这里发布的帖子:https://stackoverflow.com/questions/3430705/3432079#3432079有两件事需要处理:

学术知识:

<强>技能:

  • 知道如何定义项目 - 无论你是多么优秀的程序员,如果你构建了错误的东西,你将会失败。
  • 知道如何设计 - 学习面向对象设计理论 - 四人帮软件模式是经典的,每个编码人员都应该了解它们。
  • 知道如何记录代码 - 这对于持久代码和在团队中运作良好至关重要。写它,记录它,测试它=&gt;重复使用
  • 知道如何在团队中工作 - 努力工作,善于交流,沟通良好。
  • 了解使用哪种工具 - 了解尽可能多的语言类型,实际语言,技术,库等,以便了解在哪种情况下使用哪种语言
  • 知道如何学习 - 来自周围的人,网络,文档,最重要的是你自己的错误。

我确定其他人可以添加到这些列表中;)

答案 10 :(得分:2)

没有最好的方法,但有一个地方可以在这​​里开始:

Express Editions

他们是自由的,你会有很多选择。

答案 11 :(得分:1)

您决定选择哪种语言(C#没有错)。拿起一本好书或资源,这里提到一些。完成后,请务必手动操作示例,然后在计算机上将它们混合到您的甜瓜中。

这可能是非常明显的,但是你可以工作,修改和制作自己的例子以及看看它们如何工作的例子越多,你就越快掌握语言。恕我直言,这就是你真正开始学习和享受乐趣的方式,因为你可以开始看到事情发生并开始解决问题并获得你不会只阅读的问题的背景......

答案 12 :(得分:1)

当我半年前开始使用C ++时,我个人在编程方面取得了很大的进步。我自己也差不多十三岁了。 C#很像C ++(虽然存在差异),所以从经验来讲,我会说,是的,这是一个很好的语言。

至于参考资料,只需在当地书店购买一些书籍,然后开始逐步完成这些书籍。这就是我做的。如果你想从C ++开始,我肯定知道有一个很好的参考叫做'C ++ for Dummies'。这就是我开始的地方。

答案 13 :(得分:1)

这是一项资产您已承诺进行编程。从您对工作环境的敏锐理解开始通常是有利的。询问基本问题,比如您可以使用哪些工具进行日常作业?和他们一样尽可能多的乐趣;当他们表现异常时,问问为什么?尝试在网上找到解决方案。稍后,也许你可能想要享受基本的HTML一段时间;并且一直绕着c-sharp或任何其他编程语言移动;因为最后你自己会弄清楚程序员和编程语言之间的联系。

希望有所帮助

答案 14 :(得分:0)

我不会选择C#纯粹因为它不是完全免费的而且完整的视觉工作室非常昂贵。 看看python,它会强迫你以多种方式正确编程,同时省略一些比较烦人的编程方面({'s和; s)。 如果您确实选择学习python,那么有一个免费网站,其中包含有关如何制作基于文本的简单游戏的教程。在开始我当前的项目之前,我用它来熟悉语言。

链接: http://pythonbook.coffeeghost.net/book1/index.html

答案 15 :(得分:0)

能够使用十个手指快速打字很有用,因为你可以做更多的练习,而不会让你的肌肉很快疲惫。 我第一次使用电脑时,我只是用右手食指打字并快速累了 - 打字变成了噩梦!

如果您有足够的时间,可以按顺序开始学习以下主题:

  1. 从硬件和软件角度看计算机体系结构。
  2. C#(Deitel的C#书可能是一个不错的选择,因为它有更多细节)。

答案 16 :(得分:0)

根据Tiobe的说法,最常用的语言是C和Java,所以我几乎要说你应该从那里开始,但是esr有一些很好的理由推荐Python作为第一语言。

答案 17 :(得分:0)

C#是一个很好的起点。我建议的一件事是考虑一些很酷但不太复杂的东西,你想要使用其他人在这个帖子中建议的一些参考书来构建它。计算器很有趣,可以开始构建程序(免责声明:我是一名数学极客)。

答案 18 :(得分:0)

任何广泛使用的语言都是一个很好的起点。一旦用一种语言完成了一些有用的项目,就会更容易选择其他语言,因为逻辑类似。

我建议您根据自己现在想做的事情进行选择。例如,假设您有兴趣在学习的同时制作一些简单的游戏(想想蛙人或者1943年,并保持范围小)。您可以使用Python或Ruby等解释性语言(两者都提供免费游戏库)快速制作2D游戏。通过一些工作,你可以用Java或C制作它们,并有空间发展成更强大的游戏功能。或者你可以在Objective-C和Cocoa中制作它们,这会限制你在Mac上进行开发,但是可以在iPhone上发布你的游戏。

如果您想开展业务或财务应用程序,您可以找到很多基于C#,Visual Basic,Java,C和.NET框架(不是语言,但通常适用于企业软件)等语言的支持。使用SQL进行数据交互(可能存储销售,客户名称或员工记录等业务数据)也是一个好主意。

快速学习最重要的是你喜欢你正在做的项目,并且非常感兴趣。如果你真的不想用它做任何事情,那么学习一门语言似乎是不可能的。另一方面,如果你快速开始研究感兴趣的项目,并且对解决你为自己设定的问题狂热,你可以在6个月内成为一名出色的程序员。此外,你已经14岁了,所以你可以选择将你的生活和事业推向一个能让你在工作中获得收入和享受的方向。

答案 19 :(得分:0)

好吧,是不是只有我或没有人问他主要问题。 你究竟想做什么? 你想玩硬件(即有一些板连接到串行/并行/ USB端口,有一些LED闪烁,有一些声音从扬声器等出来)或你是否想要开发具有良好的用户界面连接的应用程序到数据库甚至游戏?

那么,对于第一,这将是汇编(即对于ARM SOC)和C,这将要求您熟悉硬件编程。 对于2号,我会说C ++ / JAVA。我不推荐只有一个操作系统支持的语言(如C#)......