On Sunday, 6 May 2018 at 00:35:19 UTC, Sameer Pradhan wrote:
I thought it might help if I mentioned that I successfully used D as one of three languages to teach the Programming Languages course at Vassar College last Fall.
--
Sameer

I can actually kind of relate to this.
For some background, I work at a company that offers traineeships in software engineering to technical graduates. The traineeship is basically a crash course in high level application development. Our main language to teach is Java, because our biggest customer uses it. We try to focus on design concepts rather than programming languages.

The subject I teach is object oriented programming and test-driven development. For the slides and the demo, I use D. I have two main reasons for this. Firstly, I don't want the students to become hardcoded Java programmers, who panic when they need to switch languages. I want them to gain the confidence that the gap between various programming languages (mainly in the C family, or one family in general) is very small and, more importantly, that they can transfer the knowledge they already have. Secondly, I want them to focus on the concepts. During a demo, if I ask them how to set up a test in Java, they think and answer in code. If I ask them to set up a test in D, they think in concepts. I then do the translation to code.
(For the record, they implement the assignment in Java.)

Last course, we had a normal group of Java programmers and a trainee who was learning Python. The trainee was the one who understood the OO principles the fastest, because she was forced to think in concepts and not implementation.

For my personal studies, I programmed in Ocaml for a while. Even though you can mimic the concepts in D using pure and const, it still broadened my horizon.

If I have to conclude anything, it is that there, in my opinion and in the context of my philosophy, should not be a one language during a study. D definitely has a place in there with how different language features are set up. I think Ali's book is a great start, as it explains the concepts as well as the implementation. The D lang tour for example focuses on learning D when you know how to program, which is a completely valid use case as well.

It would be cool to have a "Learn programming with D as a tool" section on the website, but I doubt it would be worth the effort. People who study in their free time go to well-known sites like Code Academy and people who have their own course (like me), write their own material based on their course setup and learning goals.

Reply via email to