What is the easiest/most effective way to learn De

2020-05-11 09:55发布

I am totally new to programming and I have chosen Delphi as the programming language that I would like to learn.

I basically want to build tools that will fill and submit web forms using sockets and I want them to be multi threaded as well.

I would love for them to be feature rich and perform correctly.

I am in no real rush to do this as I do understand that it takes time to become efficient at anything (especially programming). However, I do want to take the shortest path that I can in learning.

If it were possible I would love to go to school to learn the language but it seems like there are no schools in the US that teach it.

I have found quite a good bit of information on the internet that has helped me gain a basic knowledge of how things work inside the IDE and how to build basic apps but I want to be able to build really good apps that these tutorial do not teach me how to do.

So.. My question is how do I go about becoming an expert Delphi programmer without having any "Real Teacher" to guide me? How did you guys learn?

Would learning another programming language with the help of a teacher and them coming back to delphi make sense?

标签: delphi
11条回答
beautiful°
2楼-- · 2020-05-11 10:37

It seems not everyone can be a good programmer (see also Joel's comment) as some people seem to have lot's of trouble understanding basic concepts like pointers and recursion, which are indicators that some problem solving skills are in deficit. Maybe you're that kind of person, maybe not.

Said that, I think that you should first learn problem abstraction, programming logic, then at least learn the purpose of basic data structures (arrays, lists, dictionaries, records, classes, trees, etc) and some basic software design (MVC, maybe object oriented design concepts, etc).

Dijkstra seems to argue that is better to be able to fully understand the problem and build a solution before writing any code as, according to him, that leads to better quality software.

Get good books on programming and data structures. Taking classes is also a good idea, it doesn't matter if they're specifically for Delphi as the concepts of software design don't rely on a specific language and knowledge can be transfered from one language to the other.

Obviously you should try to put in practice what you've learnt. Practice a lot, but try to really understand what you're doing, and when thing go wrong, try to understand why.

Anyway, if what you really want is to build one application then skip all above and go the trial and error approach.

查看更多
时光不老,我们不散
3楼-- · 2020-05-11 10:39

Just program whatever seems fun, solve problems as they arise and eventually you'll be an expert.

There are three tips to remember.

  1. If you encounter a problem too big to swallow in one gulp, split it into smaller problems and solve those one by one.

  2. When in doubt, always choose the simplest solution, then upgrade as needed.

  3. Google knows everything. If you're unsure what to look for, read the theory until you know that.

For instance, you say that you

want to build tools that will fill and submit web forms using sockets and I want them to be multi threaded as well.

Split this into smaller problems. You don't need multi-threading from the start, so set it aside. Your initial task is just to learn how to submit forms at all.

How to do that? Google around, read Wikipedia articles on HTTP and everything related until you know the basics. You don't have to understand peculiar details yet, only to get general concepts of what components are there and how are they related.

Then choose the simplest solution. You don't want to use sockets from the start. If there are ready components for sending HTTP requests, you should use them until you know how to do the same thing manually.

查看更多
ら.Afraid
4楼-- · 2020-05-11 10:45

These answers are great and you probably got enough information to learn Delphi, but I would like to add some of my training solutions as well. It is aimed at the absolute beginner and builds on previous knowledge learned from the stuff.

Delphi Programming Playlist on YouTube: https://www.youtube.com/playlist?list=PLfrySFqYRf2dKxG1Xd1sJaEMtoVTeL5dw

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

Delphi Programming App on Windows Store: https://www.microsoft.com/en-us/store/p/delphi-programming-helper/9mtrd2ptbvcp

I hope this helps you.

查看更多
Luminary・发光体
5楼-- · 2020-05-11 10:50

Former Delphi Product manager Nick Hodges created 30 video demos targeted to those new to Delphi and the object-pascal language. UPDATE 2017: That link is dead, videos can now be accessed thanks to archive.org here.

The videos take the viewer through the basics of the IDE, the language, and each demo mostly builds on the previous one in order to ultimately create a not too shabby GUI text editor.

If you are new to Delphi, this is a great place to start with the language and I’d highly recommend investing the time and watching the videos. I’ve seen them all and it helped me quite a bit.

The video demos use Delphi 2006, but these demos are entirely valid on any newer (and probably the older Delphi releases) version as well. Here are the topics covered in the videos:

NOTE: If the videos are no longer accessible on the originally hosted page, you can still obtain them from archive.org: https://web.archive.org/web/20130630143102/http://blogs.embarcadero.com/nickhodges/2006/08/15/26687

Download the ZIP file for each topic, which contains the video for that topic.

  • 1 – Intro to the IDE
  • 2 – Hello World
  • 3 – Basic Application Development
  • 4 – Language Introduction
  • 5 – More Lanugage Intro
  • 6 – Basic String Manipulation
  • 7 – Basic Datatypes
  • 8 – Sets
  • 9 – Arrays
  • 10 – Records
  • 11 – Basic Data
  • 12 – Simple Class
  • 13 – Procedure and Functions
  • 14 – Units
  • 15 – Inheritance
  • 16 – Polymorphism
  • 17 – Why OOP
  • 18 – Properties
  • 19 – Member Visibility
  • 20 – Constructors and Destructors
  • 21 – TurboPad: About Box
  • 22 – TurboPad: File Open
  • 23 – TurboPad: File Menu
  • 24 – TurboPad: Saving
  • 25 – TurboPad: Edit Menu
  • 26 – TurboPad: Toolbar
  • 27 – TurboPad: Word Wrap and Fonts
  • 28 – Live Templates
  • 29 – Refactorings
  • 30 – Debugger

And once you get through the videos, head over to the Delphi Basics website and bookmark it. Seriously, I still use this website about 10 times a day for reference on Delphi.

I'd also recommend reading delphi.about.com's "A Beginner's Guide to Delphi Programming", which is a nice primer to Delphi programming.

Also, IMO, for the most important (and best) resource for learning Win32 API is Mark Russinovich's Windows Operating Systems Internals Curriculum which is offered for free.

It is designed to be used by an instructor to teach students. I went through it and it is awesome. Full of examples, history, and detailed explanations. In my opinion, this is an ideal way to learn the Windows API.

查看更多
够拽才男人
6楼-- · 2020-05-11 10:50

If it were possible I would love to go to school to learn the language but it seems like there are no schools in the US that teach it.

Here is a pretty extensive list of schools that teach either ObjectPascal(Delphi) or procedural Pascal. If you are enrolled as a student somewhere you can get an academic license for Delphi XE Professional for ~$99. Keep in mind that you can't develop commercial applications with the academic license.

So.. My question is how do I go about becoming an expert Delphi programmer without having any "Real Teacher" to guide me? How did you guys learn?

Language syntax isn't terribly difficult to master, especially with the hand-holding most IDEs give you. Learning the Delphi library (RTL/VCL) will take much longer. Not that its very difficult (just the opposite). There's just so much it has to offer. I've only been using Delphi for about 5 years but I know developers who have been programming in Delphi since version 1 that are still surprised by features they just weren't aware existed.

But even learning the library isn't what sets great developers apart from the rest. Its design skills that are the hardest to master. Knowing when to use inheritance and when to use composition. Knowing when to choose polymorphism or a conditional statement. Learning design and architectural patterns and learning when they are appropriate and when they are not. Learning how to go from identifying a problem to implementing the solution. Writing code that is easy to test and easy to maintain as new requirements arise.

Some of these skills you can learn from reading books or from a mentor. Others can only be learned through experience.

查看更多
登录 后发表回答