How to learn programming based on zero
Experience notes
Self-taught programming for 2 years, joined more than N groups, soaked in more than N forums, met enthusiastic programming newcomers, and met cool and cool technical bulls ... Programming attracted groups of enthusiastic young people, perhaps for ideals, perhaps because of hobbies. Newcomers keep joining, while others keep quitting programming. There is only one entrance to programming, but there are many exits. A large part of the newcomers who learn programming by themselves stay in the introductory stage. In this regard, I want to write down some humble opinions on the introduction of programming, hoping that students can judge for themselves.
1. zero basis, what knowledge do you need to learn programming by yourself?
A:
For the entry stage, the requirements for knowledge level are not high, or very low. Everyone should have heard of topics such as how xxx pupils program. We don't talk about long-term development here, just how to get started. First of all, I think you should have the basic operation ability of computer. If you can't even create a new folder or download materials from the Internet, then you should buy a copy of windows xx from beginning to end, and then consider programming. If you think you are proficient in the basic operation of computers, please continue reading.
2. What are the requirements for learning programming?
A:
First: hardware guarantee. First of all, you should have a computer, whether it is a notebook or a desktop, regardless of performance. Performance has little effect on previous learning and programming. As far as getting started is concerned, the operating system is still the first choice.
Second: There is an introductory book of xx language, which is made of paper. We will discuss this problem later. Although e-books are everywhere now, and scanned versions are everywhere, and they are still in high definition, I still recommend reading paper books, which has two advantages. One is easy to carry and can be read at any time; The second is to avoid eye fatigue. I can't believe that your eyes won't be sore after staring at the monitor all night. One more thing, respect the copyright of book authors.
Third: time guarantee, if you have a lot of things waiting for you to deal with every day, then deal with those things first, and then set aside a whole piece of remaining time for programming, so that you can study that may be interrupted at any time. Programming, I don't think this is studying hard and memorizing words in my spare time? It should be a good choice.
Are you sure you want to learn programming?
A:
This question seems a bit redundant, but why ask this question? You know, programming does not happen overnight. If you are just impulsive, or just want to finish a gadget in your mind and don't plan to write a program for a long time, then you don't need to learn programming. After all, programming has a long way to go from getting started to being able to write software independently. Once you give up halfway, all your efforts will be in vain and a lot of precious time will be wasted, which is really not worth the candle. However, you can say that this is your hobby, and it is good to have a hobby, so keep reading.
4. How should I start?
A:
How should I start? In fact, as long as you have perseverance, you will certainly be able to get started in a year or so, but the purpose of writing this article is to shorten this cycle, isn't it? So, I will talk about how to get started faster from my personal point of view. Here I will make a general introduction first, and then introduce each point separately later.
– 1 & gt; To understand the basic composition of computers, the history of computer development and programming seems to have nothing to do with programming, but the potential impact is still great;
–2 & gt; Choose a simple language as the introduction language;
–3 & gt; Learn to use search engines;
–4 & gt; Know how to read;
–5 & gt; Be like a master;
–6. The learning attitude that -6.& gt should have;
4. 1: Understand the significance of these histories:
Knowing the essence of programming is far more meaningful than knowing how to program. Don't learn programming while programming is in progress, which is very bad for your study. As a programming enthusiast, it should be normal to know the working principle of a computer. Don't you want to know?
4.2 & gt。 Select the input language:
This issue has always been a controversial issue in the initial stage. N is multilingual, and n is recommended. Finally, I fucked a novice, heard that this language is suitable for beginners, and learned this language. Later, some people said that xx was rubbish and weak, and it was useless to learn it. In that case, I began to recommend xxx language, so novices began to learn this language again. In the end, I didn't understand any language, so my time was wasted and my enthusiasm was consumed. To solve this problem, we must first understand a fundamental problem, how to choose a programming language suitable for entry? I recommend that from the perspective of difficulty, this language must be easy to learn and interesting, and there must be some enthusiasm. Only with enthusiasm can more people communicate and discuss together. When we open the list of programming languages, we find that there are more than 65,438+000 programming languages, and the number is increasing. Here, let's take a look at the ranking of programming languages in May 2065, 438+2002. Enthusiasm is the first thing that can enter the top 20.
Programming language ranking may 20 12
For the above languages, it is impossible to introduce them in detail here, and the space is limited. Most importantly, the introduction of these languages only requires you to open a search engine (Baidu? Google? Or something else? Suit yourself. ), enter the name of this language, search and you will see its detailed introduction. If you say you can't find it, please go back to the first question. Generally speaking, if you go to the forum and ask what language is suitable for getting started, the most result should be C language, that's right, the one ranked first above. Students who strongly recommend the introduction of C language may want to vomit after reading this article, because what I want to recommend here is not C language. I think Python language is more suitable for zero-based introduction. I guess many people recommend C language for two reasons. First, most colleges and universities in China have set up C language programming courses, which can also be said to be a huge user group who has studied C language. Second, C language itself is powerful and has a good reputation. A large base+good reputation is enough for you to get the result that C language is the majority.
The writer is an introduction to Python. When I came into contact with programming, it was completely zero-based Now I have come into contact with C, C++, JAVA, Visual Basic 6, with endless aftertaste. If I choose another introductory language, I will never regret choosing Python. I suggest that every student go to the encyclopedia and search Python to see if it is really easy to learn and powerful. If you want to write GUI software quickly, Python has a large number of graphic libraries for you to choose from. Unlike C language, it still stays in the black box after half a year, which greatly discourages beginners' confidence in software development. Python will never let you down when writing games. Pygame module provides you with simple and fast game development. Pygame is a cross-platform Python module designed for video games. Include images and sound. Although it can't be compared with Direct X, isn't it fun for beginners to write a 2D game independently?
As for Python, I won't introduce it in detail. Let me recommend it. The decision is still in your hands. Whether it is C language or Python language, the following learning methods are applicable.
4.3> Learn to use search engines:
The reason why search engines are recommended is to cultivate better ability to solve problems independently. Generally speaking, when we are just learning programming, we may sometimes not even know what software to use as the programming environment, or download and install the programming environment, but we don't know how to use it. This is when search comes in handy. Go to the search engine and enter "xxx tutorial", and the result will come out, which is simply too convenient.
Moreover, newcomers like to add a lot of programming groups in xx language, and most of them choose multiple people. Once there is a little mistake in programming, they immediately ask questions in the group. This is a very bad habit. If someone in the group is online and helps you solve this problem, then your ability to solve the problem independently will be reduced by one point. If no one is online, you may face the consequences of waiting, or leave the problem here. One more thing, many newcomers say that a lot of knowledge cannot be searched. I am very responsible to say that it is not that you can't search, but that you can't use search engines. At least I haven't encountered a situation where a knowledge point in programming can't be searched. For the search skills, if you don't know yet, go and search.
In short, if you have any questions, you must search.
By the way, joining many groups is not a good habit. Groups can't let you learn too much knowledge. Its function is to find a group of friends who have the same topic. The truth is that most of the time we talk together about topics that have nothing to do with programming.
4.4> Know how to read:
Whether it is an e-book or a paper book, there will be a page number (txt? How many pages can I read every day to make a good study plan? This is not true. Don't ignore the good thing of catalogue. First of all, read the preface and table of contents of the next book carefully to understand the distribution of knowledge points in this book, which will help you to integrate into this book more quickly. Then, make a study plan according to chapters and pages. Aren't you afraid to cut a knowledge point in half? When reading a book, I like to browse for the first time, that is, skim the flowers. From the beginning, I spent the whole morning or afternoon browsing the book leisurely, not asking for knowledge points, just remembering a few nouns and knowing that there are these things in the book gave my brain a vague impression.
Look carefully from the second time, don't let go of any word, meet a noun you don't understand, it doesn't matter, search and solve it. When reading a book, review it in time. It is recommended to use "read five times and return three times" (a word invented by the author) to read books, that is, reading five pages at a time and returning three pages backwards next time can have a good review effect. If you really don't understand anything, don't stay too long. Chances are, when you read on and come back to this question, you will find that you can understand. This situation is very common.
The code must be debugged manually. You have to enter a character manually, not copy and paste it mechanically. The consequence of copying and pasting is that you think you have learned almost everything, and then when you write the code by hand on the computer, you either can't write it out or report a lot of errors when you run it. Therefore, every piece of code in the book should be debugged by yourself (again: learning programming must be practiced by yourself, and don't think about taking shortcuts. Where is the shortcut? There is a shortcut. I left early. )
As for the code error, as a novice, it can't be normal. There are two points here. Pay attention to the spelling mistakes of words and whether the symbols are entered in English. There is also insisting on finding out code errors by yourself, and persisting in solving code errors by yourself in Dont Ask For Help.
4.5> To "like" the host:
When writing these words, I was still worried that this sentence would cause misunderstanding. Like a master, it is not a way to make you fat, but a way to motivate yourself to learn. Specifically, if you want to help other new people and help others improve themselves, don't say it. In the forum or group, you may encounter various problems of new people, either the code error can't be checked, or you can't find a solution to a problem. If you can solve such a problem, you must remember to answer it. In this way, your weight in the circle will become heavier and heavier, and others will trust your ability more. Because of this trust, you will gradually assume the responsibility of the host. May I ask others questions? Even out of vanity, we should keep learning and maintain our master image in others' minds, so as to motivate ourselves to keep learning.
But you need to remember a few points;
One: don't mislead other newcomers, don't answer your uncertain knowledge;
Two: You have answered the weak question many times. If you are not asked to answer, give this opportunity to others. There is really no need to waste time on these weak questions.
Three: Don't take too long to answer questions every day, otherwise it will affect your normal learning progress;
Four: If you find yourself wrong, you must bravely admit that the master will only make yourself more embarrassed when he comes out to vomit. Don't think that novices are good at fooling. When a novice becomes a master one day, he will remember who is digging a hole for him to jump.
Tell you quietly: if someone asks you a question you really don't know, what do you think you can do? Ahem, something happened. Leave. I'll answer you later. Needless to say at this time, take the time to flip through the books and search online. The image of the master can't be lost! )
4.6> Attitude required:
-①: Perseverance? Focus? Believe in yourself? Whenever I see someone telling a new person to stick to the learning method, I want to vomit. What do you need to do without this attitude? Programming should be passionate and imaginative, not limited to the knowledge points in books, bold experiments, and try to combine the learned knowledge points into new knowledge points. Take the linked list in C language as an example. Almost all C language introductory books regard linked list as a single knowledge point. If all the books are linked lists, can you think of an interesting knowledge point that can be combined into a linked list after you learn the pointer and structure and tell you the usage of malloc function?
②: Learn to stabilize emotions. When there are differences in the forum or group, or when someone makes trouble unreasonably, don't get angry and dive immediately, because there is no need to get angry. Who is right and who is wrong, onlookers can naturally see it. There is a word called cold violence.
Man struggles upwards and wants to mix with experts. Although you may be just a rookie in the eyes of experts, it is really helpful for you to improve yourself and be motivated under pressure. Need to warn: don't expect technical bulls to appear frequently in xx group. Where is the master? Most experts write programs. Will they have time to get together?
The author's experience can only make so many suggestions for the time being. Whether the advice is good or bad, it is an expression of what I have always wanted to say to the freshmen. All the students who are ready to step into the programming sky wish you a happy study and realize your dream as soon as possible.
Finally, as the conclusion of this article, I quote a sentence from The Hacker's Line of Defense, which I always keep in mind: Programmers are worthy of respect, and their hands are magicians' hands. They turn boring code into colorful software.
Mr. Vader
20 12.6. 1