In this paper, the scope of technical basis is expounded from the perspective of transboundary small white, please combine with your own actual consumption <( ̄3 ̄)> table!

2020.9.11 Update -> * Added C/C++, Linux programming learning materials

2020.9.14 Update -> * Added recommended books, summary of Linux interprocess communication, revised part of the speech, and adjusted the layout

2020.9.15 Update -> * Added some associated videos

2020.9.16 Update -> * Added net-based videos and some recommended books

2020.10.18 Update -> * Added ali Dashen Guji interview video

Update -> * Add chicken soup content, if you can’t stick to it, please see the pressure on yourself

preface

Programming this road can go far, how long can go, see a point: you learn not to understand. Learning depends on whether you can learn, so how long you can program, how much you’re worth, and ultimately whether you can learn

We learn from an early age, but would you learn again once you were out of the stressful environment of school? Are you still learning? The gap between software industry practitioners is due to the different learning efficiency

Have you ever agonized and wondered:

  • Why are there more people in the school than in the society?
  • Why do big factories only want graduates with good foundation?
  • Why do Silicon Valley interviews only ask about data structures and algorithms?
  • Why does dAFang assign mentors and guides to new people?
  • Why big factory new growth here fast, others half a year top me 3 years?
  • Why my 5 years of experience is inferior to the small fresh meat that does 1 year in big factory?

These were the questions that had puzzled me, but something told me that if you could find the answers, you would be on the road, you could walk, you could reach the heights that you admired and dreamed of! After many times of thinking, to this year I was almost slightly shun the front and back, today issued to everyone appreciation

Today to share, including some learning materials, but more important is to clearly tell everyone, why you can’t learn, how to learn well, how to learn is the highest efficiency. Take it from me, Android 2 years of advanced will not be a problem

Common problems in learning

1. Blindly pursuing the latest technology without evidence

New technology comes every month, every day rises, every year new, come out one you see one, but are you really anxious to learn it? Are you in a hurry to use it in a project? Really let you use you dare to use, you have the right to use?

Have you ever thought that how many things I don’t know, don’t understand, obscure, project urgent, left over, and the technical debt I owe you all pretend to be blind?

You should know which ones are top priority and which ones can be put aside. Just like in project development, make a burnout chart. It will scare you to death. Of course, it is also your ability to list this graph, many people have not listed it. But if you ignore it, it’s a flight. Practical, pragmatic should be our daily

2. Learn a little here and a little there

Software development is an engineering project, and the technology also has the same characteristics as the engineering project, that is, the technology is highly integrated and cooperated with each other. The whole project is the product of the combination of theory and practice, and the highly integrated technology

How do many people study? Just read blogs! Today, A wrote this, so I read this; Tomorrow B wrote that again and I went to see that again. Aside from switching back and forth between different technology points in a short time, do you have time to learn it? How do you form a knowledge system, just to talk about the left and right? Failure to integrate your knowledge with each other is fatal in the software industry. Especially this way of learning a little bit here and there is really going to kill you. After a year of learning this way, I dare say you will only learn a few individual knowledge points, not the whole picture

But just too many people are like this, you shout study every day, I study, learn during the day, learn at night, but still can’t learn, you don’t want to think where is the problem?

3. If you don’t write down notes, you’ll forget them all

I once wrote an article (Why Tech People Should Blog about Tech) on the consequences of not blogging, which is that you learn what you’ve learned and forget what you’ve learned. Everyone should know that no photographic memory, even if you learn at that time again transparent, after 2 months without, you can forget nothing. If you work hard all day to see, all day to learn, a year down, the end of the year when you remember how much you remember? Is learning like this really meaningful? A waste of time! This is a kind of anxiety – based mental illness, is a kind of torture for their own.

Someone else’s article is someone else’s, does not mean that you read it is your own, can only say that you know there is such a knowledge point. You see why the great gods write blog, because the great gods hard extract the essence it will forget, so write blog out, one is to share, one is to write an article in the process of refining refining, sharing can still have fame

4 foundation is weak, principle, source code I just can’t learn

Have a friend to see the principle, see the source code:

  • OKHttp source code read not understand, thread pool, block queue I did not learn, network programming point also do not understand, the design pattern is only heard, I do not understand why the class design is so complex, there are so many classes
  • Glide source code don’t understand, design pattern forgot, don’t understand the class structure why so design, all say, but I just don’t understand where good
  • MMKV does not understand, how to achieve fast file storage? To see how it works, virtual memory, file mapping, Mmap, all of these things, have never heard of
  • How AMS works, how system services work, and how Binder communications work
  • I’ve been practicing custom View for many times, but I still can’t use canvas and paint
  • Hey, this looks great. How did you draw it
  • The video is so deep. How did you do it? Look at the article also do not understand ah, the product let me add something in the player page, but how to change this, the player style is not dead, I will only add a mask in the top good, but I see big god are their own custom player, good advanced ah

5. Backward learning

  1. MMKV today, completely can not understand. Look for blogs and see articles about using virtual memory. No, I went to look at virtual memory, and after a few days, I still don’t understand it. Then there are articles that use the principle of file mapping, read a number of resources and finally understand the point. But the mmap() function just doesn’t understand. User space, kernel space, things like that. A month passed, finally is to see almost, although the point to see almost, but are half meng do not understand, the whole knowledge is also difficult to string together
  1. Look at OKHttp source code, which has thread pool, and Socket, it took the better part of a month, finally is OKHttp source whole

The most terrible way of learning is backward learning, you will not go hard to see OKHttp source code, generally everyone has some understanding, experience, shallow code can see a general, when you see not to see the knowledge point to look at the data, and then a little further, is generally so to learn, the article is written in this way

I personally strongly criticize this way of learning, OKHttp is what you know, to achieve network functions, a lot of code is very complex, which will definitely involve network programming, design patterns, multi-threading knowledge, and all these knowledge will be applied. A lot of what also won’t, a little basic have no small white directly to see OKHttp source code, this is not called learning, this is called hard to see. You have no basic knowledge, even if you don’t meet the information, you can really understand the whole framework? The design ideas, the essence of the idea, the technical strategy you certainly can’t absorb, these are the most valuable part, the interview high play is focused on listening to you say this part

Too many people look at finished code when they don’t know anything about it, instead of first consolidating and learning the basics involved. I call this retrograde learning. This kind of learning way, and its low efficiency, difficulty is extremely high, the effect is extremely low. You clearly know what basic knowledge will be involved, why don’t you read all these basic knowledge before you look at OKHttp? If you don’t have the same level of basic knowledge as the author, you can’t understand the author’s ideas, and you can’t understand the author’s feelings, technical thinking and decisions when he writes the framework

What is a good way to learn

After 3 years of thinking and practice, I hope I can help you

1. Prioritize your studies

Don’t worry about the new technology that comes out every day. If you put it aside first, others will go to the pit first. If you learn the knowledge points that make you impossible to move an inch, these are the obstacles in your way

Lay a solid foundation for yourself. Lay a good foundation first

Too much fruitless study is because your foundation is not good, since you do not understand that do not force, should go to see the basic knowledge of use. In the case of OKHttp, if you don’t understand the source code, guess what the basics are. If not, learn the basics of network programming, design patterns, multithreading, and then look back at OKHttp. How many do not understand, and how many do not understand. You go to the Internet to see those OKHttp articles, you will scold: what this article, what are written, garbage, oh ~ so ah, I know, I understand…… That’s the right way to open it

3. Focus on big things

Don’t focus on one thing today and another tomorrow. For a single point of knowledge, use short, focused time to get that point settled before moving on to other things. Then take a break. For large pieces of knowledge, plan your time and focus on the time to bite down one point at a time before looking at others

4. Learn systematically

The knowledge points in the field of programming are all related to each other, whether it is the learning stage or the use stage. Broken, unstructured, and mutually unverifiable pieces of knowledge are not going to help you. Whether they don’t or not, you won’t really understand. Learning must be a field of knowledge once all learn in place, this is the most correct expansion

Let me just reiterate the importance of basics

The foundations are unstable and the earth is shaking!

For example, when we study math, we all learn first:

  • Arabic numerals -> mathematical symbols -> addition and subtraction -> multiplication and division -> multiplication table -> equation -> formula theorem

Since childhood we learn, in school is from difficult to deep, that why put into the software field, programming industry, we forget, we always look at the top of things, always can not see where the technical foundation shouts you quickly pay attention to it ak47 schematic item and loot added: ╰(yes □ ‘) added: ak47 schematic item and loot added: added: added: schematic item and loot in school

We usually use the open source framework/library, these are the final product of the software field, just like the formula theorem in mathematics, xiao Bai learning these source code is a peeling formula theorem layer by layer in-depth process, with the depth of learning, this process is like this:

  • Formula theorem -> equation -> multiplication table -> multiplication and division -> addition and subtraction -> mathematical symbols -> Arabic numerals

This process is what I described above as reverse learning, which is inevitable in the field of technology that is not fully mature, complete, and in place from scratch, but we have to know how much reverse learning it is

  • As you read more technical articles, you suddenly develop a technical point, which is like seeing a new oneFormula theorem
  • You’re going to go deeper and learn how it works and improve yourself, and that’s what you’ll findThe equation isKnowledge, but the equation is the knowledge of the respect I have not learned, also don’t know, I also don’t know how many knowledge points, so I read many articles, Wolf spitting dates to learn 2 yuan 1 time equation of but I don’t know the formula 1 and 3 yuan, three yuan two equations, so I looked at very difficult, confusing, total feel ability not line, In fact, in addition to the 2 yuan 1 equation, but also need 3 yuan 1 equation knowledge
  • After going through thousands of risks, I finally opened the skill tree of 2 yuan 1 equation and 3 yuan 1 equation. I wanted to have a further look. Suddenly, I developed another oneMultiplication tablesOf thing, fortunately this thing is more studious, regular, knowledge point is very studious together
  • But when I am happy, I found that there are a large number of symbols and simple formulas in the multiplication table, but these I do not understand ah, so I one by one to find baidu, and a bloody wind, finally, I finally can barely understand this symbol and formula
  • But eventually I became interested in these numbers, but I couldn’t and I didn’t want to see them, because everyone said interviews have to ask questions, so I had no choice but to harden my hair and take the time to look them up

Above is the push study, most of the time we can research and instruction into this layer, but when we look back, it’s hard for me to put these knowledge all strung together to make clear, the most I can more clearly understand part, this is what most people learn the norm: spend a lot of time, always learn don’t understand, don’t fully

But if you look at Arabic numerals -> mathematical symbols -> addition and subtraction -> multiplication and division -> multiplication tables -> equations -> formulas and theorems, these things are the basic knowledge, and when we have mastered the basic knowledge (network programming, design patterns, operating systems), you look at the framework, I got it. It’s not too complicated. I’ve got it all together

In programming this road, 10 times more difficult than clockwise counterclockwise, 10 times the power 1 not alarmist, who has made rapid progress in learning a certain foundation is very solid, to learn all kinds of application layer based problem will not be interrupted when I’m thinking, can complete absorption of ideas, need not again repeated many times, learning a point, so as to not quick to blame

Learning basic knowledge still has a very NB place, it is when you get the basic knowledge done, must form their own set of effective learning method, this will let the future learning, working journey onto the fast lane

Here is the greatest practical significance of a solid foundation:

“Something written by others is like a piece of candy, you can eat it without understanding it!” said one netizen.

  • When someone asks you, is this candy sweet? You don’t know, you can only watch others say sweet, you also say sweet
  • When someone asks you, what is the composition of this sugar, is it harmful to human body? You don’t know
  • When someone asks you, can this candy be eaten with other candy? You don’t know
  • When someone asks you, how do you eat this sugar chopped up? You don’t know
  • When you see someone add something to sugar and you eat it, you think it’s wonderful, you can’t see how it’s done, you can’t guess why it’s done. It’s just a little honey, really
  • What do you say when you see someone chopping up several kinds of sugar, mixing them together, then adding honey, adding lemon, and making a salad with vegetables…

The reality is that what we do is a salad. It’s about how do you use these ingredients, can you use them, can you use them in new ways

Thought is the king, in fact, bronze has not arrived

Today B station saw Ali: “JAVA Development Manual” author — lonely interview video: once dropped out of school to work, after writing a book was put into the library, see how grassroots programmers reverse attack for Ali technology great cattle?

Gu do say oneself just come out also is very difficult, endure slowly come over, new 3 years, old 3 years, seam mending 3 years again

In fact, for a lot of people, when the level of god eat shit is our king now, there is no doubt that the gods in the university of four years of accumulation, when the gods with four years of accumulation in the factory to move bricks boiled, I want to say that although we are at work, but in fact the kindergarten has not graduated

This is a lot of straddling, going to school that will not be good, relying on the training class of the top of these people’s world, I am one of these people, write this article is to let everyone not overreach, the god is also a little accumulated over, the god of the road as long as we walk we can also become a god

Don’t think about more NB, first university graduation, first their own basic state to university graduation, and then we product nibble and then work hard to move bricks for a period of time, naturally we are great god

Dry this bowl of chicken soup, superman is still god’s choice

People always have slack off, even yesterday was hopeful, today is a quilt is a procrastinator. This is ok have to give yourself some pressure, or who also self-discipline can not get up, the best pressure is to make a day to get up with hundreds of thousands of pressure, a minute without learning to lose more than one hundred thousand, the pressure from self initiative is the best. Can hypnotize oneself hypnotize oneself, lie to say 100 times that is true, every day say to oneself, learn 2 months, I NB, cycle, at least can be much stronger than before

Classic Speeches:

  • Check out this video if you are not motivated to study! Why do you study so hard
    • Barack Obama, a black man, from the beginning of the small between, can walk to the white country president, how inspirational, and precious, the difficulties and difficulties in the ordinary people can not imagine, is absolutely the century inspirational model, recommend to see, heaven on earth – The United States is also inspirational to the peak of life ヾ(≧O≦) “ow ~

With pressure video:

  • The Mid-life Crisis of a 35-year-old Code farmer
    • Role play, the true feelings of how ruthless companies, middle-aged how helpless, this is the best, absolute pressure to come once
  • Understand this and you’ll be sure to develop self-discipline quickly! Save procrastination and get rid of the bad habit better
    • Procrastination kills people. Too many people fail to reach the depth of senior life. Procrastination is the problem

Mock training class background:

  • [teasing] Why does the school recruit not like certain training class to come out

Advice from veterans and predecessors:

  • After eight years of working as a computer programmer, he has six new advice for computer majors
  • Programming techniques break the programming ceiling at three endless points
    • Technology is “deliberate practice” out, don’t just look at that useless, each small stage must have high quality output to have a sense of achievement, push yourself to go on

Android Career Development:

  • Enjoy the classroom – the self-cultivation of an Android programmer
    • From Tencent classroom head agency, quality is not bad, are N people come out to talk, worth watching. As mentioned in the video: unified programming specifications, concise code, elegant and clean architecture this is what we have been pursuing in programming, do these well, the level will come up naturally

Specific to Android learning

Always listen to others say foundation, foundation, bottom, bottom, what is the foundation, what is the bottom? According to my experience of nearly 3 years, the so-called foundation, bottom is a complete university course ->

  • C/C++
  • Introduction to computers
  • Computer composition/microcomputer principle
  • Operating system Principle /Linux POSIX programming
  • Network programming
  • The data structure
  • Design patterns
  • multithreading

Add language and platform basics (JAVA, Android) ->

  • JVM
  • reflection
  • The generic
  • Annotations, AOP, APT, AST, AspectJ, ASM, Javassist, IOC
  • Android Operating system

There are also some common apis and algorithms across platforms

  • Bitmap
  • Canvas
  • Paint
  • Various caching mechanisms, such as LruCache

Learning is sequential, at least after MY personal learning, probably groped out a suitable learning path for most people:

  1. C/C++Must learn C++ first, also don’t have to read much, know the syntax, can read the code, can write on Android.cppFiles, as long as they run
  2. Introduction to computersIf you look at this, most people don’t know the whole structure of a computer. A good introduction to computers is very comprehensive, and it’s a general introduction to the components of a computer. If you’re not interested in hardware,Computer composition/microcomputer principleYou can skip the hardware knowledge in the introduction to computers section
  3. Operating system Principle /Linux POSIX programmingThis is all about Linux,Operating System PrinciplesThis is all about the principles and not the code, but this is a must, and the rest of it is about the principles of the operating system. Linux programming is not a high priority, so you can learn it when you need it. But you know there’s a lot of Linux programming, so learn what you need to learn
  4. The data structure,Design patternsThere are no before and after learning these two parts. Students who have no time can put away the data structure, which will not affect the later learning
  5. Network programmingThis is the last point in the basic part, but it is very important to learn clearly and understand
  6. multithreadingNeedless to say,
  7. JVMThe best way to deepen your understanding of JAVA is to learn the JVM from the ground up, and there you can experience learningThe operating systemJava is a simplification of C, the JVM is written in C++, and everything in Java runs on C
  8. reflection,The genericThese two are a lot of people are lacking, must be, Which Android black technology away from the reflection
  9. Annotations, AOP, APT, AST, AspectJ, ASM, Javassist, IOCThese are all techniques derived from annotations, which are really dark technology, but they are so important that no matter which open source libraries on any platform, there are few techniques that are not used and must be mastered
  10. Android Operating systemAnd this is the last one. I learned itThe operating systemHere will no longer appear to learn not understand the problem, in fact, the operating system knowledge base, Android operating system is much better to understand, there is not much difficult to understand the point

With the above learning results, and then to learn the Android application layer, you will develop, learning is so cool ah, see a will be a, see a understand a, see each can understand fully, cool dead ヾ(≧O≦) “ow ~

Study Materials:

That many of them haven’t or haven’t finished, you forgive me, I update for a long time, will certainly to write all the learning materials on this, and these data are all my personal learning and appreciating, ensure the quality, ensure that small white can understand it, my profile is for the small white, because I am a small white (ノ へ  ̄,), for several years, or white, I feel sorry for the cultivation of society, no way I cross over, not training

This article focuses on the idea, data do not open spray, but also welcome to give me complete information

Learn the following, dare not say from the flat trip, but ensure you the same time, you can see 3 times the learning materials, absorb 5 times the knowledge, improve 10 times the knowledge system construction. 2 years senior, 3 years senior, 5 years into god is no longer a dream

C/C++

Video:

  • Silicon Valley _C language core technology
  • Shangsilicon Valley _C Language National Exam 2 (NcRE LEVEL 2 C Language Test must pass)
  • The wisdom podcast _C++ Zero Foundation Beginner 2020

Line, read these you C/C++ must be no problem, many times, many platforms for development you do not use C/C++, but if you go to see the source code or to do some black technology, you are absolutely inseparable from C/C++, I now realize why the university is first to learn C/C++

Introduction to computers

Video:

  • Crash course in Computer Science 40 episodes full/fine

This is the best introduction to the computer course, the content of the rich far more than 3 books, foreign science video, this video worldwide, content refinement, absolutely no nonsense, do not understand the students please watch several times, I learn this is also repeatedly watched 4.5 times, absolutely recommended.

Operating System Principles

Video:

  • Nanjing Forest Police College – Yang’s Linxu course

Blog:

  • Android Base – Operating system (1)

Books:

  • Understanding Computer Systems in Depth

I just watch teacher Yang’s video to see the entire Linux system, the quality of the content is very high, contrary to the university course long wordly, chaos of the normal state, about is capable, understand, and then we combined with my notes blog, this is no problem ~

But one of the things that you have to know, the principles of knowledge here, if you really want to develop based on operating system principles, C/C++ you have to know

Linux posix programming

Video:

  • Shang Silicon Valley – Han Shunping -Linux classic tutorial (general version)
  • Shang Silicon Valley – Shen Chao – Cloud computing +Linux system management
  • C/C++ Employment Class (I)
  • C/C++ Employment Class (Part 2)
  • Wheat College _Linux_ Foundation
  • Wheat College _Linux_IO
  • Wheat College _Linux_ interprocess communication
  • Wheat Institute _Linux_GNU tool
  • Wheat College _Linux_ Multithreading
  • Wheat College _Linux_ Network programming

Blog:

  • Android-based – Linux system interprocess communication

School Guidance:

  • Yet in silicon valleyThese 2 sets of videos are about Linux shell commands, I watched a part of it, it does. Mr. Han’s time is shorter, And Mr. Shen’s time is longer. Everyone chooses according to their own time
  • The intellectual dark horseThese two sets of videos are really long, from C/C++, all the way to the Linux system, there is a need to pick up to see ~
  • Institute of wheatThese 6 sets of video time is not long, want to specifically watch Linux programming, time is not too much, watch the operating system principle can see this deepen the understanding of Linux

Data structure, algorithm

Haven’t seen

Books:

  • Big Talk Data Structures
  • My First Algorithm Book

Design patterns

clearing

Books:

  • The Design Pattern of Big Talk

Network programming

Completed part:

Video:

  • Crash course in Computer Science 40 episodes full/fine
  • The horse soldiers

Blog:

  • Android Building Foundation – Network programming foundation

Books:

  • Illustrated TCP/IP

Data guidance:

  1. seeCrash course in computer scienceLearn the 5-layer network model, there is no more clear, common understanding than this
  2. seeThe horse soldiersIn the first part of this video, we continue to deepen our understanding of the basics of the web

multithreading

To tidy up. There’s too much stuff in here. I need to tidy up

JVM

Video:

  • Silicon Valley -2020 Latest Version of Java Virtual Machine from Beginner to Master

Blog:

  • Look at JVM (1)
  • Look at the JVM (2)
  • JVM Interview Questions
  • 【 intermediate 】
  • 【 Advanced 】
  • Code optimization from the JVM perspective

Books:

  • Understanding the JAVA Virtual Machine

Still silicon Valley this JVM video I go really good, ALL the points of the JVM are said, 203 episodes, 40+ hours, worth your time to learn, after watching, the JVM is no longer confused

Reflection, generics

To be written

Annotations, AOP, APT, AST, AspectJ, ASM, Javassist, IOC

Note that this part has not been studied yet

Android Operating system

Haven’t got through

Books:

  • A Deep Understanding of Android Kernel Design-> Two volumes
  • The Best Android Book-> This one is easy to understand, but has few theories

Code encapsulation, elegance

This is where I recommend you to read a book, to systematically see what elegant code is based on

  • JAVA Development Manual - Songshan Edition
  • How to Clean Code
  • Code Quality
  • Refactoring and Patterns
  • Enterprise Application Architecture Patterns
  • JAVA Program Performance Optimization
  • JAVA Performance Optimization

The last

Finally, I will express my feelings

The road ahead is clear. Just work hard

Compared with other industries, technology is the best way to go. The starting salary is high, and there is no need for contacts. You can go very high only by your own efforts. As long as you go forward, don’t give yourself a retreat, slow and steady you will be better than any other industry

This line is very clean

Programmer’s world although there are 996,007 such cruel, but compared to other industries this industry is too clean, I was doing port logistics before, also sold their own fruits, vegetables, I have seen too much darkness, exploitation, cruel, ruthless, edge ball, illegal, collusion… Heart tired, to do this line of programmers (_ _) blue |

To learn to ioo the ordinances

Every industry has its own learning context, the programmer industry learning context is the set of the school, start from the foundation of a little accumulation, that is, do not waste precious time learning

Why some big factory school recruit come in meeting have tutor to take, be afraid yourself long crooked ~

Learning is a process of puzzle, even if you opened the puzzles are points, also 淂 you go to puzzle between 淂 order to get the final 淂 picture, this is a very time consuming, no predecessors to guide their foolishly is bound to waste, with the right guidance, everyone can be a great god, and that I am out

Accumulation is not only a surface, but also a depth

I have seen Mr. Ma’s open class. Mr. Ma said that in The Interview in Silicon Valley, there are only two tests: algorithm and system design.

  • The algorithm represents the depth of technology, algorithm NB people, technical foundation must be good, at least the American learning route is such, algorithm good foundation is good, of course, the opportunistic Chinese except
  • System design represents global ability, comprehensive application ability, will generally test you through the project

At the end of the day, software programming is all about theory and practice. Basic skills are as important as experience, and that’s what we’re looking for

Again, the basics are important

The upper knowledge, application is very complex, especially rich, all kinds of labels, technology, all kinds of change. But the bottom knowledge is very little, is what I said above, learn you will, you will be solid foundation, it is so simple and clear

If you know the bottom line, you won’t be afraid to ask questions from the interviewer. In netty, Redis, Kafka, ES, nginx, you can talk about low-level things like Mmap, select, epoll, all of which come from kernel calls

Most people will be able to answer from the top, this is not what the NB interviewer wants to hear, this is known, they think you will, you don’t have to be too superficial, they want to hear you start from the bottom, followed by a technical outline

Coincidentally, now in the industry, the bottom of the people with a solid foundation is too few, you will have a great advantage, not only useful interview, usually learning application is also benefit ~

Form a suitable learning method

Technology is not finished, in the process of learning, we must form a set of their own learning methods. My method is to start from the foundation, to study the system, omission and supplement, the pursuit of knowledge points of mastery. Through the way of writing blog, share, sometimes the big guys will also communicate, support the problem or encourage, this is very effective for learning, I most seek is the ultimate efficiency, suitable for cross over the small white people

Programmer rating

This is look at B station calm and think far away -9527 classmate said, feel get to the point, I hope you understand below:

  • Junior programmer
    • Function oriented implementationThe code sucks, as long as the business works
    • Code not encapsulatedThe same, similar code is everywhere, a change up which laborious ah, find all over the world
    • copyCopy baidu, copy colleagues, dare not write, dare not have their own ideas
    • Programming for Baidu.
  • Intermediate programmer
    • Interface oriented developmentConsider code from the point of view of code hierarchy, try to achieve easy maintenance, easy to modify, a change, everywhere to use
    • Naming conventionsIt is very important to know meaning by name. I have experienced it
    • toolsThe code is highly encapsulated, divided into modules, grouped pieces, and highly reusable
    • Modules are developed and maintained by special personnelThis has a high requirement for code encapsulation, for other modules to be easy to use, easy to use, you have to maintain, but also low intrusion line, but also easy to integrate, it is difficult to do
    • 3. Strong learning abilityThe ability to study to get over here, really, at least the ability to study to pass the eye
  • Senior programmer
    • For one thing, everything is based on the whole project. Considering the whole company, that guy has too many things to think about, and he cannot hold it without extensive and deep knowledge. He has to lead the whole project, coordinate the work and cooperation between departments and positions

Pay attention to the body

The body is the capital of revolution. Learning and working must be efficient. Just to put it a little way: you learn and work late, you have to get up the next day, you still have energy during the day, you still have your brain working, you can still read what you have written?

Expect to write these destined to be discarded garbage, bugs out, it is better to take a good rest, strive to write a boutique every time. Don’t use the present to fill in trouble later

Not only will be a vicious cycle, broken, more dry more boring, more write more garbage. Rather than so bad, it is better for us to maintain excellent state from the beginning, good state is the most reliable guarantee of efficiency

I hate the companies that come at 12 o ‘clock at noon and leave at 12 o ‘clock at night. It looks like a long time, but how about things? How many effective working hours are there

Registered permanent residence

Beijing registered permanent residence does not make, make tianjin registered permanent residence, Tianjin is still buying a house to settle down, urban area, suburban county can do, go haihe talent to introduce a plan. Tianjin is not a good place to work, the IT industry is stagnant and wages are low. But Tianjin is suitable for the elderly, the environment is comfortable, lazy. If you want to take the elderly from your family, you can arrange for them to live in the real estate they bought in Tianjin, high-speed rail is also convenient, and it is also convenient to have a reunion once a week

Directly under the central government college entrance examination advantage is too big, than the college entrance examination big province has at least 100 points advantage, university colleges and universities also have priority to take care of, it is to give children to improve the starting line of life the best choice, the position is far away from the house is very cheap, buy a small spend not much money, but change the hukou is worth it