The more you know, the more you don’t know


Like it and see. Make it a habit


This article has been included on GitHub github.com/JavaFamily, there is a mind map for the pilot of big factory surface, and many of my documents have been sorted out. Welcome Star and his improvement. You can refer to the examination points for review in the interview, and I hope we can have something together.

preface

As you all know, I’m definitely not a tech expert myself.

Bah, Ao Bing you cheat and play with women’s feelings of the man, and the title party!

I am not, but a lot of people around me are. I know a lot of bigwigs like Bytedance, PDD, Ali and so on, so the following is a summary of their growth path that I asked them, or some representative ones.

Around these friends are in the field of the Internet for many years, because of life and personal habits, many do not have the habit of writing blog, or did not come out publicly, but they met Shuaic, I SAO ah, I can help them sort out ah.

The purpose is to let a lot of new people like me have a clear understanding of a complete career planning road, what should bronze go through to the king?

Bronze – The root of all evil

“Computer Fundamentals”, this is all readers at the beginning of the college course, I asked the kids in the group, they all said yes, I think everyone is also.

In computer Basics we will learn the history of computers, computer characteristics, base conversion, memory management, linear data structures, network request protocols, and more.

Basic computer really is very important, very important, so important, why do I say so, inside still have a lot of computer knowledge involving the knowledge of the network protocol, everyone will be used later, I can tell you, in charge of the interview will be asked, what Http, Https, Tcp/Ip, three-way handshake, wave four times interview don’t ask too often.

When the Leader of the architect team next to me interviewed ali for the P8 position this week, I thought he was asking about the source code and the ultimate operation of middleware. I thought everyone thought the same as me, but they were wrong. Instead, they asked about the basic knowledge of computer.

I chatted and asked about the interview content, such as how to solve the binary tree mirror, the understanding of kernel state and user state, computer cache page and so on.

Everyone is not surprised, this he * is not the subject of our school? Why would a P8 boss ask that? In fact, it is very easy to understand, you think about it after a certain number of years of working in the breadth and depth of technology have certain attainments, you write code like this can not be optimized, machine configuration is the best, then what can be optimized?

Bottom layer, we all know that all languages will eventually run into machine language, and ultimately are to interact with the machine. Is the bottom layer of the computer the last thing to pay attention to?

Foley: He will come to our company for an interview this week. I will ask about the specific content of the interview in detail. If you want to see it, I can sort it out and write it out to see what the world of a strong person of that level is like.

After learning computer fundamentals, you basically have a little knowledge of the entire knowledge system of computer, and may still be ignorant of programming, but you have to step into the door of programming now.

Silver – Lesson 1 programming

Computer fundamentals, behind the programming of the introductory course.

99% of you who are reading this article started your programming life with this code:

I still remember Shuaibing I was a freshman began to learn C language, “C language programming” Tan Haoqiang teacher’s textbook, on page 27 is the first chapter, HelloWord, now recall vividly, the teacher wrote these two solemn words on the blackboard, deskmates she and I reveal infinite thirst for knowledge…

I think all languages start with a syntactic foundation, and the basic syntax of programming languages is much the same.

If, For, While and other keywords, List, Set, Map and other sets, Int, float, Double and other basic types, you will not know when you first learn, these keywords will accompany us to the end of their careers, right?

The next is a bit more difficult such as JDBC, IO, file flow ah, shuaic vaguely remember that at that time or code to write SQL and then query, do not know whether the memory is wrong.

Learn here, you may think you JavaSE invincible, go out to find a job, anyway, the handsome c at that time, think they can break out of a day, do not know the sky, everywhere show off skills.

But I had no idea what lay ahead of me, and I didn’t know I was just getting started, but if I wanted to move to the WEB, it was enough.

But all you’ve learned so far is server stuff. How do you show your server stuff to others?

This time we should go to do an ugly page, simple interaction, you have to learn HTML, Servlet, MySQL, JavaScript, Tomcat, CSS, etc.

Goal is to write the first dynamic website, maybe it’s just a login function, can only show the personal data, but this is an important step, you should make it clear that a user’s click on request, from where, where receiving, processing, where return, you have to understand the relationship between the browser and the server and the division of labor, Cookie and Session, Request and Response.

What happens when an Http request goes from a web page to a server that generates data back? Or what does Spring do? You can think about it

There is a project is really very important, AO Bing I was in the university to do a project, so far in the campus network stable operation, out of the internship interview is basically all the way through the thorns, the son of the peer interview, anyway, the university has a project to score points, is the reader’s college students remember?

Gold – A novice

These are some of the most original and official WEB development technologies since the birth of JAVA. Of course, real projects rarely use these technologies directly. Now, they are separated from the front and back ends, and Vue, Node.js, React and other front-end languages update and iterate quickly. Shuaic I learned a little just use comfortable, the front end of the friend told me and iteration…… I don’t fucking learn!

In order to continuously improve the ease of use, development efficiency, maintainability and scalability of these technologies, numerous open source projects are encapsulated and improved on the basis of these original technologies.

So don’t go looking for a job or an internship at this stage in a pollyanna-you’ll get crushed, or go to a small company for a few years and feel out of touch with the new technology stack.

Someone told you that small companies learn more, he hurt you, at the beginning can go to how big, the bigger the better, you want to go to the big you want to go to the small minute things, but you want to go to the big is relatively difficult.

SSM (Spring SpringMVC Mybatis) is a must to become a skilled programmer of add, delete, change and check. In this stage, you should also understand why you should use these three instead of those Jsp, Servlet, Jdbc. You need to appreciate the benefits of writing MVC, three-tier architectures.

At this stage, do not easily doubt the value of the framework. You may feel that they are troublesome at first, and sometimes they are unnecessary. When I first wrote this way, I found that it is really disgusting, why there are so many dao, service, Controller, etc.

You’ll look back a year or two later and realize that you couldn’t do any work without these frameworks, and without a clearly layered system, you started berating the architect of the project.

You *

But to remind you that at this stage, but also to avoid the mentality is, can skillfully add, delete, change and check, they think that writing procedures but so, and then fill in a master resume, this is also one of the reasons that the novice interview was criticized.

Shallow taste namely stop, is the novice’s big taboo, why write so, write so have what advantage, have what disadvantage, ask a few more why, you after many years will thank ao third of.

If you learn well, you should be able to write blogs, forums and other WEB projects skillfully, which is the basic requirements for employment.

Tip: and the way as a fresh graduates, in addition to the basic knowledge of you, if you have your own technology blog, and decent program can show the interviewer, is really add cent, structures, a simple project, the project process as you know, technology stack is familiar with, also can give the interviewer mobile web site demonstration, is plus.

For example, my friends Java3y, JavaGuide, I don’t have three hearts and so on, they have started to write their own blogs at this stage, and they have made their own achievements, which are part of your bargaining power in the interview, but also your bonus and your own wealth.

I asked them about it, and they’ve already gotten interviews from big companies just by blogging. Anyway, if you have a project, a good resume, a good blog, you get bonus points. If you don’t have anything, go learn more and play two games of LOL, and you’ll find it boring when you get to my age.

Platinum – Zunyi Conference

This will be a turning point of programmer’s career, grasp the take-off of life, grasp the failure of the whole will be lost, so I use in my hometown zunyi held zunyi conference, as the title of this stage, I think, wonderful ah!

If you don’t like the status of your database or want to follow the latest trends, you should learn more about NoSQL. Memcached, Redis, Mongodb, etc.

You may want to delve into a particular area of technology for your company’s business, such as the full text search technology ElasticSearch (Es).

You can get involved with Logstash, Canal, and other middleware and see that visualization is also a problem, so Kibana came into being. When you use it, you find that The Word segmentation habits of Europeans are different from ours, so you have to understand Ik Chinese word segmentation.

After using it, you will also find that Lucene has a lot of pits to avoid. You can also learn about Solr and so on.

In a word, knowledge is a system, AND I often tell the young in the group to form a knowledge system. You said Es in the interview that you should also understand the relevant technical stack. I chose the title “Beating the interviewer” as a gimmick.

You may even start to get interested in some of the more specific aspects of the system, such as access systems, single sign-on, or algorithm-research in some particular business area, which is a plus.

You’ve also discovered the drawbacks of Http communication after the service split, and you’ve been exposed to excellent Rpc frameworks and message queue middleware such as Dubbo and RocketMQ.

Then you found that ah, a large amount of data, the table can not stand, hundreds of millions of data to find out a few seconds, the sub-database sub-table, what horizontal split, vertical split, but also learn TDDL, Sharding-JDBC, DRDS and other such sub-database sub-table middleware.

However, if you use the unique id generation of global discovery, it is another problem. Maybe the middleware has its own, but you still need to understand the principle, such as snowflake algorithm, UUID, etc.

Later on, when you realize that the scale of your business has exploded, you may need to learn about dynamic scale solutions and solutions, especially those that are open source on FaceBook.

Then again and again later, you find that dynamic database and table does not work, a lot of offline data is also a lot of ah, a few T every day, the company will be lost, then you need to understand the big data scene offline analysis ah, data caching ah, data cleaning, data visualization and so on.

Then you need to learn what ODPS ah, Hadoop, Hive, Hbase and other middleware or tools.

Again again again again again then you begin to find that your code is a mess, for a long time after look not to understand yourself, repetitive, it is difficult to reuse the code of a mountain, don’t want to maintain, BUG.

Start focusing on design patterns, and change your code habits in a way that isn’t tied to the rigid THREE-tier ARCHITECTURE of SSH and MVC.

And again and again and again… . Aobing: Did you stop playing? I won’t list them.)

Have you realized the meaning of my sentence at the beginning of every article? Ao third discovers oneself more and more ignorant after working namely, you again taste below this sentence.

The more you know, the more you don’t know

Google and resources are your driving force, and rarely do you have to ask someone else to solve a problem. If you keep asking people at this stage, your tech career is almost over.

At this stage, if you are technically brilliant and as good as Obin, your income will be white-collar level, at least close to, or far ahead of, your peers.

I think most programmers get to this level after many years of work, some in a year or two, some in five or six years, and the people who fall behind at this stage are due to talent and intellectual limitations, lack of enthusiasm for the technology, and the content of the work.

Wait until the middle age, no longer fight young people, be eliminated, can only be in self-mockery diaosi and code farmers helplessly change careers.

This is a very important age, whether you can continue to progress, whether you can continue to work in technology after the age of 30, whether you can be independent in the company, I think it depends on whether you can go beyond this stage.

Many project managers in crappy companies have worked for years and haven’t even reached this level yet…

In order to 30 years old himself heard that layoffs are not empty, in order to the home of the old mother no longer in order to save electricity is not willing to turn on the light, in order to let yourself……

I think this is the stage you should be prepared for, and that’s why I’ve covered this stage so much.

Brick – Sail away

You read the source code of a good open source project, you learn the basics that you didn’t know, you start to understand thinking in Java, you write low-level code, and sometimes you think that what you’re encapsulating is better and simpler than some open source tool.

In-depth Analysis of JVM Virtual Machines, which you didn’t understand at that time, is now available, and can bring a lot of knowledge into the project to optimize, and see substantial changes (indicating KPIs).

The difficulty and focus of WEB always lies in performance, load capacity, and now the development of the network caused a large increase in data volume and operation density, but there is no corresponding progress in hardware.

You have to try to better use the more servers to work together, from a WEB client to the server to the database, all need to cluster, and need to be distributed, need reasonable control the flow of data, and grasp the good website, a lot of the balance of the machine, find out the performance bottleneck, find out the bottleneck of stability and safety, hardware failure, the third party technical errors, Incorporate it into your system and code as a matter of routine.

You will start to feel that the solution is extremely important, a will be tired to death will be repeated, a bad design, a bad solution, will let a group of excellent programmers work at a discount.

You need to be aware of the architecture and not settle for SSH three-tier architecture to the end.

Domain-driven design, event-oriented development, Agile development, and so on are a set of ideas that can make or break your project at critical moments. There are no standard paradigms to copy. You only know the ideas and principles, but the practices need to be tried and improved.

Pay attention to the various open source technologies, some of which you’ve probably already been exposed to, communications related, integrated development environment (IDE) related, and architecture related. You should be able to name a few mainstream technologies in every field, even though you’ve probably only heard of them and understood them.

But the key is to know how to choose a technique and learn it quickly.

I’m not talking about C++, C#, that’s irrelevant to JAVA programmers. I’m talking about languages that run on the JVM, such as scala and groovy, that make JAVA look old when you first get to know them.

But when you go back to a large, comprehensive project and feel that the entire architecture of Java’s accumulated technology is so complete that it’s almost like an industrial standard, you may find that you can’t read everything from the Spring family.

You can practice this stage well and be qualified as project manager, technical director of small and medium-sized company or small team Leader of large factory.

Master. – At the top

In fact, when I wrote the above stage, I felt that this is a place where many people are satisfied, they are the technical director of a small company, so what do I want?

But there’s life ahead of you, and I asked the top god around me, why step out of your comfort zone? Go to places like Byte, Ali, where there’s a lot more pressure?

They gave different answers, but the same is to challenge themselves, no one knows where is their end, so why not try more, new environment, new technology stack, new business scenarios to challenge themselves.

At this stage, your every move may be related to the survival of a project, and a wrong or correct decision may change the fate of the whole project. Water can carry a boat or overturn a boat, and I think it is appropriate to use it here.

There are very few bosses with such a level around me, but they are not rare. They are all the key people in the company. They lead the team to rush through large projects or critical moments of projects, and they can provide ideas and solutions in addition to problems in the fastest way.

My current boss is just like that. When everyone was scrambling to catch up with the data on Singles’ Day, he wrote a few scripts and got it done. * We were surrounded by a group of people, who were blind from beginning to end.

This is the world of the strong, I yearn for the world, of course, I know that such a world, only step by step to enter.

King – The top of Mount Tai

The last king in fact, I will not write any content, can be to this field of people themselves is countable, Aobing has around, but I think everyone experience it, generally is the contacts, communication, ability to a certain height, this stage of things I do not experience.

Can think of only the ancestors of the poem: point to the land, swing party.

Is to leave everyone infinite daydream space, the future may be you are the king of your field may also be right.

conclusion

Unconsciously wrote so much, the above is my personal eye to JAVA programmers generally the development of lines, limited to article spider is not comprehensive, practical personal growth path may be a large difference is different because the job content, there are some people who are in favour of the underlying studies, there are some people who are in favour of the needs of the business design, some with heavy industry, and technology, There’s also a lot of knowledge that’s important. There’s no easy way to do JAVA, but a person who’s interested in technology, when they get to this point, still has a passion for development and wants to write good projects.

Programmers who work purely for a living can’t go this far, this industry has come, everyone has 24 hours a day, why there is a gap, I think you and I both understand, know why then do something remarkable.

Obin’s ramblings

There was a vote last week remember? I want to change the name of my official account. Here is the result of the vote

Aobing is also a real man, said to change the change, you will find all my blog platform advertising, will be quietly over the weekend I change, after the three prince Aobing will replace JavaFamily.

And also made a very important decision, this more than a month, the public number at the end of the advertisement more or less have a little savings, but the money to tell the truth I go out just a hot pot are enough, almost every day is so.

Then I thought this money is everyone to give me, I will finally return to everyone, will be the same, every time at the end of the month I draw a prize, buy a dozen books to give everyone.

I don’t know if you like it or not!!

There is smoking small partners to drink coffee, here seems to be hangzhou small partners I can offline about, non-local small partners I hit 20 yuan, although not much but it is a mind.

Pay attention and don’t get lost

All right, everybody, that’s all for this article. All the people here are talented.

I will update a few weekly Internet big factory interview and commonly used technology stack related articles, thank you very talented people can see here, if this article is written well, feel “AO third” I have something to ask for praise 👍 for attention ❤️ for share 👥 for warm male I really very useful!!

White piao is not good, creation is not easy, everyone’s support and recognition, is the biggest power of my creation, we see the next article!

AoBing | article “original”

If there are any mistakes in this blog, please comment, thank you very much!


This article has been included in GitHub github.com/JavaFamily. There is a pilot mind map of Dacang surface, and a lot of my documents have also been sorted out. Welcome Star and improvement. We can refer to the test points for the interview review, I hope we have something together.