【问题标题】:What is the easiest/most effective way to learn Delphi?学习 Delphi 最简单/最有效的方法是什么?
【发布时间】:2010-11-29 15:49:02
【问题描述】:

我对编程完全陌生,我选择 Delphi 作为我想学习的编程语言。

我基本上想构建可以使用套接字填充和提交 Web 表单的工具,并且我希望它们也是多线程的。

我希望它们功能丰富且性能正确。

我并不急于这样做,因为我明白任何事情(尤其是编程)都需要时间来提高效率。但是,我确实想走最短的路来学习。

如果可能的话,我很想去学校学习语言,但似乎美国没有学校教授它。

我在 Internet 上找到了大量信息,这些信息帮助我获得了有关 IDE 内部工作原理以及如何构建基本应用程序的基本知识,但我希望能够构建这些教程中真正优秀的应用程序不要教我怎么做。

所以.. 我的问题是如何在没有任何“真正的老师”指导的情况下成为一名专业的 Delphi 程序员?你们是怎么学的?

在老师的帮助下学习另一种编程语言并让他们回到 delphi 有意义吗?

【问题讨论】:

  • @Tim:Ruby 和 Python 对我来说似乎更“时髦”。
  • @Tim:这不是小众语言;它是一种通用语言,可用于任何事情,包括 Web 开发。 Delphi 社区中至少有一位知名博主 Marco Cantu 使用 Delphi 编写了他的网站。
  • @Tim Robinson:不,没有停止,只是走错路了
  • @Tim:不,实际上发展势头强劲。自从 Delphi 从 Borland 分拆出来后,三个版本对语言的改进比从 D7 到分拆的整个时期都要多。
  • 我之所以选择 Delphi,是因为这些年来我使用了大量的软件,而且似乎我每天喜欢和使用的每一个软件都是使用 Delphi 编写的。使用 VB 或 C# 制作的所有其他软件似乎有点错误,并且永远无法以使用 Delphi 制作的软件的方式执行。我相信这对某些人来说可能听起来有点傻,但这就是事实。除此之外,我真的比我尝试过的其他 IDE 更喜欢 IDE。

标签: delphi


【解决方案1】:

前 Delphi 产品经理 Nick Hodges created 30 video demos 面向那些刚接触 Delphi 和 object-pascal 语言的人。 2017 年更新:该链接已失效,现在可以访问视频thanks to archive.org here

这些视频向观众介绍了 IDE 的基础知识、语言,每个演示大多建立在前一个演示的基础上,以最终创建一个不太简陋的 GUI 文本编辑器。

如果您是 Delphi 的新手,那么这是一个伟大从语言开始的地方,我强烈建议您花时间观看视频。我都看过了,对我帮助很大。

视频演示使用 Delphi 2006,但这些演示也完全适用于任何较新(可能是较旧的 Delphi 版本)版本。以下是视频中涵盖的主题:

注意:如果在最初托管的页面上不再可以访问视频,您仍然可以从 archive.org 获取它们: https://web.archive.org/web/20130630143102/http://blogs.embarcadero.com/nickhodges/2006/08/15/26687

下载每个主题的 ZIP 文件,其中包含该主题的视频。

  • 1 – IDE 简介
  • 2 – 你好世界
  • 3 – 基础应用开发
  • 4 – 语言介绍
  • 5 – 更多语言介绍
  • 6 – 基本字符串操作
  • 7 – 基本数据类型
  • 8 – 套
  • 9 – 数组
  • 10 – 记录
  • 11 – 基本数据
  • 12 - 简单类
  • 13 – 过程和功能
  • 14 – 单位
  • 15 – 继承
  • 16 – 多态性
  • 17 – 为什么选择 OOP
  • 18 – 属性
  • 19 – 成员可见性
  • 20 - 构造函数和析构函数
  • 21 – TurboPad:关于 Box
  • 22 – TurboPad:文件打开
  • 23 – TurboPad:文件菜单
  • 24 – TurboPad:节省
  • 25 – TurboPad:编辑菜单
  • 26 – TurboPad:工具栏
  • 27 – TurboPad:自动换行和字体
  • 28 – 实时模板
  • 29 – 重构
  • 30 - 调试器

看完视频后,请前往Delphi Basics 网站并将其加入书签。说真的,我仍然每天使用这个网站大约 10 次,以供在 Delphi 上参考。

我还建议阅读delphi.about.com 的“A Beginner's Guide to Delphi Programming”,这是一本很好的 Delphi 编程入门书。

另外,IMO,学习 Win32 API 的最重要(也是最好的)资源是免费提供的 Mark Russinovich 的 Windows Operating Systems Internals Curriculum

它旨在供教师用来教授学生。我经历了它,这太棒了。充满了例子、历史和详细的解释。在我看来,这是学习 Windows API 的理想方式。

【讨论】:

  • 这怎么会被否决?这主要是关于个人经验 - 尽可能准确地回答这样的问题..
  • 30 天的 30 个 Camtasias 视频仍然受到如此多的关注,这让我感到震惊和受宠若惊。
  • 我实际上已经观看了所有这些视频(两次),这有助于我对事物有一个基本的了解,但正如我在我的问题中所说,我希望获得更高级的知识,所以我很快就可以开始制作一些真正的应用程序了。
  • 查看 Wintellect 的 Jeffrey Richter 撰写的“Windows via C/C++”,了解 Windows 编程的高级主题。这将要求您将代码示例(可在 Jeffrey 的网站上免费获得)从 C/C++ 转换为 Delphi,这也是更好地理解 Delphi 的一个很好的练习。
  • Archive.org 有每个视频的 ZIP 文件的工作链接,其中还包含视频:web.archive.org/web/20130630143102/http://blogs.embarcadero.com/…
【解决方案2】:

只需编写任何看起来有趣的程序,解决出现的问题,最终您将成为专家。

要记住三个提示。

  1. 如果您遇到一个大问题,无法一口气吞下,请将其拆分为较小的问题,并一一解决。

  2. 如有疑问,请始终选择最简单的解决方案,然后根据需要进行升级。

  3. Google 无所不知。如果您不确定要寻找什么,请阅读理论,直到您知道为止。

例如,你说你

想要构建将使用套接字填充和提交 Web 表单的工具,并且我希望它们也是多线程的。

把它分解成更小的问题。你从一开始就不需要多线程,所以把它放在一边。您最初的任务只是学习如何提交表单。

如何做到这一点?到处谷歌,阅读关于 HTTP 的 Wikipedia 文章以及所有相关内容,直到您了解基础知识。您不必了解特殊的细节,只需了解其中的组件以及它们之间的关系的一般概念即可。

然后选择最简单的解决方案。您不想从一开始就使用套接字。如果有用于发送 HTTP 请求的现成组件,您应该使用它们,直到您知道如何手动执行相同的操作。

【讨论】:

  • 我完全同意这一点,但问题是我有时在尝试解决最小的问题时似乎无法找到问题的答案。例如,我现在的目标是学习使用套接字提交一个简单的 Web 表单,但我在任何地方都找不到信息。到目前为止,我已经买了 3 本书,它们基本上都教给你同样的东西。当然,如果我继续使用它,我最终会通过反复试验及时弄清楚,但如果有可用的方法,我更愿意采用更简单的方法来学习它。
  • 您应该查看 TWebBrowser 组件以发布到网络表单,例如:delphifaq.com/faq/delphi/network/f249.shtmlgoogle twebbrowser 并发布网络表单
  • 我在业余时间自学(从delphi6开始)。在网上大量阅读书籍,然后“做”。自己的想法很好。慢慢来,根据你花在学习上的时间,你可以慢慢变得体面。一开始就尽量简单。
【解决方案3】:

我是一名自学成才的程序员。我从 12 岁开始编程,当时我接触了 Delphi 4 Personal,它在计算机杂志上免费分发。 (是的,这就是为什么今天我是 Delphi 专家的原因。回想起来,因此,Borland 制作个人版是一个非常富有成效的战术决定。当然,他们有大量的开发人员这样。)

我通过学习示例和反复试验学到了一切。这花了好几年的时间,但它确实奏效了。另外,由于Delphi是原生的Win32编译器,所以要掌握Delphi开发,就需要掌握Win32开发。一个非常宝贵的资源是MSDN 和一般的 Win32 编程书籍(例如微软传奇人物 Raymond Chen 的The Old New Thing)。另外,别忘了还有很多有趣的good Delphi blogs

另外,to push further as a programmer,你需要在“硬”的事情上练习。

【讨论】:

  • 值得注意的是,VCL 和其他标准库组件在抽象出大部分 Win32 内容方面做得很好。您最终可能需要学习其中的一些内容,但您不必成为 Win32 大师也可以使用 Delphi。 (尤其是即将推出的跨平台版本。)
【解决方案4】:

几年前,我尝试学习 Delphi,然后沮丧地放弃了。我是自学的,文档不完整和当前书籍很少。事后看来,过时的书籍并不像较新的书籍那样有问题,因为较新的书籍是为同时了解 Pascal 和 Delphi 的读者编写的,因此为新手遗漏了许多重要信息。我正在移植一个 VB6 项目,最终使用了 .Net,鉴于我在 VB 和 Java 方面的经验,我更熟悉它。

就在最近,我不得不编写一个快速的小实用程序,它需要一些直接的 Win32 功能,我认为这对 Delphi 来说是一个很好的项目。小,快,Win32。我掸掉我的执照,又开始四处寻找。在随后的几年里,我学习了更多的语言,并且比我之前的尝试更少被 Pascal 语法难倒。几个小时后,我完成了我的任务,我决定尝试多学一点。

到目前为止,Delphi 5 Developer Guide 给我留下了深刻的印象。它让我对 VCL 和 Delphi 的优雅大开眼界。还有更新的版本,但我认为这个版本可能是最好的,因为它处理的是在现已解散的 Kylix 项目之前的 Delphi 版本。为 2006 至 6 版编写的书籍花费了太多时间来描述 Kylix 或 Delphi.Net,这两者都是死的,而且对花时间学习毫无用处。 Delphi 5 的书与以后的版本一样长,但是所有这些页面都花在了 VCL 的 Win32 特性和一些非常有价值的 Pascal 教程上(这对于我们这些上学时没有学习过 Pascal 的人来说很方便) .

您如何了解自 Delphi 5 以来发生的任何新内容?我认为 Bob Swart 的简短更新书籍可能是最好的。你可以找到他们here。很多人也喜欢 Marco Cantu 的书,但我个人认为他的书并不是很有用。

祝你好运!我期待阅读更多建议。

【讨论】:

    【解决方案5】:

    我基本上想构建工具 将使用 插座,我希望它们是多的 线程也是如此。

    如果我理解你的正确尝试......你是从艰难的开始......

    我在 Delphi 中编程(Windows 应用程序)已经有很长时间了,我第一次尝试多线程 http 服务器对话(使用 Indy)惨遭失败 - 即使在第一次尝试时它确实有效(有点)但真的这是悲惨的失败。所以多线程是“棘手的”或者只是很难,也许。

    要填写和提交网络表单——首先要弄清楚如何填写在线表单本身——这会让你了解正在发生的事情,你可以使用 TWebBrowser 组件相当合理地做到这一点(我刚刚完成了)。然后弄清楚如何按下在线表单上的提交按钮。请记住,您将处理一个从您身上移除并且您无法最终控制的流程。祝你好运(你也需要毅力)。

    【讨论】:

      【解决方案6】:

      如果您想成为 Delphi 专家,您还需要成为 Windows 专家……除非我误解了您的意图。两个很好的资源是:

      您必须将样本转换为 Delphi,但是,这也是很好的做法。

      正如我在其他答案中提到的,请查看免费提供的 Mark Russinovich 的 Windows 操作系统内部课程。您不仅会了解 Windows 的工作原理,而且是一门很好的“操作系统 101”类型的课程。

      【讨论】:

        【解决方案7】:

        如果可能的话,我很想去学校学习语言,但似乎美国没有学校教授它。

        Here 是一个相当广泛的学校列表,它们教授 ObjectPascal(Delphi) 或程序 Pascal。如果您在某处注册为学生,您可以获得 Delphi XE Professional 的学术许可证,价格约为 99 美元。请记住,您不能使用学术许可开发商业应用程序。

        所以.. 我的问题是如何在没有任何“真正的老师”指导的情况下成为一名专业的 Delphi 程序员?你们是怎么学的?

        语言语法并不难掌握,尤其是大多数 IDE 提供给您的手持式语言。学习 Delphi 库 (RTL/VCL) 需要更长的时间。并不是说它非常困难(恰恰相反)。它提供的东西太多了。我只使用 Delphi 大约 5 年,但我知道自版本 1 以来一直在使用 Delphi 编程的开发人员仍然对他们不知道存在的功能感到惊讶。

        但是,即使是学习库也不能让优秀的开发人员脱颖而出。它的设计技巧是最难掌握的。知道何时使用继承以及何时使用组合。知道何时选择多态性或条件语句。学习设计和架构模式,并在合适和不合适的时候学习。学习如何从发现问题到实施解决方案。随着新需求的出现,编写易于测试和维护的代码。

        您可以通过阅读书籍或向导师学习其中一些技能。其他的只能通过经验学习。

        【讨论】:

          【解决方案8】:

          我支持上面所说的。此外,我会说选择一个不平凡的项目并在 Delphi 中工作!一个您想要拥有的工具,但您还没有找到完全满足您需求的工具,甚至是您已经使用过的工具,您想看看是否可以在 Delphi 中开发类似的工具。这就是我学习 Delphi 的方式......(我还在学习。大约 3 个月前我开始在 Delphi 工作,但它不是我的第一语言,所以一些知识转移了。但想想看,我希望我先学会了 Delphi!) .你也可能已经听过很多次了,但是读过好的和写得好的代码!每次我了解一个新的 Delphi 函数时,我都会尝试花一些时间阅读它的实现,并且我通过这种方式学到了一些东西!

          【讨论】:

            【解决方案9】:

            德尔福很棒。

            我在美国的一间教室里通过为期三天的课程学习了这些工具。这是一个巨大的好处,也是一个巨大的起点。

            然后我回到办公室,开始编写我需要的程序,并且会实际使用,并且会继续使用相当长的一段时间。我不断改进程序。使用您开发的工具并了解用户的观点至关重要。

            要迈出下一步,成为一名优秀的程序员,不仅仅是学习工具。你应该接受一些正规教育来学习一些基本原则。在我学习 Delphi 之前,我有这个。这并不意味着你不能自学它们,但你不能通过反复试验来学习它们。

            了解design patterns

            考虑最佳做法。从本质上讲,利用最佳实践可以让您从别人的错误中学习,而不是从自己的错误中学习。如果其他人都以某种方式做某事,那是因为随着时间的推移,这种方法被证明是可靠的。

            采用常见的 UI 原则。如果您的 UI 的行为与其他人的一样,那么用户无需阅读文档即可知道如何使用它。

            了解软件开发生命周期,例如敏捷系统开发生命周期。

            您应该编写另一个文本编辑器并使用它。你还应该编写一些程序来做一些以前没有人做过的事情。

            今天写点东西。

            【讨论】:

              【解决方案10】:

              似乎not everyone can be a good programmer(另请参阅Joel's comment)因为有些人似乎在理解指针和递归等基本概念时遇到了很多麻烦,这些是一些问题解决能力不足的指标。也许你就是这样的人,也许不是。

              话说,我觉得你应该先学习问题抽象,编程逻辑,然后至少学习基本data structures的用途(数组、列表、字典、记录、类、树等)和一些基本的软件设计(MVC,也许是面向对象的设计概念,etc)。

              Dijkstra 似乎认为最好能够在编写任何代码之前充分理解问题并构建解决方案,因为据他说,这会带来更好的软件质量。

              获取有关编程和数据结构的好书。参加课程也是一个好主意,它们是否专门针对 Delphi 并不重要,因为软件设计的概念不依赖于特定的语言,并且知识可以从一种语言转移到另一种语言。

              显然,您应该尝试将所学知识付诸实践。多练习,但试着真正理解你在做什么,当出现问题时,试着理解为什么。

              无论如何,如果您真正想要的是构建一个应用程序,那么请跳过以上所有内容并采用反复试验的方法。

              【讨论】:

              • 从长远来看,我实际上想构建很多不同的应用程序。但现在我想从我想到的一个小项目开始,然后从那里开始。感谢您的意见。
              【解决方案11】:

              这些答案很好,您可能获得了足够的信息来学习 Delphi,但我也想添加一些我的培训解决方案。它面向绝对的初学者,并建立在从这些东西中学到的先前知识的基础上。

              YouTube 上的 Delphi 编程播放列表:https://www.youtube.com/playlist?list=PLfrySFqYRf2dKxG1Xd1sJaEMtoVTeL5dw

              Softpedia 上的 Delphi Programming Helper App:http://www.softpedia.com/get/Programming/Other-Programming-Files/Delphi-Execute-Files-Helper.shtml

              Windows Store 上的 Delphi 编程应用程序:https://www.microsoft.com/en-us/store/p/delphi-programming-helper/9mtrd2ptbvcp

              希望对你有帮助。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2010-09-16
                • 2010-11-04
                • 2022-10-05
                • 2014-10-08
                • 2010-09-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多