当前位置:网站首页>What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?

What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?

2020-11-07 19:01:00 Java Doudi

Most of this article is for the whole programmer community , Mainly want to talk about the programmer's several stages and how to effectively improve their own technology .

 Work 1-3 Programmer of , What kind of technical ability should you have ? How to improve ?

 

The learning methods and materials of the article are in accordance with Java Programmer centered ; do Java We can focus on the development of ; The information in the article is free to share with fans , Just pay attention to the official account. 【Java Doudi 】 reply “666” You can get free access to ;

The first stage : Three years

Three years is the first threshold for programmers , This stage will eliminate a group of people who are not suitable for writing code . This stage , We go out of the campus , Entering the society , Become a programmer , From book content to real enterprise development . We know how to work in teams 、 How to use project management tools 、 How to control project version 、 How do we write code to test how to run it online and so on , Accumulated certain development experience , I also have a deep understanding of the code , It's a relatively pure Coder The stage of .

It is recommended to study this article : Best practices

This book will help you reduce the cost of building and maintaining software . If you're a software developer , You'll learn a set of practical ways to build easily modifiable code , Because in the application, the code often needs to be modified . For managers who work with software developers , This book will show you why this was introduced 9 A basic practical method , It will enable your team to deliver software more efficiently without turning it into legacy code .

 Work 1-3 Programmer of , What kind of technical ability should you have ? How to improve ?

 

The second stage : Five years

Five years is the second threshold to distinguish programmers . Some people in three years , Besides finishing the work , I don't study anything else in my spare time , These people will always be Coder, Older people are bound to be replaced by younger ones ; Some people in three years , In addition to writing code , They are also keen to study the implementation details of various technologies 、 I saw N Many good books 、 Write some blogs 、 stay Github Share technology on , In five years, these people will have the ability to be technically independent and know their future development direction , From a Coder Step up to systems analyst or architect , Become an indispensable person in the project team .

Recommend learning : The path of the programmer's progress

This is a very comfortable book to read ;

In five years, at this stage, we are thinking about more than just typing code , Although this book is for programmers , It doesn't contain code . In the author's opinion ,90% You don't need to write code for your programming work ; Programmers are not just programming experts , Its core competitiveness is to use code as a tool to solve common problems in human society . As a starting point , The author carefully conceived 8 A story , In the form of scenario substitution, readers are invited to think about key issues beyond the code : How to change the software development from technology centered to people-oriented ? Through the protagonist's perspective , Readers can compare themselves to the characters in the book , Find flaws in the decision-making process , Improve the comprehensive ability to solve problems .

 Work 1-3 Programmer of , What kind of technical ability should you have ? How to improve ?

 

 

The third stage : Decade

Ten years is another threshold , Change careers or continue to be a programmer on this node . If I had a firm idea of not changing my career in the past few years and worked hard for it , So at this point in the decade , Some people will grow up to have a deep understanding of the industry 、 Deep understanding of Technology 、 A programmer who can analyze a product from scratch , This kind of person basically works in the company CTO、 technician 、 Key positions such as chief architect , It's an absolute honor for me , Of course, the boss will never treat you badly financially .

The first part is a summary , As you work longer 、 Deep understanding of life and life , Three problems should be considered continuously :

1、 Is it right for me to be a programmer ?

2、 Should I be a programmer all my life ?

3、 What is my attitude towards programming , Is it just enough or continuous research ?

Final , Make clear your career plan , Be responsible for and work for your own planning .

Recommended learning project practice

This stage is no longer to be promoted by reading , You need to break through yourself in every project , So as to form their own structural thinking ;

A classic project : online car-hailing 、 Billion level mall project 、 China Taiwan project and so on ;

 Work 1-3 Programmer of , What kind of technical ability should you have ? How to improve ?

 

Project experience

On the Internet, I often see that some other friends have asked questions about project experience , According to the feeling of the interview , What are the main interview points : Project experience + Basic technology + Personal potential ( That is, the value is not worth training ).

About project experience , I think the founder of concurrent programming network said a very good paragraph :

When introducing the product, the interviewer will check the communication ability and thinking ability of the applicant , In most cases, we make a function or a module of the product , But even so , Have you made clear the whole system architecture or product , And can explain clearly , Why do you make this system ? What is the value of this system ? What are the functions of this system ? What are the advantages and disadvantages ? How would you redesign the system ?

I think that's enough . Maybe you only work for a year , Maybe what you're doing is a trivial part of the project , Of course, these must be your weaknesses and cannot be changed , But how to make up for this disadvantage , We can sum up a few points :

  1. Identify what your project is really about , What are the features
  2. Define the overall structure of your project , Be able to clearly draw for the interviewer to see and clearly point out where to call and where to call during the interview 、 How to call
  3. Identify your module's position and role in the whole project
  4. Identify the technologies your module uses , It's better to know what technologies are used in the whole project

Before you can change your working years 、 Own less persuasive project experience ( This must be a deduction ), In this way, you can make up for and improve the interviewer's liking for you to some extent . If there aren't a few projects you can take out , We can learn from the above several projects ( packing , All right ).

Expertise

Write the project and then write a 3 Years of working experience Java Skills a programmer should have , This may be Java What programmers care about . Let me explain , The following list is not a must — But if you master more , Final evaluation 、 It's bound to pay more .

1、 Basic grammar

This includes static、final、transient The role of keywords such as ,foreach Principle of circulation, etc . Today's interview I asked you static What are the functions of keywords , If you answer static Modifying variables 、 I will think you are qualified , Answer static block , I'll think you're good , I'll think you're good , I will be very satisfied with you , Because you can see that you are very keen on technology .

2、 aggregate

It's very important , It's also a must . Basically List、Map、Set, What is asked is the underlying implementation principle of various implementation classes , Advantages and disadvantages of implementation classes .

What we need to master is ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet Implementation principle of , Can answer fluently , Of course I can CopyOnWrite Container and Queue No better . One more sentence ,ConcurrentHashMap I asked a lot of questions in the interview , Probably because this class can generate a lot of problems , About ConcurrentHashMap, I offer three answers or research directions to my friends :

  1. ConcurrentHashMap Lock segment technology based on
  2. ConcurrentHashMap Whether to lock the reading of , Why?
  3. ConcurrentHashMap Is the iterator of strong consistency or weak consistency

3、 Design patterns

What I thought was very important , Only Alibaba B2B I was asked once during the interview of business department , It was the decorator mode .

Of course, we can't be so utilitarian , Study for an interview , Design pattern is still very important in work 、 Very useful ,23 Ten or so design patterns that are commonly used for key research , There are three main directions of Q & A about design pattern in interview :

  1. What design patterns are used in your project , How to use ?
  2. Know the advantages and disadvantages of common design patterns .
  3. Able to draw common design patterns UML chart .

4、 Multithreading

That's a question to ask . Because of three years of work experience , So basically, I won't ask you how to implement multithreading , It's going to go deeper, for example Thread and Runnable The difference and connection 、 many times start What about a thread 、 What are the states of a thread . Of course, it's just basic , Unexpectedly , Several interviews almost all asked a question at the same time , Different ways of asking , That's what I mean :

If there is Thread1、Thread2、ThreaD3、Thread4 Statistics of four threads C、D、E、F Size of four disks , All threads are counted and handed over to Thread5 Thread to do summary , How to realize ?

It's not hard to ,java.util.concurrent There are ready-made classes to use .

in addition , Thread pool is also a common question , There are several common thread pools ? What are the differences and connections between these thread pools ? What is the implementation principle of thread pool ? More practical , It will give you some specific scenes , Let you answer what kind of thread pool is suitable for this scenario .

Last , Although the interview didn't ask much , But multithreaded synchronization 、 Lock is also the key .synchronized and ReentrantLock The difference between 、synchronized Lock common method and lock static method 、 The principle and troubleshooting of deadlock

5、JDK Source code

To get a high salary ,JDK Source code is not unreadable . The above content may also be related to specific scenarios ,JDK Source code is to see whether you usually like to study . I was asked a lot during the interview JDK Source code problems , One of the trickiest asked :String Of hashCode() How is the method implemented , Fortunately, at ordinary times String See a lot of source code , I gave you a general idea .JDK In fact, the source code has nothing to summarize , Just look at the individual , Summarize the important source code :

  • List、Map、Set Source code of implementation class ;
  • ReentrantLock、AQS Source code ;
  • AtomicInteger Implementation principle of , Mainly clear CAS Mechanism and AtomicInteger How to use CAS Realized by mechanism ;
  • Implementation principle of thread pool ;
  • Object Methods in classes and the role of each method .

These are really demanding , It really takes time 、 Expend energy , Of course, look back , it is worth that , Not just for interviews .

6、 frame

A cliche , Interview questions . In general, I will ask you about the framework used in your project , Then I'll give you some scenes and ask you how to use the frame , For example, I want to spring initialization bean How to do something 、 Want to be in bean What to do when destroying 、MyBatis in $ and # And so on , These are more practical , Good accumulation at ordinary times 、 It's no problem how many learning frameworks are used in detail .

7、 database

The database will probably ask . Some basic images union and union all The difference between 、left join、 Several indexes and their differences will not be discussed , More important is the optimization of database performance , If you know nothing about database performance optimization , So there's time , I suggest you spend a day or two before the interview SQL Basis and SQL Prepare for the optimized content .

But don't 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 , Nine Chengdu will want you , I guess I'll put you in a department that doesn't require a very high level of database use first .

8、 Data structure and algorithm analysis

Data structure and algorithm analysis , For a programmer , It's better than not, and it's definitely useful at work . Array 、 Linked list is the foundation , Stacks and queues are deeper, but not hard , Trees are very important , More important trees AVL Trees 、 Red and black trees , Can not understand their specific implementation , But you need to know what a binary search tree is 、 What is balance tree ,AVL The difference between tree and red black tree .

Remember an interview , Some interviewer and I talked about the index of the database , He asked me : Do you know what kind of data structure is used for index ?

I got it Hash Watch bar. , answer incorrectly . He asked , Do you know why trees are used ? Answer because Hash Table may have more conflicts , In front of tens of millions or even hundreds of millions of data , It will greatly increase the time complexity of searching . And the trees are stable , It's guaranteed that you can find the data you want up to 20 or 30 times , They're not quite right , Finally, we talked about this issue , I also understand why trees are used .

9、Java virtual machine
Make a brief outline , Talk about Java More important content in virtual machine :

(1)Java Memory layout of virtual machine

(2)GC Algorithms and garbage collectors

(3) Class loading mechanism , That's the parent delegation model

(4)Java Memory model

(5)happens-before The rules

(6)volatile Keyword usage rules

Maybe the interview is useless , But on the way to Daniel , No, No. .

10、Web Some problems

Java Main orientation Web End , therefore Web Some of our questions are also necessary .LZ The most frequently asked question is : On Distributed Session Several ways to realize .

There are four kinds of answers that are often used to satisfy the interviewer , Another frequently asked question is : Let's talk about Session and Cookie The differences and connections between Session Implementation principle of .

Besides these two questions ,web.xml The content is the key ,Filter、Servlet、Listener, Let's be clear about how they work , At least know their use . in addition , Some details like get/post The difference between 、forward/ Differences in redirection 、HTTPS The implementation principles of .

If you are interested, if you have time , Suggested learning 、 Look at the SOA and RPC, Service Oriented Architecture , Necessary for large distributed architecture , Life-saving recipe 、 Cure all diseases 、 To test that .

If you've learned all this , At the same time, you need to be able to say it concisely , In this way, the interviewer will be shocked ;

Recommended reading :Java Focus on the core

 Work 1-3 Programmer of , What kind of technical ability should you have ? How to improve ?

 

About interview mentality

More than half of the interviewers answered questions with shaking legs 、 Types of voice tremors . It doesn't have to be, and it's a demerit , Two basic requirements for answering questions :

  1. large , Keep calm
  2. Clarity of organization

The ability to express is definitely an important investigation item in the interview . We're in the business of programmers , It's about teamwork , Not writing 、 Drawing a picture , A pen 、 Just one person , A programmer with poor expression ability , What's the use of coming ?

besides , Is to keep a good attitude . Good old saying , As long as you work hard , Grinding a pestle into a needle , Interview success or not , It depends on the accumulation in ordinary times , Hold Buddha's feet temporarily , It's no use looking at two interview questions , As long as you work hard enough , Success comes naturally , I don't usually study technology , It's a matter of resignation , As long as we fully demonstrate what we have learned in normal times .

So in my opinion , Don't think of an interview as an interview , As a technical exchange , Change the attitude of the interview from I want to find a job to find out the deficiency through the interview 、 Improve yourself , It will be much more peaceful , Even if you fail, you won't feel disappointed .

in addition , If you are a friend who is always interested in technology research , Really have confidence , Don't think that other people interview you better than you . The interviewer may not be better than you , He often asks questions that he studies more often , You also have a lot of your own research interviewers may not know .

At the end

The above information is free to share with fans , Just pay attention to the official account. 【Java Doudi 】 reply “666” You can get free access to ; Data name : Three growth books +6 A real project

Of course, in addition to the above information, there is an essential set of interview questions ;

 Work 1-3 Programmer of , What kind of technical ability should you have ? How to improve ?

 

After reading three things ️

========

If you think this is helpful for you , I'd like to invite you to do me three little favors :

give the thumbs-up , forward , There's your 『 Praise and comment 』, That's what motivates me to create .

Official account 『 Java Doudi 』, Share original knowledge from time to time .

At the same time, we can look forward to the following articles ing

 

版权声明
本文为[Java Doudi]所创,转载请带上原文链接,感谢