关于c#:如何从头开始编程?

How to start programming from scratch?

我从来没有真正的编程经验,我的叔叔告诉我,如果我想开始编程,到这个网站寻求完全陌生的人的帮助。我知道几种语言的名字,但我一点都不知道。我14岁了,如果这算什么的话,我可以打字很快。我的一个叔叔想让我学C。所以我的问题是,C是一个好的开始的地方吗?如果不是的话,哪里是一个好的开始的地方,我该如何学习?


你可能想看看最新版本的head first c。它特别适合新来者——它专注于"有趣"的例子,而不是面向业务的例子。我个人并不喜欢这种学习方式,但它显然适合很多其他人。

但是,请确保您购买了最新版本(包括.NET 4)或最新版本的早期版本:早期版本有相当多的错误,但随着时间的推移,这些错误已得到纠正。


C是一种很好的语言。

这是一本很好的免费电子书。它不仅讨论了编程语言,而且还讨论了作为一个程序员意味着什么,以及如何专业地处理它。

正如乔恩在他的回答中所说的,head first c也是一本很棒的第一本书(和其他所有书籍一样,如head first html)。

您可以在这里免费获得Visual Studio Express编程环境(具有语法突出显示和IntelliSense的编辑器、编译器、调试器等),只需确保选择C版本即可。


C是一个不错的开始,但你可能会发现写网站更有趣。这很容易,每个人都能看到你做的很酷的事情,而且你已经有了开始做这件事的工具——仅仅是一个文本编辑器和一个网络浏览器。HTML和JavaScript也比C简单得多,也更简单,而且功能更强大。

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


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

这可能是一个你对写作感兴趣的游戏,或者是一个桌面或基于网络的工具,可以帮助你在学校或生活中获得一些东西。

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

学习编程而不解决实际问题就像学习用锤子、钉子和一小块木头建造房子。你可以学习锤子的基本力学,但是你永远也不会成为一个木匠,除非你必须面对你在建造有用的东西时遇到的问题。

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

我同意用几种语言做实验的海报。用不同的工具解决同一个问题可以让人大开眼界地了解这些工具的不同范例。


如果你的一个叔叔想让你学C,他可能会在几年后把你当成他的雇员。所以直接问他这是不是他的计划,说服他帮助你。

如果你叔叔对编程一无所知,只是因为他在某个地方听到了这个词而放弃了这个C建议,那么他可能会给你一个非常坏的帮助。

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

我的选择可能是Python,因为它几乎在任何平台上运行。对于初学者来说,你有两个非常有价值的教程,从非常不同的角度来教授编程,所以你可以选择最适合你的教程:官方的Python教程和Zed Shaw的"硬学Python"(不要害怕可怕的标题,这本书对初学者来说非常有价值)。

编辑:

看完评论后,我想再加几点。

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

仅仅在几年之内,那些或多或少认真地进行编程的用户群体就真的爆发了。早在那时,就有sourceforge——一个完全与程序员相关的怪物。现在有LaunchPad、BitBucket、GitHub(最近超过了1000000个存储库,其中大部分是由免费许可管理的小型个人宠物项目)。其中有多少项目正在使用C?

今天的编程比以往任何时候都更注重重用或"窃取"(从好的意义上说)代码。成群结队的C项目、小型通用图书馆在哪里?虽然有些编写专有软件的程序员对新手没有太大帮助(因为他们把它看作是咨询,他们可以为钱而做),而有些编写免费软件的程序员也没有太大帮助(因为他们缺乏社交技能),但代码更为重要。你不只是通过阅读书籍来学习编程,而是通过学习工作代码来学习编程。自由软件生态系统提供了更多的代码来研究。

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

  • 避免使用专有资料,接触大量免费软件,冒着被称为"匿名互联网精英"的风险。
  • 忽视专有与自由圣战,冒险去感受专有软件的真正含义,以及它如何破坏一个好的意图,就像这个家伙


编程有很多内容,但它可能被分解为几个关键元素:

  • 理论
  • 工艺
  • 方言

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

手艺有经验。

这就剩下了方言……或者更确切地说,是你想流利使用的特定语言。

要回答这个问题,需要列出一长串你打算做什么。如果你真的没有什么特别的方向可以进入,你的"叔叔想要你学习它"也许是一个很好的理由。


我想说,我可以使用一些热门语言,比如C、Python、Ruby。我这么说的原因是,我认为喜欢一种语言有点像发展味蕾。我认识许多人,他们厌恶编码仅仅是因为大括号和语法糖。我想救你的就是不要被语法所吓倒,把它扔掉。


我相信C是一个很好的起点。你对14岁的编程真的很感兴趣。

我建议拿起一本C书读一读。当你遇到这些例子时,请遵循它们。

我最喜欢的C书之一是安德鲁·特罗尔森写的:Pro C with.NET 4.0是他的最新一本书。:)

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


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

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

当然,你可能想考虑一下你要为什么计划。如果你想做网络工作,C是一个很好的基础,但怀疑你会把它用于网络工作,除非你正在做一些非常深入的工作。目标C用于iphone和ipad的开发,所以你不能错误地学习它。

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

PHP非常容易学习,如果您想进入Web开发,它将非常好地为您服务。如果你走这条路的话,你应该了解HTML,CSS,并且至少熟悉数据库的mysql。仅供参考,PHP开发人员在编程领域一文不值,所以不要指望发财,除非你想自己经营自己的网络公司,自己做这个网站。

在任何情况下,MVC(模型-视图-控制器)都是一个重要的东西。当您的代码结构良好时,为您自己和任何其他可能需要从您离开的地方获取信息的人维护代码是非常容易的。

玩得高兴。


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

学术知识:

  • 了解理论-掌握编程理论、语言设计理论、所用架构背后的理论
  • 知道数学-所有的编程最终归结为数学-知道谓词逻辑,三角,向量,几何,(基本)集理论,图表,基本矩阵理论,一点数值分析也不会伤害-以及复杂性理论
  • 了解你的语言-找本书,读它,做笔记以备参考。对于C http://www.amazon.com/pro-2010-net-platform-fifth/dp/1430225491/ref=sr 1ie=utf8&s=books&qid=1281215548&sr=8-1很好。然后阅读博客和视频,学习使用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是我最喜欢的,但还有其他的。
  • 了解你的生态系统——了解外面有哪些图书馆,学习如何使用其中一个或两个最好的图书馆。

技能:

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

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


没有最好的方法,但从这里开始:

速成版

它们是免费的,你有很多选择。


这是你对编程做出承诺的一项资产。从对工作环境的敏锐了解开始通常是有利的。问一些基本问题,比如哪些工具已经可以用来完成日常任务?尽可能多地和他们一起玩;当他们行为异常时,问他们为什么?试着在网上找到解决办法。以后,也许你会想在某个时间享受基本的HTML;在C-Sharp或任何其他编程语言中四处走动;因为最后你自己会发现程序员和编程语言之间的联系。

希望它有帮助


我在半个多年前开始C++编程时,有了一个很好的编程开始。我自己也大约十三岁。C很像C++(虽然有不同之处),所以从经验来看,我会说是的,这是一个好的语言。

至于参考书,只要在你当地的书店里买几本书,然后开始用你的方式浏览它们。我就是这么做的。如果你想从C++开始,我确信有一个很好的参考名为"傻瓜"的C++。这就是我开始的地方。


无论你选择哪种语言(C没有错)。挑选一本好书或资源,这里提到一些。一旦你做到了这一点,一定要手工操作这些例子,然后在电脑上把它们具体化到你的瓜里。

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


我不会选择纯粹的C,因为它不是完全免费的,完整的Visual Studio非常昂贵。看一下python,它在许多方面强制您正确地编程,同时忽略了编程(和;)中一些更烦人的方面。如果你选择学习python,有一个免费的网站,上面有关于如何制作简单的基于文本的游戏的教程。在开始我的当前项目之前,我用它来熟悉语言。

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


用十个手指打字的能力是有用的,因为你可以做越来越多的练习而不会使你的肌肉很快疲劳。我第一次用电脑,只是用右手食指打字,很快就累了---打字成了噩梦!

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

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

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


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


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

    我建议根据你现在想做什么来选择。例如,假设你在学习的时候有兴趣做一些简单的游戏(比如青蛙或者1943年的时候,把范围缩小)。您可以使用解释语言(如python或ruby)快速制作二维游戏(两者都提供免费的游戏库)。也许你可以在Java或C上做更多的工作,并有空间成长为更高级的游戏功能。或者你可以在Objective-C和Cocoa中制作它们,这会限制你在Mac上开发,但也会打开在iPhone上发布游戏的可能性。

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

    快速学习最重要的是你喜欢你正在进行的项目,并且非常感兴趣。如果你真的不想用一门语言做任何事情,学习它似乎是不可能的。另一方面,如果你很快开始从事感兴趣的项目,并且热衷于解决你为自己设置的问题,那么你可以在6个月内成为一名出色的程序员。此外,你只有14岁,所以你可以选择将你的生活和事业推向一个既能给你带来收入又能让你在工作中享受的方向。


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

    好吧,对于第一个,这将是装配(即ARM SOC)和C,这将需要您熟悉硬件编程。对于第2,我会说c++/java。我不建议只由一个操作系统支持的语言(如C)…