学习Delphi最简单/最有效的方法是什么?

时间:2010-11-29 15:49:02

标签: delphi

我是编程新手,我选择Delphi作为我想学习的编程语言。

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

我希望他们能够提供丰富的功能并正确执行。

我并不急于这样做,因为我明白需要时间来提高效率(特别是编程)。但是,我确实想走最快的路径来学习。

如果有可能我会喜欢去学校学习这门语言,但似乎美国没有学校教它。

我在互联网上找到了相当多的信息,这些信息帮助我获得了IDE内部工作原理以及如何构建基本应用程序的基本知识,但我希望能够构建这些教程中非常好的应用程序不要教我怎么做。

那么......我的问题是如何成为一名专业的德尔福程序员而没有任何“真正的老师”来指导我?你们是怎么学习的?

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

11 个答案:

答案 0 :(得分:41)

前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 - Hello World
  • 3 - 基本应用程序开发
  • 4 - 语言介绍
  • 5 - 更多Lanugage简介
  • 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编程的一个很好的入门。

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

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

答案 1 :(得分:9)

只需编写任何看似有趣的内容,解决问题,并最终成为专家。

要记住三个提示。

  1. 如果您遇到的问题太大而无法吞下,请将其拆分成较小的问题并逐一解决。

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

  3. Google知道一切。如果你不确定要找什么,请阅读理论直到你知道。

  4. 例如,你说你

      

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

    将此分解为更小的问题。您从一开始就不需要多线程,因此请将其放在一边。您的初始任务只是学习如何提交表单。

    怎么做?谷歌周围,阅读有关HTTP的维基百科文章和相关的一切,直到你了解基础知识。您不必了解特有的细节,只是为了获得有哪些组件的一般概念以及它们是如何相关的。

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

答案 2 :(得分:5)

我是一名自学成才的程序员。我在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,你需要练习“硬”的东西。

答案 3 :(得分:4)

几年前,我试图学习德尔福,然后沮丧地放弃了。我正在独自学习,并且对于不完整的文档和当前很少的书籍感到困难。事后看来,过时的书籍并不像现在的书籍那样有问题,因为现在的书籍都是为了解帕斯卡和德尔福的读者而写的,从而为新手留下了许多关键信息。我正在努力移植一个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的书,但我个人并没有发现他的书很有用。

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

答案 4 :(得分:2)

  

我基本上想要构建那些工具   将使用填写和提交Web表单   套接字,我希望它们是多个   也有线程。

如果我理解你正在尝试的是什么......你正在努力开始......

我已经在Delphi中编程(Windows应用程序)很长一段时间了,我在多线程http服务器对话(使用Indy)上的第一次尝试失败了 - 它甚至在第一次尝试时确实有效(但有点)这是悲惨的失败。因此,多线程可能是“棘手的”,或者只是很难。

填写并提交网络表单 - 首先要弄清楚如何填写在线表单 - 这将教会你正在发生的事情,你可以用TWebBrowser组件相当合理地做到这一点(我刚刚完成了)。然后找出如何按在线表单上的提交按钮。请记住,您将处理从您身上移除并且您无法完全控制的流程。祝你好运(你也需要坚持不懈)。

答案 5 :(得分:2)

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

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

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

答案 6 :(得分:2)

  

如果有可能我会喜欢去学校学习这门语言,但似乎美国没有学校教它。

Here是一个非常广泛的学校列表,教授ObjectPascal(Delphi)或程序Pascal。如果您在某个地方注册成为学生,您可以以99美元的价格获得Delphi XE Professional的学术许可。请记住,您无法使用学术许可开发商业应用程序。

  

那么......我的问题是如何成为一名专业的德尔福程序员而没有任何“真正的老师”来指导我?你们是怎么学习的?

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

但是即使学习图书馆并不能让伟大的开发者与众不同。它的设计技巧是最难掌握的。知道何时使用继承以及何时使用组合。知道何时选择多态或条件语句。学习设计和建筑模式,并在适当时学习,何时不学习。学习如何从识别问题到实施解决方案。编写易于测试且易于维护的代码。

您可以从阅读书籍或导师那里学到一些技巧。其他人只能通过经验学习。

答案 7 :(得分:1)

我支持上面所说的话。此外,我会说选择一个非常重要的项目并在Delphi中进行工作!你想要拥有的工具,但你还没有找到完全符合你需求的东西,甚至是你已经使用过的东西,你想看看你是否可以在Delphi中开发类似的东西。这就是我学习德尔福的方法......(我还在学习。大约3个月前我开始在Delphi工作,但这不是我的第一语言所以转移了一些知识。但是考虑一下,我希望我先学习Delphi!) 。你可能也听过很多次了,但是读了很好的代码!每当我学习一个新的Delphi函数时,我都会花些时间阅读它的实现,并且我已经学会了几个东西!

答案 8 :(得分:1)

似乎not everyone can be a good programmer(另见Joel's comment)因为有些人似乎在理解指针和递归等基本概念方面遇到了很多麻烦,这些指标表明某些问题解决技能存在缺陷。也许你是那种人,也许不是。

说,我认为你应该首先学习问题抽象,编程逻辑,然后至少学习基本data structures(数组,列表,字典,记录,类,树等)和一些基本的目的软件设计(MVC,可能是面向对象的设计概念,etc)。

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

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

显然你应该尝试将你学到的东西付诸实践。练习很多,但试着真正理解你在做什么,当出现问题时,试着理解为什么。

无论如何,如果您真正想要的是构建一个应用程序,那么请跳过上述所有内容并进行试错法。

答案 9 :(得分:1)

德尔福很棒。

我在美国的一个教室里学习了这个工具,为期三天。这是一个巨大的好处,也是一个巨大的起步。

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

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

了解design patterns

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

拥抱常见的UI原则。如果您的UI与其他人的行为一样,那么用户将在不阅读文档的情况下知道如何使用它。

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

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

今天写点什么。

答案 10 :(得分:0)

这些答案很棒,你可能有足够的信息来学习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

我希望这会对你有所帮助。