如何从头开始编程?

我从来没有真正的编程经验,如果我想开始编程,我的叔叔告诉我来到这个网站寻求陌生人的帮助。 我知道几种语言的名字,但我什么都不知道。 我十四岁,如果有什么需要,我可以打字。 我的一个叔叔想让我学习c#。 所以我的问题是,C#是一个很好的开始,如果不是,开始的好地方,我怎么学习呢?

你可能想看看获得最新版本的头一个C# 。 它特别适合新人 – 它专注于“有趣”的例子,而不是以商业为导向的例子。 我个人不是那种学习风格的粉丝,但很显然很适合其他人。

确保你购买最新版本(覆盖.NET 4)或最新版本的前一版本:虽然早期版本有不less错误,但随着时间的推移,这些错误已经得到纠正。

C#是一个很好的语言开始。

这是一个很好的免费电子书,让你开始。 它不仅讨论了编程语言,而且讨论了如何成为一名程序员,以及如何专业地处理它。

正如乔恩在他的回答中所说 – 头一个C#也是一个伟大的第一本书(所有其他书籍,如头一个HTML )。

您可以在这里免费获得Visual Studio Express编程环境(语法突出显示和智能感知编译器,编译器,debugging器等) – 只需确保selectC#版本即可。

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

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

如果你的一个叔叔想让你学习C#,那么他可能会在几年后把你看作是他的员工。 所以直接问他,如果这是他的计划,并说服他帮助你。

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

如果我是你,我可以自由地select我想要的东西,我当然不会selectC#,因为它把你与一个专有的操作系​​统联系起来(单声道是个玩笑,承认它)。

我的select可能是Python,因为它几乎可以在任何平台上运行。 你有两个非常有价值的初学者教程,从不同的angular度来看待教学编程,所以你可以select一个最适合你的教程 : 官方的Python教程和Zed Shaw的学习Python的艰难之路 (不要害怕吓人标题,这本书对初学者来说非常有价值)。

编辑:

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

这些C#程序员中有多less人编码有趣? 大多数使用微软技术的程序员都是专业的 – 这是他们的工作,他们是为了赚钱,他们中的大多数没有胆量承认他们的工作有时是枯燥的(即使是这样),因为这样的索赔是针对(咳嗽!)免费编程工具提供的基础设施文化的公司政策。

仅仅在几年之后,编程或多或less严重的用户社区就已经爆炸了。 回到那个时代,还有一个源代码 – 单一的与程序员有关的怪物。 今天有launchpad,bitbucket,github(最近超过1000000个仓库,其中大部分是由免费许可证pipe理的小型个人宠物项目)。 有多less项目正在使用C#?

今天的编程是关于重复使用或“偷窃”(在正确的意义上)的代码。 C#项目群,小型通用图书馆在哪里? 虽然一些编写专有软件的程序员对新手来说并不是很有帮助(因为他们把它看作是咨询,他们可以为此付钱),而一些编写自由软件的程序员也不是很有帮助(因为他们缺乏社交技能) ,代码更重要。 你不是只通过阅读书籍来学习编程,而是通过学习工作代码来学习它。 而自由软件生态系统提供了更多的代码来研究。

一般来说,编程人员有两个select:

  • 避免专有的东西,以被称为“匿名互联网精英”的风险获得大量的免费软件,
  • 忽略专有与免费圣战之间的风险,感受什么专有软件的意义,以及如何可以破坏一个良好的意图,像这个家伙

在我看来,学习编程或学习新的编程语言时,有一个重要的工具。 这个工具是“你真心想解决的问题”。

它可能是一个你有兴趣编写的游戏,或者一个桌面或基于networking的工具,实际上可以帮助你在学校或在你的生活中的东西。

如果你真的想要解决问题,总是会有免费的工具,教程和在线怪才帮助你学习如何解决问题。

学习编程而不解决实际问题,就像学习用锤子,钉子和一小片木头build造房子一样。 你可以学习锤子的基本机制,但是直到你必须面对在尝试构build有用的东西的时候遇到的问题,你永远不会是一个木匠。

之后,我认为C#是学习编程的一个伟大的通用语言。 还有一些非常棒的免费工具。

我同意用几种语言说实验的海报。 用不同的工具解决同样的问题,可以使这些工具的不同范式真正让人大开眼界。

编程有很多,但可能会分解成几个关键元素:

  • 理论
  • 手艺
  • 方言

理论只是需要大量的学习。 书籍,课程,试错,研究等

工艺有经验。

而这就留下了方言……或者说你想要stream利的特定语言。

要回答这个问题,需要一个长长的清单,说明你打算做什么样的事情。 如果你真的没有什么特别的方向,那么你的“叔叔要你学习”也许是一个很好的理由。

无论你做什么,都不要学习VB。 它教你糟糕的语法

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

我build议拿起一本C#书并阅读它。 按照他们来的例子。

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

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

我会说一些像C#,Python,Ruby这样的热门语言中的一点点。 我这样说的原因是,我觉得喜欢一种语言有点像开发味蕾。 我知道很多人只是因为花括号和糖分子而厌恶编码。 我想要拯救你的只是因为被语法吓倒而丢掉了

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

Express Editions

他们是免费的,你有很多select。

C#绝对是一个很好的开始,这里有一个原因:

C#是一个恰当的语言,它将非常强迫你知道你作为程序员正在做什么。 我从PHP开始我的编程生涯,这种语言是如此松散,你几乎不能搞砸了。 你可以做一些很酷的网站,但是如果你被雇用来做一些需要更强的语言的东西,他们永远不会知道自己有多可怕。 那时候,某些从未在PHP中使用的术语和数据types将会覆盖你。 回想起来,现在我知道很多编程语言,从PHP开始,开始编程是一个非常糟糕的方式,至less在我看来。 我不敢相信我在这个领域有工作,知道我从哪里开始。 Java也是一个很好的开始。 任何严格的编译语言,真的。 当你从严格的编译语言中知道基础时,像PHP这样的松散的东西可以轻松地添加到你的知识库中。

当然,你可能要考虑你想要编程的东西。 如果你想做networking工作,C#是一个很好的基础,但是,除非你正在深入研究一些事情,否则你会用它来做web工作。 Objective C用于iphone和ipad的开发,所以你不能错误的学习。

Java对networking有好处,现在是移动平台,所以它绝对是一个很好的投资。 Java的原则将帮助您编写更好的Web代码,并且如果您想稍后转向C,则将为您奠定良好的基础。 反之亦然,我猜。

PHP是非常容易学习的,如果你想进入网页开发,将会很好的为你服务。 你应该知道html,css,如果你走这条路线,至less要熟悉mysql的数据库。 只是供参考,PHP开发人员在编程领域是十分之一,所以不要指望这样做,除非你想运行你自己的networking公司,自己做网站。

无论如何,MVC(模型视图控制器)将是一个重要的事情来阅读。 当你的代码结构良好时,为自己和其他任何可能不得不从中断的地方维护起来要容易得多。

玩的开心。

复制我发布在这里的post: https : //stackoverflow.com/questions/3430705/3432079#3432079有两件事情得到处理:

学术知识:

  • 了解理论 – 掌握程序devise理论,语言devise理论,编程架构背后的理论
  • 知道math – 所有的编程最终归结为math – 知道谓词逻辑,trig,向量,几何,(基本)集合论,图表,基本matrix理论,小数值分析都不会伤害 – 复杂性理论
  • 了解你的语言 – 读一本书,阅读它,做笔记以供参考。 Apress标题适用于C# http: //www.amazon.com/Pro-2010-NET-Platform-Fifth/dp/1430225491/ref=sr_1_1?ie=UTF8&s=books&qid=1281215548&sr=8-1是很好的。 然后阅读博客和video,学习使用Redgate Reflector和MSDN帮助
  • 知道你的工具 – 对于C#这意味着Visual Studio 2010 – http://blogs.msdn.com/b/saraford/archive/2010/06/17/video-101-visual-studio-tips-in-55-minutes。; aspx是学习的好方法。 也得到一个体面的重构 – ReSharper是我最喜欢的,但也有其他人。
  • 知道你的Ecosysyem – 知道哪里有图书馆,学习如何使用一两个最好的

技能:

  • 知道如何定义一个项目 – 不pipe程序员有多好,如果你构build了错误的东西,你将会失败。
  • 知道如何devise – 学习面向对象devise的理论 – 四人帮软件模式是经典的,每个编码人员都应该了解它们。
  • 知道如何logging代码 – 这对于持久代码和在团队中良好工作至关重要。 写下来,logging下来,testing它=>重新使用它
  • 知道如何在一个团队工作 – 努力工作,玩得好,沟通良好。
  • 知道使用哪种工具 – 尽可能多地感受各种语言,实际语言,技术,图书馆等等,以便知道在哪种情况下使用哪种工具
  • 知道如何学习 – 从你周围的人,从networking,从文档,最重要的是从你自己的错误。

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

大约半年前,当我开始使用C ++的时候,我个人得到了一个很好的开始。 我也是十三岁左右。 C#很像C ++(虽然有差异),所以从经验上讲,我会说是的,这是一个很好的语言。

至于参考资料,只需在本地书店上购买一些书籍,并开始通过它们的方式。 这就是我所做的。 如果你想从C ++开始,我肯定知道有一个很好的参考,叫做“C ++ for Dummies”。 那就是我开始的地方。

无论你决定select哪种语言(C#没有任何错误)。 拿起一本好书或资源,这里提到一些。 一旦你完成了这个工作,一定要手工操作,然后在电脑上把它们变成你的瓜子。

这可能是非常明显的,但更多的例子,你可以工作,修改和制作自己的,看看他们如何工作,你会更快地拿起语言。 恕我直言,这是你如何真正开始学习和乐趣,因为你可以开始看到事情发生,并开始解决问题,并获得问题的背景,你不会刚刚阅读…

这是一项资产,你已经做出了承诺,prgramming。 从对你的工作环境的敏锐的理解开始,通常是有利的。 问一些基本的问题,比如什么工具可以做你的日常任务? 尽可能多地享受他们的乐趣; 当他们performanceexception时,问为什么? 试着在网上find解决scheme。 后来,也许你可能想要享受基本的HTML一段时间, 并围绕c-sharp或其他编程语言一路移动; 因为最后你自己会弄清楚程序员和编程语言之间的联系。

希望能帮助到你

我不会select纯粹的C#,因为它不是完全免费的,完整的视觉工作室非常昂贵。 看看python,它会迫使你以许多方式正确地编程,同时省略一些编程的更烦人的方面({和s)。 如果你select学习python,那么有一个免费的网站,上面有关于如何制作简单的基于文本的游戏的教程。 在开始我现在的项目之前,我用它来熟悉这门语言。

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

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

C#是一个很好的开始。 我build议的一件事是想一些很酷的东西,但不要太复杂,你想build立使用一些其他人build议在这个线程去build立它的参考书。 计算器是有趣的开始程序来build立(免责声明:我是一个math极客)。

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

如果你有很多时间,你可以按顺序开始学习下列主题:

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

任何广泛使用的语言是一个很好的起点。 一旦用一种语言完成了一些有用的项目,由于逻辑相似,拿起其他项目会更容易。

我build议根据你现在想做什么来select。 例如,假设你有兴趣在学习的时候做一些简单的游戏(想想青蛙或者1943年,保持小范围)。 你可以使用像Python或者Ruby这样的解释型语言来快速制作2D游戏(两者都有免费的游戏库)。 有了更多的工作,你可以使用Java或C语言来创build它们,而且还有更大的空间可以发展成为更强大的游戏function。 或者你可以让它们在Objective-C和Cocoa中,这会限制你在Mac上开发,但是打开在iPhone上分发游戏的可能性。

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

快速学习最重要的是你喜欢你正在做的项目,并且非常感兴趣。 学习一门语言似乎是不可能的,如果你真的不想做任何事情。 另一方面,如果你快速开始处理感兴趣的项目,并且对解决你自己设定的问题很狂热,你可以在6个月内成为一个非常好的程序员。 此外,你14岁,所以你可以select推动你的生活和职业方向,这将使你在工作中获得收入和享受。

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

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