In one year, from Xiaobai to entering the core department of Alibaba

Note: This article is not for installation, if you want to spray, please upper right! The purpose of this article is to let everyone refer to my learning experience and improve their abilities! Of course, there are people outside the world, there are outsiders, and the great gods don't hit me! Again, I just want to be able to help the confused brothers!

Maybe the story is a bit long. Do you want to hear the story or just listen to me and tell me what I learned and how I learned it.

Well, I won’t elaborate on the process of entering the laboratory. In the end, two people were selected, one is me! !

The first project I entered was to make a javase desktop project. My partner and I were responsible for writing the interface.

At that time, I felt that I was very happy when I had the opportunity to write a real project. I didn't even think about what to write. Even if I wrote about the interface, I was very happy.

When writing the interface, I used HashMap for the first time. The brother taught us how to use it. At that time, I thought it was very powerful, and I have been admiring my brother. (Yes! That's what HashMap did at the time.)

Looking back at my own code now, it is all process-oriented, no wonder the brothers don't ask me to write other. It's really bad.

Well, even if the Java elementary level is complete. At that time, this project was also a written interface, so there was no training at all (in fact, there are still some, such as SVn). At this time, I was at the stage where I had a little knowledge of java, and mysql statements had to be written while checking.

At this time, my time is relatively free. After asking my brother, I decided to use books to improve myself. During this time, I read books (about one month), "Java Core Technology, Volume One", "Java Programming Thoughts" "(Currently still can’t understand). jsp, servlet is in self-study.

The most important thing is to read "Java Core Technology". At that time, I only understood this, and then typed the above code roughly. Later, I used servlet to develop my school's prestige platform, all of which were very simple functions.

Let me first list the books I have read:

"Java Core Technology, Volume One",
"Java Design Patterns",
"Java Programming Thoughts",
"In-Depth Understanding of the Principles of JVM",
"The Beauty of Programming",
"Sword
Refers to Offer", "In-depth analysis of javaweb, technical insider",
"In-depth "Analyzing the Inside Story of Spring Technology",
"Distributed Java Application: Basics and Practice",
"Inside Hadoop Technology".

I still can't remember

But when you don’t know what to learn, just look at this picture. I find it very helpful. Next, let’s talk about my learning method.

The original poster’s point of view is: If you want to improve your own level, you must communicate with outstanding people and learn their ways of thinking and doing things. Perceive their aura and see what people better than you are doing! !

If you find that someone better than you is handsomer and harder than you, then you are really a loser

Of course, what the upstairs talked about was the aspect of being a person, so let me talk about technology now.

Foundation: This is very, very, very important. As long as the foundation is good, you can write any framework yourself. What framework can you learn (learning the framework is faster), then what is the foundation? I think there are the following things: data structure, computer network, database, operating system. This is the basis of computer. In Java, I think it should be IO, NIO, concurrency (including the concurrent package), collection framework (understand the principle, look at the source code more), reflection. The thought of facing the object, OOP, OOA, OOD. JVM, JMM (Although these two have little actual combat experience, you must learn and understand at that time you know when to use volatile and when to use sync).

Improve: How to improve yourself on the basis? After we have the foundation, I feel that we need to learn design patterns, in-depth study of the database (including, indexing principles, ACID, transaction isolation mechanism, triggers, stored procedures, etc., database lock mechanism, row lock, table lock, pessimistic, optimistic ,). At this stage, we must learn to look at the source code, figure out the principles of IOC and AOP, how Spring finds beans and how to load them. How to parse, etc. When you encounter such problems, you can immediately find out where the problem is. This is the advantage of looking at the source code. Aop can't just understand the principle of dynamic proxy, but also know what aspect, pointcut, etc. are, why the AOP Alliance defines these interfaces... At this time, you need to know what is decoupling and what is high class aggregation. How to make the code reusable and extensible, the benefits of design patterns will bring you qualitative changes.

In the process of getting started learning Java, if you encounter any questions about learning methods, learning routes, learning efficiency, etc., you can apply to join my Java novice learning exchange group: 798844620 , if you don’t understand, you can ask at any time. You can also directly contact me for video tutorials that lack basic introduction. I have the latest Java basics and intensive video tutorials. There are also some learning manuals, interview questions, development tools, PDFs that I have compiled during the time I was working on Java technology in the group file. Documentation book tutorial.

In-depth: Actually, it's up to you to understand what SOA and OSGI are. What is distributed (distributed database, distributed file system), load balancing (lvs, Ngnix, etc.). Understand cloud computing, understand real-time computing. Know spark, hadoop, storm. What is virtualization technology. I am just getting started in this area, so I dare not write more!

How to study normally:

1. Set goals for yourself.
2. Read more good blogs.
3. Learn more about new technologies (even if you are not a front-end student, you still have to know that the front-end seems to have AngularJS to broaden your horizons)
4. Write more code,
5. Go to java less water
6: Persevere! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! .
A word to everyone: the harder you work, the luckier!

Next, I will collect some Alibaba recruitment questions (all from the interview experience of my surrounding students), you can think about it

Java background direction NO1:

1. The difference and principle of Arraylist and linkedlist
2. What are the commonly used IOs, what design patterns are used in the io framework 3.
What is the difference between vector and arraylist
4. How to create a thread, what to start
5, 4 windows, 20 people How to ensure concurrency, talk about ConcurrentHashmap principle
7, two arrays have a length of 100 and a length of 101. The former is a subset of the latter. How to find out the extra number
8, do you understand NIO? Talk about advantages
9, JSP 9 built-in objects
10. Which books have you read, talk about the author and the name of the book
11. Distributed node internal communication mechanism
12, talk about your framework, how to understand MVC
13. Do you know network programming ? Talk about distributed.
14. Talk about your website architecture, SOA management method, what is webservice
15, what is RPC framework, what are its advantages
16, how do you usually learn
17. How is the team managed, where are you in
18, how Coordinating team conflicts
20, introduce your project, how the distributed database is divided into tables, and what middleware is used

Java background direction NO2:
3. Understanding of middleware
4. Where do I usually learn these technologies
5. How to solve technical problems encountered, give an example of nginx load. .
6. How to read the source code, talk about the realization of nginx memory pool 1. The
role of mysql connection pool, realization
3. How to prevent deadlock, how to solve deadlock
4. Common design patterns and their use
1. How do you design the database
2. Which types of database indexes are implemented based on which types
3. How do you optimize the database according to the index 4.
GC root
5. Transaction
6. ConcurrentHashMap HashMap (Here is the source code of ConcurrentHashMap, and the realization principle of lock in JAVA is based on AQS, (AQS principle, based on CAS implementation)
7. By the way, there is also the JMM volatile principle.
Others have forgotten
1. JTA realization principle (onepc two pc three pc): If there is a problem in the second stage submission, let’s talk about adding observe and discuss later The
mindset of the next two-stage submission 2. Spring (here I talk about its own IOC) analyzed AOP
3. Discussed what optimization Alipay has taken to grab the red envelope, and the transaction is based on several stages of submission...
2. Load balancing LVS and The difference between ngnix
3. Others are some learning methods. .
1. Which design patterns have been used in the project. What problem was solved. Pros and cons.
2. Three paradigms of table design, anti-paradigm
3. Example of transaction bank transfer. . Transaction design where a and b are not in the same library. How to do mysql. Write your own code how to achieve
4. Nginx load introduces the concept of reverse proxy load common algorithms
5. load how to communicate between multiple servers.
6. High concurrency problem Double Eleven, which one do you think will hang first. . I am talking about mysql. How to deal with it.
1. Computer network seven-layer model, TCP three-way handshake
2. Talk about common TCP applications
3. Talk about common linux commands
4. JVM garbage collection, volatile mechanism, memory model
5. The difference between string, stringbuffer, stringbuilder, ArrayList , The time complexity of the linkedList difference search and deletion.
6. Spring AOP, IOC
7. HashMap source code, thread pool framework source code
8. Common design patterns and explain what are the useful
IO models?
The difference between process threads
How do different operating systems implement the
gc algorithm for processes , and what
ACIDs does the collector have .
What is the difference
between the transaction isolation mechanism syn and the code block in the method, memcached and other nosql are not different,
explain the role of volatile in mvc
threadlocal , the difference between the heap and the stack and the difference between tcp and udp, how does tcp ensure reliable difference between arrays and linked lists





Sorting algorithm application scenario
Lucene full-text retrieval principle

Two sides:
browser input http://www.baidu.com, the whole process
distributed cache, consistent HasH algorithm, memcached memory structure
tcp three-way handshake
tcp sliding window explanation
SSO single sign-on
database sub-table, partition

/O: What interface is implemented to convert an object to a file.
Reflection: Which class is reflection and what methods are there? When methods are obtained through reflection, can they obtain private methods? protected?
Servlet: the connection between the process server and the session. The difference between cookie and session
springmvc: which class is the process to process the request, what methods are there, and what interface it implements
spring: two features explain where aop is used and the steps of declarative transaction management ( Classes related to each step)
Database: paging sql What else sql I forgot about the difference between left join and right join
Collection framework: What is the difference between arrayList and linkedList under collection, combined with hashmap source code to analyze hashmap

jvm principle classloader stack difference stack principle

The working principle of the garbage collection mechanism. When the object is no longer called, should it be recycled or how? After System.gc is executed, can it be recycled directly or how?

The difference between tcp/ip, how to synchronize a method, how to realize the thread
, the difference between abstract classes and interfaces (the question is very detailed here) The advantages and disadvantages of abstract classes and ordinary classes

Memcached principle process and its distributed algorithm caching strategy

And algorithm quick sort

Guess you like

Origin blog.csdn.net/weixin_46898270/article/details/108095232