In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-17 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >
Share
Shulou(Shulou.com)06/01 Report--
Every programmer, or every worker, should have his own career plan. If you see that the friends here do not have their own career plan, I hope you can think about your future.
I have this article because I have an appointment with my colleagues, and LZ himself likes to sum up after he has done something. Most of the content of this article is for the whole community of programmers, of course, because LZ itself is developed by Java, so some of the content is also aimed at us Java programmers.
First of all, LZ coordinates Hangzhou, 13 undergraduate graduates, calculate the interview in Alibaba B2B Division last year, Chengdu web front-end training has interviewed a total of 6 companies (because LZ does not want to ask for leave, so only go to other companies for interviews every night, so the interview companies are relatively few), of which 4 were successful, and the other two failed because:
1. In the interview of Alibaba's B2B business department, the two rounds of technical interviews passed, and the last round of the interview was the supervisor of the other party. As I heard that basically 90% of the technical interviews were successful, LZ had no scruples in the conversation with the supervisor. He blurted out a lot of things he knew and didn't know. As a result, he was asked dumb when asked many times. In hindsight, the ambiguous answer was the most taboo in the interview, and this failure also made LZ take every subsequent interview seriously.
2, another failure is a small company, also about 20 individuals, the whole team is Alipay out to start a business, very powerful. After the interview with LZ, the other party thought that my basic skills were all good, but the actual project experience was still lacking, because the other party was a start-up company and needed people to work, so I was not particularly suitable for their team at this time. As for the other four successful companies, LZ seems to have a high evaluation of the interview, but LZ does not want to keep a ledger, so it is not necessary to list the interview process of each company. The following LZ focuses on some of the skills that a Java programmer who has worked for about three years should have and some other personal insights.
Several stages about programmers
Every programmer, or every worker, should have his own career plan. If you see that the friends here do not have their own career plan, I hope you can think about your future. LZ often thinks about his future and sums up something from his own thinking:
Phase I: three years
I think three years is the first threshold for programmers, which will eliminate a group of people who are not suitable for writing code. At this stage, we go out of the campus, enter the society, become a programmer, and formally move from book content to real enterprise development. We know how to work as a team, how to use project management tools, how to control the version of the project, how to test the code we write, how to run it online, etc., we have accumulated some development experience, but also have a certain in-depth understanding of the code, which is a relatively pure Coder stage.
Phase II: five years
Five years is the second threshold to distinguish programmers. Some people in three years, in addition to finish the work, in the spare time will not study anything else, these people will always be a Coder, older people are bound to be replaced by younger people In the past three years, in addition to writing code, some people are also keen to study various technical implementation details, read many good books, write some blogs, and share technology on Github. After five years, these people must have the ability to be unique in technology and know their future development direction, gradually from a Coder to a system analyst or architect, and become an indispensable figure in the project team.
The third stage: ten years
Ten years is another threshold, and changing careers or continuing to be a programmer is on this node. If you stick to the idea of not changing careers a few years ago and work hard for it, then at this point in the decade, some people are bound to grow into programmers who have an in-depth understanding of the industry and technology, and who can analyze a product from scratch. Such people basically hold the most key positions in the company, such as CTO, technical expert, chief architect and so on. This is absolutely an honor for yourself, and of course the boss will never treat you badly financially.
In the first part, to sum up, I think that with the increase of your working years and your in-depth understanding of life, you should constantly think about three questions:
1. Am I fit to be a programmer after all?
2. Should I make a career as a programmer all my life?
3. What kind of attitude do I hold towards programming? is it enough or keep studying?
In the end, define your career plan, take responsibility for your plan and work for it.
About project experience
LZ often sees some other friends ask questions about project experience on the Internet. according to the feeling of LZ interview, the interview mainly depends on the following points: project experience + basic skills + personal potential (that is, whether it is worth cultivating).
With regard to project experience, I think teacher Fang Tengfei, founder of the concurrent programming Network, made a very good speech:
When introducing the product, the interviewer will examine the candidate's communication ability and thinking ability. in most cases, we do a function or a module of the product, but even so, have we figured out the whole system architecture or product? and can introduce clearly, why do you do this system? What is the value of this system? What are the functions of this system? What are the advantages and disadvantages? If you were asked to redesign the system, how would you design it?
I think this is enough to sum up. Chengdu web front-end training institutions, maybe you only work for one year, maybe you do the negligible modules in the project, of course, these must be your weaknesses and can not be changed, but how to make up for this disadvantage, I would like to sum up a few points from Mr. Fang's words:
1. Know exactly what your project does and what functions it has.
2. Define the overall structure of your project, so that you can draw it clearly to the interviewer during the interview and clearly point out where and how to call it.
3. Make clear the position and role of your module in the whole project
4. Identify the technologies used in your module, and better understand what technologies are used in the whole project.
In situations where you can't change your working years and your less convincing project experience (this must be a deduction), you can make up for and improve the interviewer's good feelings towards you to some extent in this way.
About professional skills
Finish the project and then write about the skills that a Java programmer with three years of work experience should have, which may be something that Java programmers are more concerned about. I would like to make it clear here that the following list is not all things you need to know-but the more you know, the higher your final evaluation and salary will be.
1. Basic grammar
This includes the role of keywords such as static, final, transient, the principle of the foreach loop, and so on. Today's interview I asked you what the role of the static keyword, if you answer the static modification variables, modification methods I will think you are qualified, answer the static block, I will think you are good, answer the static internal class I will think you are very good, answer the static guide package I will be very satisfied with you, because I can see that you are very keen on research technology.
The most in-depth time, LZ remembers that the interviewer asked me directly about the underlying implementation of the volatile keyword (by the way, the interview and being interviewed are relative, and the interviewer can ask this question and make the interviewer feel that the interviewer is also a technology lover, which increases the interviewer's favor towards the company. LZ finally chose the company that asked this question.) Don't think it's too picky-the simpler the question, the more you can tell the level of a person. The vast majority of other people's considerations of your technology are based on depth first and breadth second.
2. Set
It is very important and must be asked. Basically List, Map, Set, ask about the underlying implementation principles of various implementation classes, and the advantages and disadvantages of the implementation class.
The collection needs to master the implementation principles of ArrayList, LinkedList, Hashtable, HashMap, ConcurrentHashMap, HashSet, and can answer fluently, of course, it is better to master the CopyOnWrite container and Queue. In addition, ConcurrentHashMap asked a lot of questions in the interview, probably because this category can give rise to a lot of questions. About ConcurrentHashMap, I provide netizens with three answers or research directions:
(1) Lock segmentation technology of ConcurrentHashMap
(2) whether the reading of ConcurrentHashMap should be locked, and why
(3) whether the iterator of ConcurrentHashMap is a strong consistent iterator or a weak consistent iterator.
3. Design pattern
Originally thought to be quite important piece of content, the result is only in Alibaba B2B business department interview was asked once, at that time asked about the decorator mode.
Of course, we can't be so utilitarian and learn for the interview. Design patterns are still very important and useful at work. Among the 23 design patterns, we can focus on a dozen or so commonly used design patterns. The questions and answers about design patterns in the interview are mainly in three directions:
(1) what design patterns are used in your project and how to use them
(2) know the advantages and disadvantages of common design patterns
(3) be able to draw UML diagrams of common design patterns
4. Multithreading
This is also a must-ask piece. Because of three years of working experience, basically I won't ask you how to implement multithreading, but will ask you more deeply, such as the difference and connection between Thread and Runnable, what will happen to a thread in multiple start, and what is the state of the thread. Of course, this is only the most basic, unexpectedly, several interviews are almost all asked a question at the same time, the question is not the same, to sum up is like this:
If there are four threads of Thread1, Thread2, Thread3 and Thread4 to count the size of the four disks C, D, E and F respectively, and all the threads are counted and handed over to Thread5 threads to do a summary, how should it be realized?
Do smart netizens have an answer to this question? It's not difficult. There are ready-made classes available under java.util.concurrent.
In addition, thread pool is also a more frequently asked piece, how many thread pools are commonly used? What are the differences and relationships between these thread pools? What is the implementation principle of thread pool? In practice, it will give you some specific scenarios and allow you to answer what kind of thread pool should be used for this scenario.
Finally, although there are not many questions in this interview, multithreaded synchronization and locking are also the key points. The difference between synchronized and ReentrantLock, the common method of synchronized lock and the static method of lock, the principle and troubleshooting method of deadlock, and so on. With regard to multithreading, I have summarized 40 problems of multithreading in previous articles, which can be seen in the summary of 40 Java multithreading problems.
5. JDK source code
If you want to get a high salary, you must read the JDK source code. The above content may also be related to the specific scene, the JDK source code is to actually see if you usually like to study. LZ interview process was asked a lot of JDK source questions, one of the most tricky asked LZ,String 's hashCode () method is how to achieve, fortunately, LZ usually read a lot of String source code, answer a general. In fact, there is nothing to summarize the JDK source code, just look at the individual, summarize the more important source code:
(1) Source code of List, Map, Set implementation classes
(2) Source code of ReentrantLock and AQS
(3) the implementation principle of AtomicInteger, which can mainly explain the CAS mechanism and how AtomicInteger is implemented by CAS mechanism.
(4) the implementation principle of thread pool.
(5) the methods in the Object class and the role of each method
These are actually quite demanding. LZ basically studied the source code of the important classes in JDK last year, and it really took time and effort, and of course, in retrospect, it was worth it-- not just for the interview.
6. Framework
It's a clich é, something that must be asked in an interview. Generally speaking, I will ask you about the framework used in your project, and then give you some scenarios to ask you how to do it with the framework, for example, I want to do something when Spring initializes bean, how to do something when bean is destroyed, the difference between $and # in MyBatis, and so on.
If you answer the above questions well, the interviewer will often ask in depth how the framework works. The one who asks the most is Spring.
The implementation principle of AOP, of course, this is very simple, it can be done in two sentences, even if you don't know how to prepare. The most abnormal thing LZ encountered was to ask LZ to draw the UML diagram implemented by Spring's Bean factory. Of course, in the face of such a deep question, LZ can never answer / (o questions) / ~
7. Database
Nine times out of ten, the database will ask. Some basic differences between union and union all, left
Join, several indexes and their differences aside, the more important thing is database performance optimization, if you know nothing about database performance optimization, then you have time, it is recommended that you spend a day or two before the interview to prepare the SQL foundation and SQL optimization content.
However, there is no need to worry about the database. A company often has many departments. If you are not familiar with the database and the basic technology is very good, 90% of you will want you. It is estimated that you will first be placed in a department that is not very demanding on the use of the database.
8. Data structure and algorithm analysis
Data structure and algorithm analysis, for a programmer, will be better than never and will definitely come in handy at work. Array, linked list is the foundation, stack and queue a little deeper but not difficult, the tree is very important, the more important trees AVL tree, red-black tree, can not understand their specific implementation, but to know what is a binary search tree, what is a balanced tree, the difference between AVL tree and red-black tree. I remember an interview when an interviewer talked to me about the index of the database and asked me, "do you know what kind of data structure the index uses?"
LZ answered the Hash table, wrong answer. He asked, do you know why you use trees? LZ replied that because there may be more conflicts in Hash tables, it will greatly increase the time complexity of searching in front of tens or even hundreds of millions of levels of data. On the other hand, the tree is relatively stable, and it is basically guaranteed that the desired data can be found at most 20 or 30 times, and the other party said that it is not entirely right. Finally, we talked about this question. I also understand why we use the tree. I don't say it here. Why do netizens think that the index should be realized by using a tree?
As for algorithm analysis, forget it if you don't or don't want to study it. I remember an interview when the other party asked me which sorting method Collections.sort used, er, three liters of hematemesis. Of course, in order to show the erudition of LZ, there is also some research on algorithm analysis (⊙ algorithms ⊙) bMagneLZ or bravely said that it may be bubbling sorting. Of course, the answer is definitely not. Interested netizens can take a look at the source code of the Collections.sort method, using a sorting method called TimSort, that is, the enhanced merge sorting method.
9. Java virtual machine
To the surprise of LZ, the Java virtual machine should be a very important part of the content, and the probability of being asked in these companies is almost zero. You know, LZ spent a lot of time studying the Java virtual machine last year. Mr. Zhou Zhiming read LZ's "in-depth understanding of the Java Virtual Machine: advanced JVM Features and Best practices" no less than five times.
Back to the point, although the Java virtual machine did not ask, but I think it is necessary to study, LZ will simply make an outline to talk about the more important contents of the Java virtual machine:
(1) memory layout of Java virtual machine
(2) GC algorithm and several garbage collectors
(3) Class loading mechanism, that is, parent delegation model
(4) Java memory model
(5) happens-before rules
(6) rules for the use of volatile keywords
Maybe the interview is useless, but on the way to Daniel, it must be.
10. Some problems in Web
Java is mainly for the web side, so some questions about Web are also required. The two most frequently asked questions for LZ are:
Talking about several implementation methods of distributed Session
The four commonly used answers are naturally very satisfying to the interviewer, and another frequently asked question is:
Talk about the difference and relationship between Session and Cookie and the implementation principle of Session.
In addition to these two problems, the contents of web.xml are the key points. Filter, Servlet, Listener, not to mention a clear understanding of their implementation principles, at least have a thorough understanding of their use. In addition, some detailed aspects such as the difference of get/post, the difference of forward/ redirection and the implementation principle of HTTPS may also be examined.
Oh, come to think of it, the consistent Hash algorithm seems to have been asked several times. This LZ has been studied in depth and has written two blog posts before, so LZ naturally has no difficulty in answering this question. The article is a super-detailed interpretation of MemCache and an in-depth study of the consistent Hash algorithm and the implementation of Java code, especially that LZ is really not advertising for its previous articles.
Finally, if you are interested and have time, it is recommended to learn and study SOA and RPC, a service-oriented architecture, a must-have large-scale distributed architecture, a life-saving cure, and a cure that works all the time.
About HR interview
If you have successfully passed all the technical aspects through five hurdles, congratulations, you have taken another step forward from being promoted and getting a raise, becoming CEO, marrying Bai Fumei, and reaching the top of your life. But it's not time to talk about salary yet, and there's one final test: the HR interview. Almost all big companies have this round of interviews, so don't underestimate the HR interview. Many companies'HR has a veto over the interviewer-no matter how high the previous interview is.
Therefore, this round of interviews must also be taken seriously. The main questions of the HR interview are:
1. The reasons for leaving the previous work experience written in the resume
2. Current company salary and treatment
3. What kind of company do you expect to go to
4. the future development direction of the individual.
Let me specifically mention the second point. Some people may be more exclusive and do not want to talk about this. Personally, I am in an open state. I asked and said, of course, some exaggeration is still necessary. at present, it is no problem for the company to quote an extra 1,000 yuan in salary (after all, an Internet company has some subsidies or something). Because it has little to do with the salary you can get in the new company, the salary you can get in the new company is determined by the salary of the whole company and your position in the company according to your interview. HR asks this mainly because you have a number in mind and see if you are honest-some companies will ask you to provide the bank serial number of the nearest company when they join the job.
This is the end of the HR interview, which can be summed up in four words: watertight. The whole interview process is positive, do not have any pessimistic and negative attitude (especially when talking about the previous company situation, even if there are more dissatisfaction), there will be no problem.
Http://www.scdingyu.cn/
Http://www.scdingyu.cn/kcdq/web/
Http://web.scdingyu.com/
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.