当前位置:网站首页>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 .
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 .
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 .
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 ;
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 :
- Identify what your project is really about , What are the features
- 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
- Identify your module's position and role in the whole project
- 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 :
- ConcurrentHashMap Lock segment technology based on
- ConcurrentHashMap Whether to lock the reading of , Why?
- 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 :
- What design patterns are used in your project , How to use ?
- Know the advantages and disadvantages of common design patterns .
- 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
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 :
- large , Keep calm
- 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 ;
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]所创,转载请带上原文链接,感谢
边栏推荐
- Mobile pixel adaptation scheme
- Let you have a deep understanding of gitlab CI / CD principle and process
- About Devops seven misunderstandings, 99% of people have been hit!
- 一种超参数优化技术-Hyperopt
- Chinese sub forum of | 2020 PostgreSQL Asia Conference: Pan Juan
- 把 4个消息队列都拉到一个群里后,他们吵起来了
- git 提交规范
- 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:王旭
- 抽絲剝繭——門面和調停者設計模式
- [note] error while loading pyv8 binary: exit code 1 solution
猜你喜欢
2020-11-06: go, let's talk about the scheduler.
LEADTOOLS如何检测,读取和写入条形码
深入浅出大前端框架Angular6实战教程(Angular6、node.js、keystonejs、
Dynamsoft barcode reader v7.5!
带你深入了解 GitLab CI/CD 原理及流程
Two dimensional code location and alarm system of Expressway
你真的会使用搜索引擎吗?
ImageMagick - add watermark
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Exclusive interview with alicloud database of | 2020 PostgreSQL Asia Conference: Wang Xu
随机推荐
如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
How does LeadTools detect, read and write barcodes
华为HCIA笔记
抽絲剝繭——門面和調停者設計模式
What should be considered in the promotion plan outside the station?
HMS Core推送服务,助力电商App开展精细化运营
FreeSWITCH视频会议“标准”解决方案
使用LWA和Lync模拟外部测试无边缘单前端环境
cubemx做stm32 USB开发
课堂练习
Python3 operating gitlab
想要忘记以前连接到Mac的WiFi网络,试试这个方法!
About Devops seven misunderstandings, 99% of people have been hit!
DOM节点操作
谈了多年的数字化转型,为什么还有很多企业依然“口头管理”
Come on in! Take a few minutes to see how reentrantreadwritelock works!
Plug in bilibilibili new version 0.5.5
Three steps to understand Kerberos Protocol easily
[note] error while loading pyv8 binary: exit code 1 solution