How to teach new developers programming: teach them to fish (click the public account above to follow it quickly)
Original article: Samuel Levy
Translation: Bole online-XiaoxiaoLi
Link: http://blog.jobbole.com/58281/
Let's talk about how to teach new people programming. I often see a slang in Mail groups and user groups in various programming languages. Everyone knows this sentence. The title of this article is the second half of it.
It is better to teach people to fish than to teach them to fish.
When someone asks which programming resources are available, others often complain. Some people in the Python group say this; some people in the PHP Group say this, some in the JavaScript group say this; almost everyone in the group I added said this. We mean that new people should look for learning resources on their own, rather than bother their predecessors. Why are these Cainiao unable to Google themselves? Search results headlines are obviously the best learning resources, because headlines are most recommended.
Congratulations, you taught others how to put fish lines in the water, but you haven't taught them which fish to eat or which fish to eat. In the world of programming education, "most" fish cannot eat.
For example, when you search for something related to PHP, W3Schools will always appear on the homepage of the search result. This website looks very authoritative and has a variety of tutorials, and it can be searched! Unfortunately, this is a poisonous fish.
Let's talk about the last question: PHP, a widely criticized programming language, drives most web pages in the world. PHP is definitely not a problem. I will not justify it in this article today (I have done this before), but the biggest problem with PHP is how to learn it. It is a very popular language, and it is desperately trying to make it easy for new users to learn it. Over the past 20 years, it has evolved from a simple scripting language to powerful tools used by billions of companies. During its growth, it encountered many difficulties, many of which were related to poor design schemes.
Today's PHP has many advantages, but unfortunately these advantages are not so easy for beginners to understand. They are high-level concepts based on years of programming theory. PHP still supports many basic concepts of the past when it was pure. they are enough for small websites such as husband and wife shops, but it is not enough for large companies. In short, they are insecure, inefficient, and even "wrong ". But they are easy to understand and enable at the same time.
W3schools is basically a "wrong" approach, which means that it is not a good coding standard for beginners who take it as a learning resource, then they write more bad PHP code, and then more people can only learn the wrong method. The crux of this problem is not for W3Schools-almost all PHP teaching resources are filled with errors but simple solutions. The crux of this problem is so popular that I cannot think of any PHP teaching resource that can reassure me.
If you teach a person to "catch" learning resources, he will catch the worst fish in the sea, and then you will have to clean up the mess. If you hand him the first few fish and tell him where to catch more good fish, then you're half done. If he can also teach him why he should not catch other bad fish, he is already on the road to becoming a positive and productive member of the programming world.
We need to think about how to treat new students who are learning. For Python, I recommend Learn Python The Hard Way for beginners who do not have programming skills. for those who already have one or two programming languages, I recommend The official python tutorial. These simple resources explain how to use the language correctly. When they have such basic knowledge, I will show them where to find more and better information.
The following scenarios are what I want to see. People in the programming world can unite to create some good learning resources, rather than asking others to "google" as they do ". It is of course important to ask people to find their own answers during programming, but before they go down the hill, you must also teach them what resources they should look.
So let's stop teaching people to catch all the broken fish, so maybe we don't need to waste so much time to fix the poorly written code.
[Region recommended for today's public accounts]