When teaching, What should come first, imagination, or explanation?

When teaching, What should come first, imagination, or explanation?

The following is an excerpt from a future book entitled, "How to really teach programming: a student's perspective."

What happens if you are a student in the best and hardest programming school in your country and yet you enjoy the easier courses more? Should it not be that a higher challenge is what excellent students long for? What if you are an excellent student who shares the same sentiments as slow-learners when it comes to teaching methods that, in theory, should cater more to them and not you?

I am asking these questions because I am this student. In my utmost humility, I can say that I am probably the best programmer in my current year and maybe even above. I am writing this book because I feel strongly regarding how programming curriculums are set-up, and how programming courses are taught. What I feel may not be what everyone feels, however, there is logic and there is reasoning behind these preferences. Especially the preferences of one who represents the best of what a programming student has to offer.

What is the best programming curriculum? What are the principles that it should adhere to? How should courses be taught? What principles should professors adhere to? I wish to answer these questions as a student who longs for positive change to happen. I write this book as a student who wants to learn more. Not as a student who is just complaining to make things easier.

I remember the time when I was trying to promote my first book, “How To Really Teach Yourself Programming.” I made a brochure with an article on the inside of it. I jokingly told people that I was giving them propaganda. In a way, I was. I wrote this article with the intent of delivering it as a speech someday. As such, the points were concise, easily digestible, and most importantly, strong. While it was still written in a civil and professional manner, I did not let the meaning be diminished by fear of judgment. After all, controversial points are what stimulates critical thinking.

I would like to quote this article below:


I believe, as a university, we should not undervalue the power of self-teaching. Nevertheless, I agree that some things are better off delivered through concrete lectures and standardized deliverables. However, we should not forget that the primary goal of the university is to teach students how to teach themselves.

Some might argue that this is already happening. I agree to a certain extent. I agree that the university already encourages self-motivated learning through the environment that it supplies, the facilities that it provides, and in the quality that it delivers. However, it is not enough to encourage it.

In self-motivated learning, when we get stuck, we have nothing to push us, no one to remind us, and nothing to assure us. Most of us are apathetic when we get stuck at our own pace. Why should we care? It is our own pace, after all. Encouragement will not keep us from being indifferent.

Teaching students how to teach themselves cannot just be a by-product of your time in this university. It should be intentionally fostered, just as how a child is raised.

Most of us think that this will require radical change, and so we shy away from it. But it does not. We can still have lectures, have standardized exams, we can still have strict deadlines and tight schedules. These things have already been established for years in universities. For whatever reason it may be, they have stayed. And for these same reasons, they might stay.

Something as simple as reordering topics in the curriculum is a big enough change to spark self-motivated learning.

I understand that we want students to learn the fundamentals of development first before building knowledge on top of it. But, when it comes to learning, the fundamentals of development are not necessarily the same as the fundamentals of learning development.

One fundamental piece of development is memory management and allocation. But one fundamental piece of learning development is seeing an object move across the screen.

Students want to imagine. School wants students to know what's behind that imagination. But what should come first?

Students should be allowed to imagine first before being force-fed information that they may have no appreciation for at the moment. They have to be allowed to experience what they are able to do before they are taught how to do it. The opportunity should exist in the mind of the student before they are able to wholeheartedly pursue it.

This can be as simple as taking shortcuts at the first few terms of the curriculum and going straight into intuitive frameworks (like engines). Universities should allow students to experience being part of the world they want to be in by letting them feel like they can contribute something tangible as early as the first year. Imagination should come first.

That’s the first step in how to really teach yourself programming. End quote.


As can be seen in this article, I believe that the best programming curriculum is one that encourages freedom to learn by experience. A curriculum that allows students to teach and supply themselves with depth of understanding. Because a single professor is limited by their time and energy. As such, how can a single professor make it so that their class of 20 or more students each attain the level of teaching that is the same as if the professor taught them one by one?

Simple, make it so that the students can effectively teach themselves.

Read more in my upcoming book, "How to really teach programming: a student's perspective."

要查看或添加评论,请登录

Gabriel Paulo R.的更多文章

  • The true job of programming teachers

    The true job of programming teachers

    This article is a snippet of a future book entitled: "How To Really Teach Programming." A sequel of "How To Really…

    1 条评论
  • Writing a book as a student

    Writing a book as a student

    There are very few things you can do as a student to further your career. I would put writing a book pretty high up on…

  • Dealing with mid-skill, low-will programming students

    Dealing with mid-skill, low-will programming students

    This article is a topic taken from my book entitled "How to really teach yourself programming — for students by a…

  • Importance of mono-language pedagogy for programming students

    Importance of mono-language pedagogy for programming students

    This article is a topic taken from my book entitled "How to really teach yourself programming — for students by a…

社区洞察

其他会员也浏览了