I like a few things from the article:
-
This is the story about how … and how students sometimes surpass their teachers.
-
In my first months of university, I entertained the thought of being a school teacher. Now I realize that this was just a call for justice of sorts. There is a stark difference between a high school and a university, and for me, the latter was a much better experience. It felt like in just one month at university I learned more than in one term in high school, and that was so cool. Why couldn’t they explain it this way back in high school , was my common thought. If only educators applied the same educational methods in a regular school, it would make the experience much better. My desire to become a teacher vanished the second I received my first paycheck as a programmer (in Russia, ‘programmer’ is a very well-paid job and ‘school teacher’ is the total opposite), but some memory of that desire remained.
-
This was also the time when I became interested in D. Compared to C++ it looked like a perfect programming language. You can write code that would be as fast, but without all those C atavisms. I used D for my master’s thesis, and I loved it. My program was twice as small and simple as the older C++ version while performing better. Implementing complex and more efficient algorithms in D was much easier; doing the same in C++ would be too much work, and, like any student, I always struggled with my deadlines
-
In 2018, an unusual offer surfaced on the D mailing list: …
-
I didn’t see myself as a full-fledged lecturer and expected to be just an assistant. At the beginning that was the plan, with someone else acting as a lecturer. He was going to give lectures remotely via Skype, and I would assist him on site.
-
To my surprise, the university in question was
-
I checked their program: D was introduced for third-term students, and during the first two terms they learned C, C++, Prolog, and even some Lisp, I think (a bit too much, but why not). Their math course was solid, too (yes, I am among those who think that math is important for programmers).
-
We started working on the course program, although I barely included myself in that “we”. That was a mistake. With one month left until the classes started, the lecturer was suddenly leaving us. The news took me by surprise, but… there was still plenty of time, right?
-
Everything was saying that there would be no help and that I had to do the whole course by myself, but my impression was hard to shake. The grave realization only came one week before Day One. Only then did I start to prepare for real.
-
This is supposed to be the part about the trials and tribulations of the endless bureaucracy awaiting a poor programmer’s soul.
-
Things like the principles of
import
are easier to grok when using a command-line compiler rather than some “intuitive interface”. -
Lifted by the success of the first seminar, I was slammed to the ground by the first lecture. It contained the full theoretical explanation of type systems and their various types, compared D with other languages, brought out the problems of C and C++, and demonstrated what makes D different. It was a total failure.
-
But the problem was with the lecture itself. First, it was too much for one class. Second, the lecture was based on the talks I did for my job that were intended for seasoned programmers. I realized that everything that I’d prepared for my future lectures must be tossed aside and rewritten from scratch.
-
-
I had several reasons to think that this was a well-fitting problem. First, I could write a solution I expected to see from the students in five hours or two evenings. Compensating for the students’ level, it looked like a good project for a semester-long assignment. Second, the solution isn’t too straightforward. Simple brute force would take too much time so you need to cut off the equal variants in the beginning. And third, I was fascinated by this problem myself, so I thought the students would feel the same. I couldn’t be more wrong.
-
That’s how in just one year you become an old geezer teacher who can’t keep up with the times.
-
The chemistry of a group coding session with a teacher ready to help won’t kick in.
-
Bad students will skip classes anyway, but lazy B-graders could benefit from a little scolding.
And there were moments when I raised some questions:
-
Secondly, a broader outlook makes for better code. My familiarity with D improved my C++ skills and made it much easier to learn Python, especially its iterators. Most importantly, D is the future—of C++ and beyond.
- Is it really? I don’t know myself as I haven’t touched both D nor C++.
- I suspect the author means that some of the concepts from D will be transferred to C++.
There is a challenge that I’d like to love myself, but with a different language. I don’t know how to point to the exact spot in the document. But follow the link and search for:
s = Multiline string, each line containing
To the surprise of the teacher each years students solve this problem differently and may find a better solution.
It’s also really interesting to see the translation. I haven’t read tho original one yet.