preface

Almost every programmer will embark on the road of self-study, especially in school or after entering the work post, the promotion of technology basically rely on self-study, although some are online classes to learn, but more often in their own learning, master introduction door, practice depends on personal.

Some people learn quickly, almost more than a month to master a technology, and some people insist, and finally give up, a big reason is that in the learning fell into some mistakes did not come out.

Today we are going to talk about ten common mistakes in self-taught programming. Avoid these mistakes and you can go on the road to self-learning!

8, 000 words of painstaking writing, I hope to help you.

Misunderstanding a: not heavy foundation, what fire I learn what

We often encounter some partners who love learning. They are keen on learning all kinds of trendy technologies, and they learn by skipping over the past, because the basic knowledge is often boring and low sense of achievement, so they learn by skipping, and learn what technology is hot.

Your Java se basic not firm, for example, say you even the most basic of oop, network operating system, and basic data structures and algorithms, and the commonly used design patterns, the most basic of multi-threaded high concurrency these concepts are not understand, then you are blindly to pursue these so-called fire, modern technology, you may be in a confused.

advice: We are not opposed to learning new technology, but before learning new technology, we should first grasp the basic knowledge firmly, do not be impatient to eat hot tofu finally hot mouth, beginners to programming partners must be honest and honest to understand the basic knowledge.

Myth 2: You’re obsessed with learning the best programming language

There is no such thing as a good or bad programming language, only a language that is suitable for a particular application scenario.

Let me give you a few examples. PHP is a language suitable for external development, Java is suitable for Android, big data, or our Java EE, C and C++ is suitable for low-level development, such as game engines, system software, or assembly language is suitable for driver development. For example, Python is more suitable for artificial intelligence, go language is the main development language of blockchain, suitable for doing external background and so on.

So from what I said above, have you noticed that there is no such thing as the best programming language?

What programming language you learn will depend on your goals and interests. You learn the programming language what you want to do, and then you decide what programming language I want to learn,You can see if your starting point is correct by looking at the problem backwardsThere can be many paths to the same goal but if you start picking a starting point as soon as you arrive you may miss out on a route that saves time and effort.

Two points of advice:

First, programming languages are very similar in logic and syntax. If you look at Java, C, C++, or any other programming language, the syntax and structure of the logic are pretty much the same. Once you’ve learned or mastered one language, you can move on to another, so to speak. It’s easier and cheaper to learn by analogy, but only if you’ve mastered one.

Second, if you’re learning programming to get into IT or to get into the Internet, you’re learning to get a job. If you have no idea what language to learn, I suggest you consider Python. The reason is very simple. First, Python is easy to learn, and many people give up because of the difficulty of learning it by themselves. Second, Python has been the fastest growing language among all programming languages for four years in a row, and it has become the most popular programming language. We have a long future to learn.

Misunderstanding three: like to see do not like to start, understand but can not use

Like to see but do not like to start, this is almost the vast majority of beginners, I vaguely remember when I learn programming is also like this, learn to learn to learn for a long time, but a start the code is at a loss, feel difficult to control.

Understanding and being able to use are two different things. When a beginner reads a book or listens to a video, he can easily feel that I understand what the teacher says. But once he was asked to do a project or complete a problem independently, he immediately lost his train of thought and was immediately confused. As a result, he didn’t understand. I don’t know if you feel this way.

Some classmates said “teacher when I was learning I don’t know what to write”, so I can recommend, you will have what do you see the book or the tutorial, you give I knock again seen project case and understanding, and then you according to what item do you want to do, what to implement a function, and specifically to write the corresponding code.

Let me give you an example. If you want to go to this gym and get some amazing muscles or abs, let me ask you a question: ** If you just watch videos of trainers working out, can you grow strong muscles? ** In fact, you are not able to grow out, you just look at how can you grow muscles? You must want oneself to go everyday this lift dumbbell or be sport, all sorts of sport according to the request of coach, right? You also need to watch what you eat to develop attractive muscles.

In fact, we learn programming is the same reason, you can not just watch the video, you understand it does not mean you can use it.

Advice:

Programming is a subject of learning by doing. What is learning by doing? I learned it by doing it, not by saying I know it and I understand it and I’ll do it again, because our computer science is an engineering discipline, with a special emphasis on hands-on skills. Process error does not matter, do a few more times, more debugging a few times, do not understand to look up information or ask someone, a little bit of penetration.

The paper come zhongjue shallow, and must know this to practice. Mistakes are not terrible, they are the key to your improvement.

Myth 4: You rarely take notes or mind map while studying

It’s basically not translating what you’ve learned into your own knowledge. This happens to a lot of self-learners, who work very hard and diligently to learn programming, butTechnological progress is slow. You let him say what he learned today? All he knew was that I had read some books and watched some videos.So why is this happening? Let me analyze it for you. Because some kids just listen when they learn technology, knowledge flows out like water from books or videos, and knowledge does not settle in his brain, the whole person becomes a transmitter of knowledge.

So when you close this book, it’s like you didn’t learn it, you don’t remember it, you forget it and we call it ineffective learning.

Whether you’re listening to a video or reading a book, it’s important to understand that the knowledge isn’t yours, it’s the author’s. So what should you do? You’d better finish learning a knowledge or after learning a technology, you should use your own language to summarize it and describe how you understand the technology in your own language, so that you can really take this knowledge point down, even the best to finish learning a knowledge system.

For example, the Java object oriented learning, or the Java multithreading learning finished, you had better draw a mind map, the essence of these knowledge points concentrate, the knowledge system built in your brain.

Summarize and establish their own knowledge system method, you learn one year, or even better than others learn two years, three years effect.

Myth 5: Prefer rote memorization to understanding principles

We are learning programming, there are a lot of things require rote learning, such as grammar rules and norms, such as Java variable naming, and the main structure of this program, including some of its grammar specification, how to use is a highly efficient usage, which you can’t, you can put it back a back, because it is a rule, this is good.

But when it comes to the implementation of features, algorithms, design patterns, underlying mechanisms, optimization efficiency, etc., you don’t have to memorize, you have to understand.

The other thing is thatI can’t remember the code when I’m programming, friends only need to master a certain function, what to use, how to use a way or use code to achieve it, you need to know where to find this code.

6. Escape when you make a mistake

When the program goes wrong, it does not actively adjust the error, but escapes. I believe that many partners, especially beginners, have encountered this phenomenon. When the new handwritten code sees the error belief, it will panic.

Actually, you don’t have to, because if the program goes wrong, it’s time to improve our skills. How can a beginner write code without making any mistakes? That’s not going to happen, is it? It’s easy to make mistakes in basic grammar or letter sizes.

In fact, these mistakes themselves are not difficult, as long as you eliminate every mistake, in fact, this time your ability is getting stronger and stronger. Because you see these mistakes more often, you won’t make them next time, and over time you’ll feel like programming is fun, and you’ll get to that point. When you’re tired and sleepy, it’s not about drinking Red Bull, it’s about writing two pieces of code to relax. It’s good to get to that level.To borrow a line from the movie Initial D, “God is actually a human being, but he has done something that human beings cannot do, so he has become a god.”

So what is the programming god, debugging god? Because they make enough mistakes, he has seen where mistakes can be made and what mistakes can be made. What others seem to be mistakes will not appear in his hands, or it is easy to solve them. This is a great god.

If you make ten thousand mistakes, you will become a programming genius.

Myth 7: Fighting alone, closing the door

There are always some people on the programmer road who like to work alone and in isolation, unwilling and afraid to share. Including those who have studied for a year or two or more.

In order to learn programming, you need to create a learning environment for yourself. You need peers or experts to grow with you. On the other hand, if you disconnect from communication, you tend to let learning problems pile up and you may eventually give up.

Because there are too many problems, and you don’t solve them, then you will give up slowly. When you are confused, you know that sometimes a word from a friend or a master, a plugin, a book or a hint will make you feel suddenly enlightened. You say, “Oh, there’s such a thing as that,” and it could make you a much more productive learner. advice:

If you are a beginner in programming, don’t be alone and do things behind closed doors. Dare to share, dare to summarize, and dare to tell others what you have learned. What if you make mistakes? They don’t strike you along the line; Will people laugh at me if I say something wrong? In fact, as long as you are the first time to commit a crime, others will not laugh, if you put forward, others will think you are very diligent, but more willing to help you, you do not commit next time.

Myth 8: Learn too many things to be proficient in a language

A lot of small friends search this data on the net, fire of what technology, I go to school what technology, do not share key, also do not have a target, lose oneself very easily, what want to learn, what did not learn to be master, be tired of learning all sorts of technology every day, whole knowledge system did not build finally.

For example, some friends learn Java EE, but the whole system of javaEE has not been established; For example, some young friends learn big data, the whole system has not been established, it only learned a small part of it. If so, you’ll find that in your real work, when people ask you what you know, you can’t tell them.

That natural your salary affirmation cannot go up, because you do not have the guy that can have a meal really, do not have the thing that can take a hand really, do not have what thing can go to compete with others, so say watermelon, sesame what all pick up, affirmation is want to suffer a loss.

advice

No matter you are smart or slow, no matter you are diligent or lazy, everyone’s time is actually limited, good steel to use on the blade, use their limited time efficiently, do not have to learn everything, there is no need.

I suggest little friends to focus on a technology or language, for example we will focus on Java or focus on the Python, it doesn’t matter, you can focus on the language, you think you have a good command of the language, you go to learn other programming languages or other techniques, you will find that flat, learning cost greatly reduced, instance, semester comes very fast.

Learning programming skills should have a clear direction and goal. Whether you’re learning Java, Python, PHP,.NET, or blockchain, have a learning goal.

For example, if it is to work, so I want to learn what content in 2 months, after half a year to learn what level, after a year I want to start looking for a job, I hope my salary is how much, after a year to two years I want to achieve what technical level, after three years my salary should reach tens of thousands…… Make a clear plan for yourself, do not give yourself careless, you will see their growth. If you can’t do it yourself, find someone to refer to.

Myth nine: Not professional, not suitable for programming?

This mistake actually I also often encountered, a lot of small friends said: “Long uncle, I used to learn management, learn finance, learn architecture, learn chemistry, I will find a job in the future will suffer? Or am I not learning to program well?”

I tell you that there are too many programmers in the IT industry who are not from a professional background, and there are too many of them in various industries. Too many of them have switched careers and are very successful. Therefore, this has nothing to do with learning a major.

Programming itself is actually a skill, what does it have to do with your previous major? It doesn’t matter, as long as your logical thinking is normal, and you are more diligent, then this learning programming is no problem, is to learn a skill, don’t think too complicated.

And I think sometimes when you cross over into the world of programmers, there’s an advantage at some point. Why do you say so?

For example, the company gives you a task to do a project about finance. If you have majored in finance before, you will understand the business logic and business process of the project faster than those who have not studied finance before. That’s why software companies like Yonyou recruit a group of students to be programmers in some finance university every year. Why? Do business logic.

So when we write software or do projects, it is not only the technology itself, but also the business logic and business process, so there is no need to worry about this. What if you are still worried? It is also very simple, you don’t have to learn the contents of the textbook of the university computer major again, what is the big deal, it is OK.

Myth 10: Math not good for programming?

Many friends do not understand the relationship between mathematics and programming. They often equate mathematics with programming. They think that if I am good at mathematics, I will learn to program well, and if I am bad at mathematics, I will learn to program poorly.

If that were the case, we wouldn’t need to have two majors in college, one for math and one for computer science, would we? Mathematics major and computer major are separate, this shows these two disciplines it is certainly different.

So why this recognition? Because some people think that when we’re dealing with this business logic, we might use math. This is not false, might need some formulas about mathematics, mathematical inference, these may be used, but for most of our programmers, we are standing at the application level to programming, in other words, we are using an algorithm that others have to learn and then applied to one of our business module to solve the problem. We rarely ask a programmer, especially at the application level, to develop an algorithm or solve a problem on his own.

Of course, if you are engaged in the position of algorithm engineer or senior data analyst, then the requirements for mathematics are higher, often require the person is both computer knowledge and mathematics major.But for most of us programmers, math isn’t that demanding, so don’t be afraid of it.