帮助开始编程?

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

任何人都可以建议一些有用的书吗?

我不确定你的情况是什么,但我可以让你了解我的背景以及我是如何进入它的(过去的历史像15或16年)。

当我在Jr.High时,我在圣诞节期间获得了一年的Mac Plus。 它来自一些工程师,他有一些很酷的程序:HyperCard和Basic是我的最爱。 您可以将HyperCard想象成一种类似于Web之前的网络编程环境。 您可以像带有图形的幻灯片一样绘制lil power point,然后编写脚本。 所以我点了点击冒险并得到了一些俗气的动画。 然后我基本编写了一个基于文本的侏罗纪公园游戏。 这些都不是非常复杂,但它让我涉足编程并帮助我学习基本的if-then结构。

在高中时,我为TI-82图形计算器制作了程序。 没有什么花哨的,我不是那些做俄罗斯方块克隆或任何东西的人之一,但我做了一些程序来帮助我完成数学课程。

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

这导致其中一位主管让我访问本地Cold Fusion网络服务器和数据库之一,以便我可以将我的Excel应用程序移植到网络上。 我讨厌HTML。 绝对讨厌它。 我强迫自己玩它并完成项目。 赢得了夏威夷之旅。

最后我离开了AT&T因为我不去任何地方(我被提升为内部技术支持但是在那里待了四年之后还不够)。 我在一家超级小公司找到了一份网络开发人员的工作,获得了微薄的收入(如28k或其他东西)。 在那里我开始学习C#(我在雄心壮志的时刻买了Deitel&Deitel C#书)。 我之所以选择C#,是因为我天真地认为它只是C ++的下一个版本,因为我看到了很多工作。 在这家小公司工作几个月之后,我在一家拥有近千名员工的公司找到了一个C#gig,其余的就像他们所说的那样。

(哦,是的,在那里的某个地方,我还在当地社区学院上了C ++课程)

在我的职业生涯中,我一直在继续这种自我驱动学习的模式,这使我在我所做的事情上取得了很大的成功。 我现在正在进入更多以计算机科学为导向的学习,我的职业生涯正在改变以反映这一点。 只需深入了解并通过做您喜欢的项目来学习,您的职业生涯将永远在不断发展。

学习编程

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

我写了一本直接面向新程序员的书。 我写它是为了帮助你开始时的一切。 在销售了大量副本之后,还没有一个糟糕的评论。

PureBasic http://sofzh.miximages.com/c%23/FrontCover.png

PureBasic – 计算机编程初学者指南。

  • 300多页
  • 易于阅读和遵循布局
  • 包含许多图表以更详细地解释主题
  • 所有核心语言function的完整参考
  • 有关如何使用本机Helpfile,IDE和Visual Designer的帮助
  • 关于编写好代码的指南
  • 有关创建图形用户界面的教程
  • 2D和3D图形和动画的示例和解释
  • 整个部分致力于简化高级主题
  • 包含Internet链接和有用图表的大型附录
  • 一个完整的计算机科学术语表,用于教育新程序员
  • 可以下载所有编程代码示例

你可以在这里找到一个可下载的副本:

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

编辑:本书现已根据创作公共许可证发布,现在可以免费下载。

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

我开始学习编程的方法是找到一个简单的程序并将其改为稍微不同的东西。 只是试验一下……如果你打破它,撤消你的改变,找出他们为什么打破它。

在我看来,为了学习计算机编程,你不应该真正学习计算机编程。 尝试找到您想要完成的小项目,然后了解完成该项目所需的内容(语言,技术等)。

如果您已经了解该区域(例如“我想学习C编程”),那就更好了,在该区域选择一个项目并尝试学习完成项目所需的一切。

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

我推荐Chris Pine的“学习编程”作为一本好书。 本书使用Ruby并扩展了Chris Pine的免费在线教程。 您可以在http://pine.fm/LearnToProgram/上找到该教程以及该书的更多信息。

通过“学习编程”工作(*)之后解决小谜题可能比阅读其他书籍更有帮助。 大多数关于编程语言的书都遵循相同的结构(即以“Hello World!”开头 – 程序,然后覆盖条件和循环,然后引入面向对象的编程和error handling)。 很快就会对这些书籍的人为的示例程序进行研究。

相反,选择一门你想要学习的语言(或坚持使用Ruby),在线找到一个好的参考资料,并弄清楚如何使用该语言编写“学习编程”的一些例子。 之后尝试用该语言解决像Sudoku或n-Queens问题这样的小谜题,或者实现一些着名的算法(例如Quicksort和Dijkstra的算法 )。 你可以在RubyQuiz找到更多的谜题。 在您尝试用一种语言解决谜题后,尝试用另一种语言再次解决它们或学会用您喜欢的语言编写图形用户界面。


(*)不要只是阅读示例程序。 确保将其键入自己的计算机并尝试对示例进行少量更改。 这样,理解编程语言的工作方式就容易多了。

试试Python。 下载ActivePython并使用“ 如何像计算机科学家一样思考 ”,这是一本免费的电子书,可以为初学者解释事情。 Python以易于阅读的语法而闻名。

另外,转到Try Ruby ,它将向您介绍如何使用Ruby中的一些基本function,而无需任何知识。

阅读KN King (或类似书籍)的“C编程:现代方法”,并在编程环境中进行操作。

我甚至不再用C语言编程了,但是到目前为止我仍然使用的编程的所有基本概念我都知道这本书。

想到几种不同的方式。 一个是你真正喜欢的应用程序,看看你是否可以创建这些function的子集。 它可能看起来很多,但它会集中在寻找资源,甚至可能是一些关于如何完成任务的简单参考。 通过本练习,您将获得在进步过程中需要进一步理解和发展的词汇和概念。

另一种创建批处理命令/实用程序/宏的方法,它将自动化系统上的function。 这将向您介绍变量,命令,逻辑等的概念。您可以从中汲取大量示例。 这种方法可能会给您带来更直接的满足感,因为难度范围或难度将更加有限,您可以更快地产生结果。

最后,您可以从一些讨论网络,计算机,脚本和编程的书籍开始,这些书籍面向普通读者。 Clifford Stole的Cookoo’s Egg是一本非常引人入胜的书,可以带来更深入的兴趣。 这是一个很好的入门者,可以介绍许多不同的概念,这些概念对于理解系统至关重要。

首先,选择一个你有另一个人期望的项目。 找一个需要程序来做一些简单任务的同事,家人或朋友。 通过这种方式,您无法轻松获得良好的旧“侧面项目萧条”,并且永远不会在开发周期中经历关键的最后10%。

到达用户发现错误并遇到可用性问题的地方非常重要。 之前的一切都可以被认为是绒毛,因为你唯一的目标是满足自己,而不是你的编程工作的主要消费者。 一旦你真正开始学习东西,就必须开始处理可用性问题和可维护性。

其次,阅读实用程序员和神话人月。 这两本书都可以由非程序员学习,并帮助教你如何学习而不是学习什么。 始终关注良好实践,而不是特定的语言语法或框架。 一种语言的“if”条件就像另一种语言一样,但学习如何以负责任和有效的方式开发程序是让你成为优秀程序员的原因。

在我看来, 实用程序员系列有很多关于各种主题的初学者的入门书籍。 您可能希望了解使用Ruby学习编程 。