Learn programming from a book vs. tutorial? Thoughts on deliberate practice

In this short little post, I want to share some thoughts on deliberate practice and how it affects coding, learning how to program, etc. I will argue that, in the long run, you can only become a better programmer with some systematic (self-)education, be it from books or academic classes. Tutorials alone, on the other hand, get you actionable quickly but do this at the expense of providing “the bigger picture” which will ultimately harm and slow down your progress. The concept of deliberate practice I have been intrigued by the concept of ‘deliberate practice’ for a few years now. It mostly comes up in the context of the so-called 10.000h rule (popularized by Malcolm Gladwell’s The tipping point – which is full of blatantly false information by the way and has been debunked by Steven Pinker, see Resources). Deliberate practice is needed for expertise and reaching a level of mastery. If you just want the ‘quick fix’, don’t bother

read more Learn programming from a book vs. tutorial? Thoughts on deliberate practice

Why most “learn programming” classes, books and attempts fail

This seems to be a bold claim. Let me explain… There are two reasons why I think most introductory programming classes fail ant that is a) because they never actually teach prorgramming (i.e. “algorithmic thinking”, not the syntax of one concrete language / “your first language”)) and b) because they bombard students with tons of complicated subjects which are not necessary at the beginning, so nobody remembers or understands them anyway. But they confuse the students and distract them from what they really should learn like how to interact with the machine and basic flow control. Use a visual language (like Scratch for PC or Catrobat for mobile devices) and thank me later. Algorithmic thinking When we want to learn or teach how to program, we first need to define what programming is. Like in a human language, knowing the words and the grammar is not enough – knowing a language means “knowing how to communicate using that language”. For

read more Why most “learn programming” classes, books and attempts fail

On Didactical Reduction (especially in the DH)

Didactical reduction means abstracting complexity to facilitate learning. It is the act of reducing and simplifying teaching material as to promote student learning. Sadly, I feel that didactical reduction doesn’t accomplish its ends most of the time. Here is why and how I think we could do better. The road to hell is paved with good intentions I have seen many classes where the content to be taught was reduced so drastically that is became simple and clear – but maybe **too simple and clear. It became meaningless.** The material became so easy to understand (or, even worse, a complex topic was made to seem like a banality), so that students stopped paying attention. “I already know this” or “I get this” are not necessarily thoughts a teacher wants to provoke. We use didactical reduction so that the complexity of a topic is hidden and we don’t scare our pupils. But fear isn’t always a bad thing. Fear means respect. And

read more On Didactical Reduction (especially in the DH)