Apart from the motivation or the reason why they got to SWI Prolog, to my point of view, real beginners in a language are those discovering the language “for the first time” = “where should i start”. I could add other beginners who are those coming from an imperative language, as the way Prolog works is totally different (same as the joke about “spaghetti programming” compared to structuring code correctly). Students coming from that second category often think that because they “know” another language Prolog is going to be super simple and if nothing is done to make it easy, most of them end up with a huge deception considering that Prolog is a headache making them lose time …
You have another level of beginners who are developpers skilled in some other languages and trying to gain time learning Prolog. Those ones understand the difference in between languages but time is precious …
As for categories : beginners / intermediate / skilled / experts are quite a good split.
At the end many reasons, many backgrounds etc. so the reason why people get to it do not matter. What matters for the future of Prolog and SWI prolog in particular is that they find something that make them want to learn more and use it … What everybody knows too from the web is that the landing page matters and that visitors do not spend time if they don’t find what they want … or they really really need to be motivated :-p
As for making learning easy knowing that the web made users be perpetual impatient and unsatisfied users :
- concrete short examples (what i name '2 lines examples)
- concrete longer examples to see a real use, what @Boris named “daylife” or some others could name “toys”
- real examples to understand how that works in a more complexe use
… i-e in those 3 cases, things done to learn on a try and retry basis.
As i also mentionned, many books on internet are good references but often outdated in their examples as Prolog evolved. Many also said that Stackoverflow is often not relevant as for its classification of what is good or bad solutions. And i don’t even talk about the fights in between the community members …
Personally i think that the page that @jan added is a good start in that way of making new users have a landing page … then examples on predicates pages are important to see a real use. Today i also pointed out the example of reverse/4 versus reverse/3 . Even if the latest is the bugging example (as showed in a few lines by @Jan) of Learn Prolog Now that you find in different sources, it is interesting to keep and document it as it is a way to better understand Prolog programming.
etc. i could also add that many people being from different horizons, the diversity matters too especially on the longer examples. Anyway a point to keep in mind (anyway it is the way i fell it) … programming is fun … and Prolog should be fun too …not just for the skilled or experts in Prolog … which means the importance of the community to open the doors sharing their knowledge and contributing.