Hello, everyone. I’m the second brother.

Today, I came to Qingdao with my wife, daughter and sister for the Dragon Boat Festival. On the high-speed train, we talked about where to work after graduation. Old readers should know that I went to Suzhou after graduation. From a personal point of view, I like Suzhou very much. Not only the scenery is beautiful, but also the people are beautiful.

Which city to go to after graduation, in fact, for our programmers, or quite important, which to a large extent determines your future career development.

First of all, try to choose first-tier cities, such as Beijing, Shanghai, Guangzhou, Shenzhen and Hangzhou, where there are many opportunities, high starting point salary, technology to keep up with the trend. Next, can choose capital city, for example Chengdu, Nanjing, Wuhan, salary is relatively good, technology also can follow up, but also as a long-term development of the base, there is no accident basically settled down here.

I was from Suzhou back to Luoyang’s reason is actually very simple, because – love. With the one-year internship, I worked in Suzhou for three and a half years. At that time, I just got a wave of salary increase, signed a new contract, and had a good development prospect in the company. But for love, you have to leave, you know.

At that time in Luoyang’s development is actually quite pessimistic, did not expect, these years, with their own efforts, the development is still vibrant. These changes in my body should be obvious to regular readers, especially to some of my classmates, who basically think I am extraordinary, completely beyond their recognition level.

In fact, I have a plan for my sister, and she is very clear about this, so she wants to go to Beijing to do Java development after graduation. You don’t have to go to Beijing. Shanghai, Guangzhou, Shenzhen, Chengdu and Hangzhou are all options.

One big advantage of going to these cities is that starting salaries are relatively high. To put it this way, a good programmer, even if he has worked for five or six years, in a second-tier city like Zhengzhou, can get a salary of 15,000 is considered a good performance. For a first-tier city like Beijing, the situation is completely different. If you have a good education background, good presentation skills and can hit the interviewer’s pain point, there is no problem to get a starting salary of 20,000 yuan. If you have other excellent bonus, you can get a much higher salary.

At the very least, even if they don’t get this number, they will be much better than second – and third-tier cities.

Salary to get this number is difficult, of course, is difficult, but as long as find a way, their willing to work hard, there is a great opportunity to get. I’ll show you a picture of that, which I mentioned earlier in the ticket circle.

A reader, also be luoyang of, just be my fellow countryman, say to me half a year ago, prepare self-study Java, still be mechanical of major, recruit next year autumn look for a job. This is not, half a year later, he found it, now to Ctrip internship, salary level is not bad.

Ctrip and BAT these big factories in the salary is certainly a gap, but Ctrip is also the number of domestic Internet companies can row. Considering this reader is not a major, it only took half a year, so I think it’s pretty awesome.

At one time, he sent me a message, saying that the interviewer asked him about the knowledge of Java virtual machine stack. When he failed to answer, I immediately wrote the article about Java virtual machine stack and threw it to him. Unexpectedly, I did not expect it, and I really helped him.

In fact, I did not help him too much, more or rely on his own efforts!

Seeing this, there must be readers who can’t resist asking the second brother, “what questions have you asked, can you share?” I have to. Brother has already asked for everyone.

First, say one side of the knowledge point:

  • The basic data types of Java and the amount of memory used;
  • Java memory model;
  • Interthread communication;
  • Thread pool parameters and their meanings;
  • MySQL lock;
  • What to do if you encounter concurrency problems;
  • String constant pools and related issues;
  • Network communication protocol.

Say again two knowledge points:

  • Spring’s IoC;
  • Let you write a similar to MyBatis ORM framework, how would you write;
  • Database concurrent operation will bring what problems, and how to solve;
  • What is MySQL’s default isolation level?
  • Database index related knowledge points;
  • JVM knowledge;
  • Know those design patterns; Dictating the singleton pattern;
  • Fast row;

As you can see, it’s all very basic. I have here a GitHub star mark 115K + Java tutorial, which covers all the core knowledge of Java, including Java syntax, Java Collections framework, Java IO, Java concurrent programming and Java virtual machine, the content is not much, just focus on the key points.

GitHub star standard 115K + Java tutorials, super hardcore!

1) Collection: The difference between ArrayList and LinkedList, and the time complexity of adding, deleting, changing, and checking; The data structure of HashMap is realized by array + linked list. When the list size is greater than 8, it becomes a red-black tree.

zhuanlan.zhihu.com/p/21673805

After reading this article, the interviewer will ask HashMap again and basically answer the question.

Synchronized, volatile, lock, ConcurrentHashMap, CopyOnWrite, thread pool, CAS, AQS, etc. I recommend you to have a look before I recommended to you a brochure, ali several big guy wrote, the name is called “simple Java multithreading”, multithreading concurrency to learn to what extent? Let me ask a question, when using thread pool, because the use of unbounded queue, remote service exceptions cause inner layer surge, how to solve?

3) The Java Virtual Machine (JVM), concurrent programming, and the Java Virtual Machine (JVM) are the most important and most difficult parts of the Java knowledge system. In fact, learning Java virtual machine is not only for the interview, but also to help us understand the Language more deeply, and can lay a foundation for online questions. Java Virtual machine knowledge, I use a mind map listed, you can follow the map, to read the corresponding article.

If you want to learn Java virtual machines well, you must read Into understanding Java Virtual Machines: Advanced JVM Features and Best Practices by Zhou Zhiming, now in its third edition. If you find it hard to understand, you can actually check out the book notes I recommend for you on GitHub.

Github.com/TangBean/un…

Java memory management mechanism and Java VIRTUAL machine program execution need to be mastered, as for virtual machine performance monitoring and fault handling, in fact, can be put into practice after work will be much better.

4) Framework principle, I suggest you do not have any resistance to learning framework, do not always feel that learning Spring bucket is low, in fact, it is not, learn the Spring bucket, you can start to do the practice project, do the practice project, you will feel that the knowledge learned can be landed.

Of course, learning framework can not only stay in the level of use, but also understand some principles, such as Spring AOP, IoC, DI and so on, @guide brother’s “interview shock” explained very clearly, let’s have a look.

AOP (aspect-oriented Programming), that is, section-oriented Programming, can encapsulate the logic or responsibility (such as transaction processing, log management, permission control, etc.) that has nothing to do with the business module, so as to reduce the repeated code of the system and reduce the degree of coupling between modules. And is conducive to the future scalability and maintainability.

Inverse of Control (IoC) is a design concept that hands over Control of objects created manually in a program to the Spring framework. DI (Dependency Injection), also known as IoC, can make people more intuitive and clear to understand the meaning behind it.

If you do not understand, you can look at the code farmers turn over, which is more vivid.

5) Database, MySQL and Redis are the most frequently asked questions in interviews. About MySQL learning, I also recommended learning materials before, the book is “SQL must Know must know” and “High performance MySQL”, online learning website, MySQL Tutorial, content is very comprehensive, the following is the common knowledge points of MySQL in the interview.

MySQL data is stored on the hard disk, while Redis data is stored in memory, so the reading and writing speed is very fast, so Redis is widely used in cache. In addition to caching, Redis is often used for distributed locks and even message queues.

Like Redis memory elimination mechanism, persistence mechanism, cache penetration, cache avalanche and so on is often asked in the interview points, learning materials, recommend to see Mr. Qian’s Redis Deep Adventure: Core principles and application practice.

6) Basic knowledge of computer, including operating system, computer network, data structure and algorithm, etc.

Operating System, also known as the Operating System, is a program that manages computer hardware and software resources and is the cornerstone of computers. Unix, for example, is written in C language. Remember the college stage, the most often used a shortcut key is Ctrl+Alt+Delete, in order to call up the Windows process management program, see which is more memory to force it to end, so as not to play games when the computer stuck, hey hey.

The operating system is responsible for: managing devices, reading and writing files, controlling processes, managing memory, and so on. It is the boss of all software and holds the power of life and death. Recommended learning materials include Modern Operating Systems and Deep Understanding of Computer Systems, two great books for pressing bubbles or padding monitors.

To paraphrase a quote from @Guide on his planet of knowledge:

Many ideas and classical algorithms in the operating system can be found in various tools or frameworks used in daily development.

For example, Redis is very similar to the operating system cache. Redis is used to solve the problem of unequal processing speed and access to MySQL, while memory is used to solve the problem of unequal processing speed of CPU and access to disk and other external memory.

Now think, feel very regretful, university stage did not learn computer network this course well. I was focused on the Java programming language, but my major was computer networking.

Computer networking, like the ones below, is a frequent interview topic:

Like “TCP/IP in detail, volume 1” is a classic book on network protocol, but it is more difficult to learn, you can take a look at “Diagram HTTP” and “how the network is connected” these two books, there are a lot of pictures interspersed, reading will not be so boring.

Data structure and algorithm. Brother Wu, a programmer, has drawn a mind map, which covers almost all the knowledge points that will be covered in books on data structure and algorithm.

Common data structures are arrays, linked lists, stacks, queues, hash tables, binary trees, heaps, and graphs; The common algorithms are recursion, sorting, binary search, hash algorithm, greedy algorithm, divide-and-conquer algorithm, backtracking algorithm and dynamic programming.

Most of the time, we may feel that data structures and algorithms are not important. It is better to learn Java and Python directly. But WHAT I want to say is that learning data structures and algorithms can teach us an idea: how to translate real problems into computer language (from Liu Xin, author of “The Transformation of code Farmers”).

Another very realistic problem is that the interview should be tested, especially some big factories, like to test. So you have to play 66, ACM problems, or LeetCode problems, and you have to brush to the point where you feel like you’re useless: the BAT dude’s brush notes are so good!

Finally, the second brother must say that the monthly salary of 20,000 yuan is just a number, everyone’s situation is different, different cities, different companies, different interviewers, different education background, different interview performance.

But I think the content to learn is still very universal, although not summed up very completely, but I think these are very necessary, from the reader to Ctrip internship interview questions can be seen.

In addition, the second brother to emphasize the point is that we must have strong actual combat ability, to the internship can independently arrange the work to complete.

I am silent king two, dragon Boat Ankang, we can three support! Hope everyone to give good news ~~~~