关于C:帮助开始编程?


Help getting started in programming?

学习计算机编程最简单的方法是什么?

有人能推荐一些有帮助的书吗?


我不知道你的处境如何,但我可以告诉你我的背景以及我是如何进入的(一段过去15或16年的历史)。

当我在小高中的时候,一年的圣诞节我得到了一个Mac Plus。它来自某个工程师,他有一些很酷的程序:Hypercard和Basic是我的最爱。你可以把hypercard想象成一种类似于网络前的编程环境。你可以用图形绘制像幻灯片这样的小功率点,然后编写脚本。所以我做了一个点击冒险和一些低俗的动画工作。然后,我在BASIC中编写了一个基于文本的侏罗纪公园游戏。这些都不是非常复杂,但它让我涉足编程,并帮助我学习基本的if-then结构。

高中时,我为TI-82图形计算器制作程序。没什么好奇怪的,我不是那种做俄罗斯方块克隆的人,但是我做了一些程序来帮助我上数学课。

我高中毕业后的第一份工作是在AT&T无线公司做客户服务。当我在那里的时候,我总是试图用Excel做一些酷的东西来向人们炫耀,这样我就能得到一些关注,然后离开那些该死的电话。我在Excel中做的第一件事引起了人们的注意,那是一个供应订购系统,它使用一个位于网络共享上的Excel电子表格作为数据库(哈哈,我讨厌人们现在这么做)。我用VBA编写了整个程序,并在Excel程序中创建了Win表单,使程序看起来更像一个真正的程序。它甚至有一些粗俗的加密,以防止任何人绕过我的表格,只是摆弄Excel数据本身。

这导致其中一名主管保护我访问本地ColdFusion Web服务器和数据库,以便将Excel应用程序移植到Web。我讨厌HTML。绝对讨厌。我强迫自己去玩,然后完成了这个项目。为此赢得了夏威夷之旅。

最后我离开了AT&T,因为我哪儿也不去(我被提升为内部技术支持,但在那里呆了四年,这还不够)。我在一家超小型公司找到了一份网页开发工作,得到了微薄的报酬(比如2.8万英镑之类的)。在那里我开始学习C(我在一时的野心中买下了Deitel&Deitel C书)。我选择C,因为我天真地认为它只是下一个版本的C++,因为我看到了很多工作。因此,在这个小公司工作了几个月后,我在一个拥有一千名员工的公司里找到了一份工作,其他人都说这是历史。

(哦,是的,我在某处也在当地社区学院上过C++课程)

在我的职业生涯中,我一直坚持这种自我驱动的学习模式,这让我在做什么方面非常成功。我现在正转向更多的以计算机科学为导向的学习,我的职业生涯正在发生变化,以反映这一点。你只要脚踏实地,通过做你一直喜欢的项目来学习,你的事业就会一直在上升。


我写了一本直接针对新程序员的书。我写这封信是为了在开始时帮助解决所有问题。在卖出了大量的拷贝之后,还没有一篇糟糕的评论。

PureBasic

purebasic-计算机编程入门指南。

  • 300页
  • 易于阅读和遵循布局
  • 包括许多图表来解释更详细的主题
  • 所有核心的完整参考语言功能
  • 关于如何使用本机的帮助帮助文件、IDE和可视化设计器
  • 编写良好代码的指导原则
  • 关于创建图形用户的教程界面
  • 二维和三维示例和说明图形和动画
  • 整个部门致力于简化高级主题
  • 包含Internet的大型附录链接和有用的图表
  • 完整的计算机科学词汇表培养新的程序员
  • 所有编程代码示例都可以下载的

您可以在此处找到可下载的副本:

http://www.purebasic.fr/english/viewtopic.php?t=37059

编辑:这本书现在已经在一个创造性的共享许可下发布,现在可以免费下载。


学习编程

我已经编程20多年了,发现这本书真的很有趣。


我开始学习编程的方法是找到一个简单的程序,然后改变它来做一些稍微不同的事情。只是试一下……如果您破坏了它,请撤消您的更改并找出它们破坏它的原因。


这是我能想到的第一件事:链接


试试Python。下载activepython并使用"如何像计算机科学家一样思考",这是一本免费的电子书,可以很好地为初学者解释问题。Python以易于阅读的语法而闻名。

另外,去试试Ruby,它将向您介绍如何在Ruby中使用一些基本功能,而不需要任何知识。


我推荐克里斯·派恩的《学习编程》作为一本好书。这本书使用了Ruby并扩展了ChrisPine的免费在线教程。您可以在本书的http://pine.fm/learntoprogram/上找到教程和更多信息。

在你通过"学习编程"工作之后,解决一些小难题可能比阅读其他书籍更有帮助。大多数关于编程语言的书都遵循相同的结构(即从"你好世界"开始)。-编程,然后覆盖条件和循环,然后介绍面向对象编程和错误处理)。在那些书中人为设计的范例程序上工作将很快令人厌烦。

相反,选择一种你想学习的语言(或者坚持使用Ruby),在网上找到一个很好的参考资料,并找出如何让"学习到编程"中的一些例子在该语言中工作。之后,尝试用这种语言解决一些小问题,比如数独或N皇后问题,或者实现一些著名的算法(例如Quicksort和Dijkstra的算法)。你可以在rubyquick上找到更多的谜题。当你觉得用一种语言来解决难题很舒服之后,试着用另一种语言来解决它们,或者学习用你喜欢的语言来编程图形用户界面。

(*)不要只是阅读示例程序。请确保将它们输入到您自己的计算机中,并尝试对示例进行小的更改。这样更容易理解编程语言是如何工作的。


在我看来,你不应该为了学习计算机编程而真正地学习计算机编程。试着找到一个你想要完成的小项目,然后学习完成这个项目所需要的东西(语言、技术等)。

如果你已经知道这个领域(例如"我想学习C编程"),这就更好了,在这个领域选择一个项目,并尝试学习完成这个项目所需要的一切。

这是因为计算机编程领域非常大(从Web应用程序到鼠标驱动程序,你可以做很多事情),而且你可能不想浪费时间去学习一些你不会用到的东西。


StaveJava——Android的交互式Java教程。

https://play.google.com/store/apps/details?id=com.assoft.startjava

http://www.en.assoft.ru/startjava


在我看来,语用程序员系列有非常好的入门书籍,供初学者阅读,内容涉及各种主题。您可能想看看使用Ruby编写的"学习-编程"程序。


首先,选择一个你有别人期望的项目。找一个需要程序来完成一些简单任务的同事、家人或朋友。这样,你就不可能轻易地得到好的老的"侧项目衰退",并且永远不会经历开发周期最后10%的关键折扣。

到达一个用户发现错误并遇到可用性问题的地方是非常重要的。在此之前的所有事情都可以被认为是一派胡言,因为您的唯一目标是满足自己,而不是满足您的编程工作的主要消费者。一旦你必须开始处理可用性问题和可维护性问题,当你真正开始学习的时候。

第二,读实用程序设计员和神话人物月。这两本书都可以让非程序员摸索,帮助你学会如何学习,而不是学习什么。始终关注良好的实践,而不是特定的语言语法或框架。一种语言的"if"条件和另一种语言一样工作,但是学习如何负责任地有效地开发程序是使您成为一个好的程序员的原因。


想到了几种不同的方法。一个是你真正喜欢的应用程序,看看你是否能创建这些特性的子集。这看起来可能很多,但它会把你的注意力集中在寻找资源上,甚至可能是一些简单的参考资料,比如如何完成某件事情。从这个练习中,你将学习词汇和概念,随着你的进步,这些词汇和概念必须进一步理解和发展。

另一种创建批处理命令/实用程序/宏的方法,可以自动执行系统上的功能。这将向您介绍变量、命令、逻辑等的概念。您可以从中获得许多示例。这种方法可能对您有更直接的满足感,因为难度的范围或级别将更有限,并且您将更快地产生结果。

最后,你可以从一些书开始,讨论网络、计算机、脚本和编程,这些都是面向普通读者的。克利福德的《库克的蛋》是一本真正引人入胜的书,可以引起更深入的兴趣。这是一个很好的开端,它可以引入许多不同的概念,即使在今天,这些概念对于理解系统仍然很重要。


阅读K.N.King的《C编程:现代方法》(或类似的书),在编程环境中学习。

我甚至不再用C语言编程了,但是直到今天我仍然使用的编程的所有基本概念,多亏了那本书我才知道。