Current location - Training Enrollment Network - Books and materials - Why do others learn JAVA quickly, but I learn it slowly? I also watch videos, type codes and do my homework, but why do I feel foggy?
Why do others learn JAVA quickly, but I learn it slowly? I also watch videos, type codes and do my homework, but why do I feel foggy?
As an experienced person, I want to share my experience in learning Java. I hope it is meaningful to Java Xiaobai who is studying Java or just entering the workplace. Bian Xiao is currently working in a unicorn Internet IT company.

Key points: watching videos and typing sample codes is an extremely difficult process, and what saves you is always an opportunity to participate in actual projects. Practice is always the only criterion for testing truth, and it still holds true in the field of programming.

When I was a second-year graduate student, I was exposed to the Java language. Before that, I had only been exposed to VB language, not other programming languages. At that time, because a project of my tutor needed to be developed in Java language, my tutor asked me to learn Java language. From then on, I began my sour Java learning road. On 2 1 day, I went to the library to find books such as Introduction to Java and Mastering Java, and kept reading these books in the laboratory every day. When reading, it's just like the topic, and it's also in a fog, but it just insists on "studying hard".

I tried to read two Java books, learned the general grammar and knowledge points of Java, and prepared to write some codes, but I still couldn't write a complete code. So I went online to find Ma Shibing's full set of Java videos, watched them over and over again, and followed the videos to learn the sample code. To tell the truth, learning through video is still very progressive, at least the simple for loop and IO reading and writing files have been mastered. However, the overall feeling is that the knowledge points are scattered and there is no chance to use Java in the whole system. Just then, an internship opportunity came to me.

Unexpected internship opportunity

While I was in pain, one day my tutor came to me and said that a friend of hers had started a small company and wanted to recruit interns, and asked me if I would like to go. Of course I know. There is a lack of internship opportunities now. Only by participating in a project can I really use Java and save me from this pain. The next day, I went to this company. My tutor really didn't lie to me. This company is really a small company. There are less than 10 people in the whole company. My boss and I are programming face to face.

After entering the company, an old man in the company took me step by step to start from the basic project. I remember that the first project was Struts+Hibernate, and I had never looked at these two frameworks carefully before. Fortunately, this project has been built and many functions are available. So I will follow the cat's thinking, see how other people's action and crud are written, and then write some of my own functions. When you encounter something you don't understand, look up the principle and writing method online.

Soon, by participating in the project, I basically mastered Struts and Hibernate. Although I don't know many principles, I can skillfully use them. After a month's participation in the project and going back to school at night, I can basically complete the small functions given to me by the leaders independently. Of course, I have encountered many problems in my development, which can be solved through my own positioning. If you really can't solve it, then ask your colleagues.

finally

My experience tells me, don't keep burying your head in watching videos and typing code, and don't think that you can go out and look for a job if you master the whole Java technology system thoroughly. This is a completely wrong understanding, and the real technology needs to be involved in the project to learn. Only by participating in the project can we better understand some technical points and implementation principles, and more confusion and incomprehension can only be solved by participating in the project. A small project will bring you more gains than what you can get if you bury yourself in your studies for a year. So, if you feel miserable when learning Java at this time, stop and find a company that can accept you, even if it is a small company with low salary. Forget it. Let's go. In a month, you will break into a butterfly.

Let me share my experience in learning java. When I first learned Java, I watched videos and wrote code just like you, thinking that I just had to learn it step by step, but it wasn't.

If you type code while watching video, if you can master java for this reason, you are wrong. Can't learn and code rigidly. Why? It's no use talking too much if you want to expand outward. Let me give you a practical example. I will take learning ArrayList as an example to illustrate.

Let me introduce first, how did I learn ArrayList?

1, add, delete, change and query the api operation of array list, which should be mastered skillfully.

2. How is the bottom of 2.ArrayList implemented? What are the characteristics?

The bottom layer is realized by array, and duplicate elements can be added and taken out according to the added elements.

3. How to sort? Jdk8 can call the sort method directly, or use the Collections tool class for sorting.

4. How does 4.ArrayList remove duplicate elements?

You can define a list and compare it circularly, or you can copy it directly with set.

5. Is the array list thread-safe? Why is it not thread-safe? How to ensure thread safety?

Arrays and lists are not thread-safe.

The main performance is that the underlying capacity storage array is a * * * shared variable, and multiple threads will be added concurrently, which will lead to repeated coverage problems.

You can use collections to create synchronization lists.

You can also use cows instead.

6. Why can't I add elements or delete elements when I loop?

Because there is a counter at the bottom, you can't add or delete when you loop. If there are similar services, you can use thread-safe classes.

7. Why can't the list returned by calling the sublist method be forced to convert ArrayList?

Because it returns a view, not a subclass of list, just look at the source code.

8. Finally, you can see how the underlying source code is implemented, and then write one yourself.

Maybe you will think that if I follow your method, it would be good to study for a few days in a class. I think it is worthwhile to spend a few days. Learning in this way will be more and more smooth in the future, and it will not be as foggy as it is now.

The above is my learning experience. If it helps you, you can pay attention to me and continue to share dry goods in the future!

remember

Java is still easy to learn online, because there are a lot of tutorials on major video websites and technical websites. You can easily find the knowledge you want to learn. But there are also shortcomings, that is, it is too messy, and it is often a thing of the east and a thing of the west.

So, as a beginner. You should buy a book, which is the most important thing. Books are generally from basic to advanced, and there will be no big leap.

In addition, books can make you take notes quickly, and you can quickly find what you understand when you are confused in the future. You can watch it again to deepen your impression, instead of looking it up online, because everyone's study habits are different.

More hands

In the Java field, especially for beginners like you. You should practice what you have learned repeatedly and review it frequently.

For example, using sout to output a helloworld statement, can you write it by hand? Don't worry about the function of the parameters of the main method in the early stage, just let yourself practice habitual memory.

A good memory is better than a bad writing. There is nothing wrong with this sentence in learning.

Multi-abstract

Summarization is the biggest reason for you to widen the gap with others.

For example, I learned the flow control statement today and left you a question. Let you do it in the for loop. Did you just use the for loop? You should consider the following two points.

Are there any other process statements that can be solved? Can while, iterator, stream and lambda expressions be solved?

Can you solve other similar problems? Give yourself a question and do it yourself.

I believe that as long as you keep summing up like this, your foundation will be solid.

emphasize

In fact, the biggest enemy of learning is yourself. Learning is like long-distance running, as long as you persist, you will always reach your destination. A good learning method is to reach the finish line quickly.

abstract

A horse that is good at running never cares about its starting point.

I am 3 1 year old this year. I started learning JAVA during the epidemic in February. I've been studying for almost three months. Now I am doing a project of WeChat applet mall. Springmvc+myba** is used in the back end, MySQL is used in the database, and no writing is used in the front end. I use my self-taught Android to write the background management system directly. Now I have written the functional module of adding goods. I think the most important thing in learning is interest. I don't study programming for work, I just want to get something out, so I am very motivated and have a general foundation, but I can copy and paste, and Baidu will know how to change it. I use Android controls directly, and I haven't started learning applets yet. I'll study the applet after I finish writing the interface. Personally, I think it is not difficult to get started programming these applications, so I won't go deep into the bottom [covering my face].

Some people are logical and clear-cut, and make rapid progress under systematic study.

And some people need guidance, such as interest or purpose guidance, to find ways to learn faster.

For example, to play a game, first use the program to make an OK button to jump to OK or other menu pages (displaying words and pictures separately), cancel jumping to the next level or close the program. Find some simple calculators online, such as addition, subtraction, multiplication and division, copy one, and then try to add colors or patterns to each key. These are all necessary menu interfaces for the game. Try to get into the state, eager to accomplish nothing.

If it is just to make money, then the program is money and the technology is money, but there is no state of learning and filling new knowledge. Then, no code is suitable for you. After learning a piece of code, you will find that other codes need not be as skilled as the main code skills, because it can either speed up programming or need to be applied to related interfaces.

Everyone accepts new things at different speeds.

It is also possible that others have other language foundations.

Besides, did you find the video online? This has a lot to do with teachers, and some teachers just say no. You can find other videos.

Besides, take notes. Memorize more and remember more. Some abstract concepts are really hard to understand. If you don't understand, you can recite it or write it down and learn it later. You will understand with the deepening of your study. If you still don't understand, go to Baidu to study it.

I think learning means learning more, practicing more and thinking more. There are so many geniuses, and most of them who are better than you work harder than you.

Be sure to memorize the key words and type more codes. Just looking at them is not enough. I wish you success [yeah]

Study purposefully. av96244032

You must form your own thinking mode. It's no use just listening to others. With my following methods, over time, you will be able to get out of the fog and be suddenly enlightened.

Start with a small project, design your own data structure, and design your own objects, attributes and methods.

Just practice more.

For example, make an e-commerce software yourself.

First of all, think about it and abstract several objects:

1. Commodity products,

Attributes: id, name, stock, price, description.

2. User users

Attributes: id, user name, account, email, phone number.

3. Order order

Attribute identification, product identification, count, total amount, user identification.

Then you can design the database.

Draw an e-r diagram and generate an sql.

Secondly, think about what methods:

1.buy(stringproductid,stringuserid,int count);

The user's method of purchasing goods returns the order number;

2. payment (stringorderid)

pay

...........

Then use the language you are familiar with to realize it.

Don't underestimate this process, which is the core of writing code. Once you understand object-oriented and domain model design, everything else is grammar, grammar sugar, common sense and framework.

At school, I forced myself to exercise myself according to this model. I drew many pictures and wrote many codes. At that time, I didn't have a computer, so I wrote the code on paper, and then I went in to enjoy the process when I got on the computer. It was very addictive.

I hope it works for you.

Everyone's foundation may be different, or you may not see many efforts and efforts made by others. Don't follow your competitors, study at your own pace, think more, don't think that you have finished the task after typing, keep your curiosity about knowledge, think more about why the code should be written like this, master the principle, master the principle, and say the important things three times before you can really master the skills. Go to gitee to find an interesting open source project, look at the code, see what needs this set of source code still lacks, think about how to realize it, try to modify the code, make yourself feel a sense of accomplishment, learn more and more, and learn programming happily. Dennis Lippi, the father of C language, said: What's really interesting is not programming itself, but that you can make programming do what you want.

Don't be impetuous when studying. Especially when learning java, just watching videos is not enough.

First, the basic knowledge, printed as an outline, if you are a beginner, it is recommended to copy the code by hand. For example, thread-related, it is natural to copy it several times.

Second, after a certain foundation, it is recommended to go to gihub more. There are many good open source projects in java. Download and have a look. There is no need to look at every line, just know the whole operation process.

Third, accumulate more and collect more. After normal work, most of the code is copied and pasted, provided that you have pasted the information. Without it, the work efficiency will be very low.

Of course, you may start a business after learning technology, but the foundation is to learn technology well. For example, Baidu's, Tencent's Horse, WeChat's Zhang Xiaolong, and headlines are all very powerful.

Study hard and make progress every day.