On Saturday, 18 October 2014 at 02:00:42 UTC, RBfromME wrote:
but i don't find the basics any easier to learn than D's. The biggest issue i personal find in getting deeper into a language is the docs and examples. The python examples, beyond the basics usually get write into OO so you find your self trying to figure out OO while trying to sift through the examples. Makes it a little harder to get going and figure out the available libraries while trying to figure OO at the same time.

If you find D more fun, then use D, but OO is little more than representing aspects of real physical objects in the computer:

If you want to write a program about cars you could group properties such as weight, top-speed and build-year and call that Vehicle, then add number of wheels and motorsize and call it Car or some other properties and call it Boat. Add a function print() to display all the info to each class Vehicle, Car and Boat. Then you can create a list of vehicles that store different properties for different types of vehicles while being able to treat all cars and boats the same when printing them.

That's basically it. Nothing magic.

The most important aspect of learning how to program is what universities tend to call "datastructures and algorithms". The basics is probably just 2-4 weeks.

If you already know Python a little bit you could try to use educational resources for Python and translate it into D, e.g.:

http://interactivepython.org/courselib/static/pythonds/index.html

The nice thing about Python that it is very close to what is called "pseudo code", basically a shorthand used when sketching a program.

Summing it up, I personally think the hardest part in learning to use a specific language is the docs and and examples because they all throw you write into OO and you spend more time trying to figure out OO instead of how to use the standard lib or third party lib to get a basic task done.

You don't need to learn more OO than I wrote above, and perhaps not even that. What you need to learn to be productive in any imperative language is:

1. What an aggregate (of values) is, they are often called "record", "struct" or "class" and how to create them.

2. Arrays and the provided operations on them (can be in language or libraries)

3. How to create links between aggregates (called "references" or "pointers")

Then pick up an online course or book on data structures and algorithms. Introductory books and courses teach roughly the same stuff, so pick anyone you like.

Understanding libraries and their documentation becomes much easier when you know the basic terminology about data structures and algorithms. One of the most entertaining and useful courses in computer science.

Reply via email to