Write in front: in fact, learning is a very personal thing, everyone should have a set of their own way of learning, rather than copy others. What works for others may not work for you. So, please read this post with a “is this going to help me?” mentality, not a “this is how I learn well” mentality. If something works for you, keep it in mind, and if it doesn’t work for you, laugh it off.

I am not a big bull, but just an ordinary undergraduate student. Please forgive me if I have some bad things to say. Because I am only an undergraduate student, I do not have much working experience, so I do not have much learning experience after work, so most of the article is about some experience in college. I am sorry for that.

### The whole idea of the article

This article will be developed from the following parts:

  • Know who you are.

  • Learning purpose.

  • Time management.

  • Learning methods.

    • Learning steps.

    • Access to knowledge

  • Several factors that affect learning

    • Your own mindset.

    • The influence of external things.

  • Anything else you want to say

    • Study of College Students

    • Some feeling

### 1. Know who you are

1.1

The key to figuring out who you are is to know what you want. This is the first and most important step. Because it’s about choosing the right direction and being able to put your heart into it.

We all know that you can do more with less when you’re doing something you’re passionate about because you’re willing to do it instead of having to do it for some reason.

People often ask me, is it easy to find a job? Java job search easy to find? Should I learn Android? The answer to these questions is obvious: if you’re good enough, you can get a good job with anything you study.

So say, do not because of a certain direction of fire, and blindly to chase; Don’t stop studying a particular direction just because it might not be easy to find a job.

I remember once answering a friend in this way, he told me: In many cases, choice is far more important than hard work. If I choose a direction that I don’t like but is popular, I may earn more than if I choose a direction that I like but is not popular. Many people should have this idea, but I think, the premise that choice is far more important than hard work is that you make the right choice, but can make the right choice, he is already an excellent person. Putting that aside, how far can you go in a field you don’t enjoy?

For a tech guy, getting older isn’t so scary, it’s that you don’t have the technical depth to match your age. You’ll soon be out of the running when you’re doing a job that a fresh graduate could do. Therefore, make sure to choose the direction you are interested in, because only in this way, you will be interested in further learning, you will not be crowded by young people in the future.

1.2

The second point to get to know yourself is to recognize someone else. Complacency, arrogance and self-deception are the stumbling blocks to our progress. If you think, well, you’re great right now, that’s great that you can do this, you’re going to stagnate and waste a lot of time.

This is my own personal experience. My school is a double-non-university, computer is not a good major in the school, and the information is relatively isolated. In my circle, I thought I was pretty good, and I always did. However, when I began to prepare for the spring enrollment this year, I found that I was wrong, I was nothing compared with the really excellent people. I used to think that I can do things, go out to see, we can actually; I used to think that a lot of knowledge can be learned after work. When I went out, I found that someone had learned it already. But it’s a little too late to start learning from scratch now that the job search has begun.

So never be complacent and know that there are people out there. If one day you feel that no one around you is better than you, be sure to remember, not you go to the top, but your circle, should expand. Only when you are surrounded by more powerful people can you realize your limitations. This is what I always say: you become who you want to be, and who you surround yourself with will become who you are. You know, people like each other.

Second, the purpose of learning

Why study? The purpose of learning is to gain competitive advantage and increase choice opportunities. You know more than others, learn deeper than others, you are more competitive. For programmers, there is no way to survive in this industry without learning. The upgrading of technology and the in-depth mastery of technology require constant learning. If you don’t learn, you will soon be obsolete.

When looking for a job, there are other professional friends will envy and I said: you this professional really good, a graduation monthly salary is ten thousand, I only 3,4 thousand. Actually, what I’m trying to say is that if you don’t learn technology, you’ll lose your job. Most people only admire the high salary of some computer graduates, but ignore how they spend the four years. The sky is not falling pie, computer major every day watching TV play games, graduation can not find a job. Hopefully you won’t be one of those people who end up playing video games and watching TV and complaining about their low pay.

### time management

Now that you know where you are going and why you want to learn, let’s talk about how to manage your time, or how to make a plan.

Many people should have had such experience: I am so bored now, I don’t know what to do, I don’t know what to study, I don’t know what to do when I turn on the computer, I don’t know what to do when I turn on the mobile phone, and then I can only choose to watch a live broadcast, watch TV or play a game to kill time. When a day after the past, suddenly regret, feel that they had been learning.

Why is that? It’s because you don’t have a plan. If you had a plan for your time each day, you wouldn’t be confused. You would know what you should be doing at that time, instead of killing your time by watching TV or playing video games.

About time management. First, have a big plan, such as a yearly plan, a monthly plan, a weekly plan. This year in general what goals to achieve, this month to learn what knowledge. Then there’s the daily schedule, down to the hour. Make a detailed list of what you do and at what time of day.

Second, don’t be too blindly confident. Many people never complete their plans. If you were able to accomplish everything you set out to do, you would be doing something amazing right now. If you barely keep track of your schedule, don’t overload yourself with tasks when you start your day. Because if you fail, it will affect your confidence. The best way to do this is to start with a few simple tasks that you can easily accomplish each day, and then slowly increase your daily tasks. Finally find a rhythm that works best for you. This process can take a long time, because you have to constantly try and improve. Find the best time to rest, find the best time to work, etc.

When it comes to time management and planning, everyone should have his or her own plan, because everyone’s situation is different.

Finally, don’t take your plan for granted. As I mentioned above, many people never finish their projects. But I still hope you can take it seriously, because you will benefit only yourself.

### 4. Learning methods

Blind learning does not work well. When I used to read a book, I felt like I was reading a new book. It seems that they have learned a lot, in fact, the real master is not much. Learning isn’t about the more books you read or the more articles you read, it’s about how much you know. So, how to effectively learn a new skill? I’ve summarized the following steps.

4.1 Steps of learning

Identify learning goals

First, you need to confirm what you want to learn and remember not to be half-hearted. It’s best to focus on one thing at a time, rather than learning Python one day and wanting to learn Java the next. Do everything have a goal, otherwise easy to become a headless fly. At a large scale, a goal can be to become a leader in a certain field. At a small scale, it can be a study plan for today.

One of the most common questions asked in HR interviews is: What are your career plans? An excellent person is bound to have a career plan of his own, knowing what to do in what period and what goals to accomplish in each period. It’s the same with study. When you have a clear goal, you won’t be confused and don’t know what to do.

Make a Study plan

As mentioned above, the plan may not be able to keep up with the changes, and there may be other things happening today that may cause the plan not to be completed, but at least the general direction is there, and you won’t be confused about what to do in the near future, which is the fundamental value of the plan. So, don’t worry if you can’t finish your plan. It’s for you to learn. So what if you can’t finish your plan in one day?

Find your own material and start studying

Remember, don’t be a total handyman. Because you don’t value what you get easily. And don’t pray that all the information you’ll ever need to learn will be provided to you. Finding information on your own is part of being able to learn on your own. Of course, I’m not saying that you shouldn’t ask in the group, after all, asking is a skill, but you must have your own source, whether it’s a blog or a book or an official profile.

Brain maps and flow charts

Learning can never be learned only by reading books. It is very necessary and effective to construct relevant knowledge brain maps and flow charts of related steps by ourselves. For example, if you want to learn Java, you can first look for a brain map drawn by others from the Internet, to have a general understanding of Java, each learning a small knowledge point, draw a brain map of the knowledge point, after learning, draw a brain map of the whole Java system, so that you will be very familiar with Java. For example, if you are learning GC, it is difficult to remember the process just by reading a book or a blog. In this case, draw your own flow chart, I guarantee you will be clear about the process. Remember: even if you have one, you should draw one yourself. Drawing your own and looking at someone else’s are two different levels.

coding

Those above, are the steps to master the theoretical knowledge, is a mule or horse still have to pull out. Coding is the most important thing, even if you can boast a knowledge point, but can’t write a code is still not useful.

notes

A good memory is not as good as bad writing. After learning the knowledge, record it and summarize it again. You will know how much you have to try.

review

If you learn something that hasn’t worked for a long time and suddenly you have to pick it up again one day, you will realize that your previous efforts were totally worth it. You have the information! Have a brain figure! There are flow charts! And notes! I’ll remember it in a minute.

Write a practical demo yourself

If necessary, write an interesting application, not a simple example.

This process, in fact, is very time-consuming, students suggest following this process, because students have a lot of time, time is very little according to their own situation. Brain maps and flowcharts I find very profitable.

It says that sometimes finishing a book and starting from the beginning can feel like reading a new book. So WHEN I read a book, I will make corresponding notes. When I read, I will outline the book and mark some important places. After reading, I will close the book and write down what I have just learned with a notepad (the outline is ok), and then compare with the book to make some modifications. When I finish reading a book, I will have a corresponding note, and I can even read my own notes without reading the book. Read + recall + record, you can fully grasp the heart of a book.

This is generally the case, but don’t follow this process rigidly, as it can be time-consuming. Here are some ways to get information.

4.2 Access to information and some tools.

Access to information

  • Baidu/Google: Let’s see what he can do
  • The official website: the documentation on the official website is usually sufficient
  • Related books: Jingdong and Dangdang often have activities.
  • Community: There will be tutorials in the community, as well as individual projects
  • Github: Awesome on Github.
  • Major blogs and personal blogs of well-known bloggers: It’s also good to check out some quality blogs
  • Wechat public number: try to find the relevant wechat, of course, a lot of articles on wechat are from blogs, but the advantage of wechat is that you don’t have to find it yourself, others have helped you find it, the disadvantage is, the amount is too little.
  • Zhihu column: Similar to blog.
  • Some videos or wiki tutorials: There are a number of instructional video sites, both for a fee and for free. Common ones include MOOCs, Cainiao, netease Cloud Classroom, Geek Academy, Yibai and so on. Some training institutions of the video is also good.

Some tools

  • Teambition. A team management software, of course, is also good for personal use, with clients for various platforms. I use it to plan my own schedule.
  • Baidu brain map. Online brain map, free unlimited capacity.
  • Xmind.
  • Processon. It’s also online, so you can draw flow charts and brain maps. Free capacity is limited.
  • Visio. Draw various diagrams.
  • Tomatoes and potatoes. Pomodoro method management tools.
  • Coding. Code management sites, like Github, are domestic products and will be relatively fast.

I think Github can be run as a personal brand, so it’s better to only put some good projects, some irrelevant code in coding, or open source Code cloud in China.

Some tools for taking notes

  • Gitbook: an open source tool that can generate e-books directly. If you don’t know, I’m using it now.
  • Simple book: Because simple book can create a collection of essays, just like folders, good for taking notes.
  • Youdao Cloud notes. I like to use markdown. Youdao Cloud support)
  • Impression of notes
  • The blog
  • Create your own blog
  • OneNote

Markdown is a good way to take notes. There are only five or six grammar points in markdown. It’s easy to remember and easy to use.

### 5. Several factors affecting learning

5.1 Your own mindset

Mindset is key. There are always things going on around us, and sometimes these things can affect our mood and mood. At this time, if you have poor self-regulation ability, you may not want to do anything, do not want to work, do not want to study. Then decadent for a few days.

What I want to say is that an excellent person must be an optimistic person, not clinging to gain and loss, not easily influenced, and actively face everything that happens in life.

5.2 Influence of external objects

I’m mainly talking about mobile phones. Nowadays mobile phone has become an indispensable thing in people’s life, it brings us convenience, but at the same time, it also occupies a lot of our time. I don’t know if you turn on your phone from time to time, but for the most part it’s the same as before, but you can’t help but turn on your phone for a while; Or there are several groups that are constantly chatting, and then you can’t help but get involved and time will slip away before you know it.

Don’t be a slave to your phone, so when you’re working or studying, mute your phone, put it away, and don’t look at it. You’ll save a lot of time.

Besides cell phones, another foreign object affects the surrounding environment. If you can study in a noisy environment, that’s great, but if you can’t, find yourself a comfortable environment to study in.

### 6. Anything else you want to say

6.1 Study of College students

I know that most of the people who have booked this share are actually students, and some are new students. What I want to say is, play is ok, but remember, you come to school to learn knowledge, don’t put the cart before the horse. One of my biggest regrets now is that I didn’t study hard during my freshman year so that I wouldn’t become the next me,

In fact, most of the time to learn computer in college is up to you. What the teacher teaches in class is very important, but those are the foundation of the foundation, which can not let you find a satisfactory job, so you need to learn a lot of things on your own. I have a brief summary of what to do in the next few years of college, which you can refer to (assuming your future major is Java).

A freshman

At this time, just contact with the computer, you may not understand anything, listening to the face is confused, such as for loop, if statement, disgusting. Instead of complaining, try to have fun. Because you’re already in this hole, and you can’t get out of it unless you change your major.

How to have fun? I think the greatest beauty of programming is the visceral sense of accomplishment you get when you succeed. I don’t know if you still remember the first time when I wrote helloWorld, I made various mistakes and wrote —— semicolon in Chinese, and there was a —— missing in the braces, but I finally successfully output the result of the joy.

For someone new to programming, I think writing games is the easiest way to get a sense of accomplishment. Here we recommend a column — do games, learn programming (C language). The author of a column on c learning by having some students play games. I think this is a good way to learn, which is challenging and can cultivate a sense of achievement.

College entrance language is almost C or C ++. If not, you can also refer to the games in the column and try writing them in your own words.

But here’s the point. Writing games can be challenging. Some people may get into trouble at the beginning and don’t know how to go on. At this time, if you can stick to it, ask teachers, seniors, Baidu, Google, solve the problem, then you will be very good in the future. Don’t be discouraged if you give up, as games are not suitable for everyone, and you can improve yourself by doing some ACM problems. Every school should have relevant website. If not, you can go to Zhejiang University. Or Leetcode or Niuke. Do some problems within your ability, you can also improve your interest.

Of course, this is only for some students, after all, many people have no interest in code. I can’t bear to write code. For this part of you, I recommend learning HTML and CSS. Because they’re super easy to get started with, and they’re for writing web pages. There is no c voice so complex logic, a few tags, a few CSS can design a beautiful web page, I think this will also have a sense of achievement.

Freshman year is a year to lay the foundation and cultivate interest. You don’t have to be a great achiever to write a great program. As long as you develop an interest in programming and are willing to pursue it, your job is done.

So, this year, all you have to do is develop an interest in programming (the basic requirement).

A sophomore

Let’s say you like programming now. But the average freshman only learns one language (default c/ C ++, don’t ask me why, because that’s how I learned it…). . So you might just write a few mini-games, write a mini-management system, or brush off some problems. You’re not satisfied. You want to do something more interesting and better. At the same time, schools should be offering Java classes by this time. (Suppose you want to learn Java).

Write in front: sophomore to do, is to broaden your breadth!! Breadth!!!!!

First, learn Java. Maybe the pace of the school is one semester. But I recommend that you do it in a month. With the basics of C and C ++, Java is actually pretty easy to learn (at an entry-level level). Even better, the summer after freshman year, you found time to nail down Java basics first. This way, when school starts, no one else has touched Java yet, and you can proudly say that you have learned it all. Full of sense of accomplishment.

So how do you learn Java basics? My advice is to do the video first, the primer second, and write your own code.

Reading a book can be tedious. If you are new to Java and just reading a book, it may take a long time to configure an environment variable, which will hurt your confidence. Don’t underestimate the process of configuring environment variables. I remember two days of mismatching environment variables and a lot of people asked me for help. But the video is much better because the teacher shows it to you, so you don’t have to go through a lot of detours, and it’s much more fun than the book.

The book is a supplement, because the teacher can’t remember everything, there will always be omissions or things that are not very good, then the book can come in handy. After watching the video of a class, turn off the video and write the corresponding code by yourself. If you make a mistake, try to solve it first. If you can’t, watch the video again until it runs through. Then go to read the book on the explanation of this part of the knowledge, deepen the impression, check the missing.

The point here is to make sure you write the code yourself. When you read it, you think you know it, but most of the time, it’s all wrong. So make sure you write it yourself. Also, don’t use an integrated development environment (eclipse idea NetBeans, etc.) when you’re starting out, just use an editor like notepad++.

The biggest disadvantage of this process is that it takes a long time, but the effect is very good. Java has a lot of the same things as C/C ++, such as some statements, if you have a good command of them, you can just ignore them. It’s up to you.

Recommend some study materials.

  • Video: Bi Xiangdong, Ma Soldier, Han Shunping’s video are very good. Public praise is good, do not believe you can go to Baidu. I see bi Xiangdong, speak of very interesting. But everyone has different tastes. You can download several sets, listen to them all, and choose one you like.

  • Books: Recommended for starters is Head First Java. Head First is a series of books that are illustrated and case driven to make reading a less boring process. “Crazy Java handout” is also said to be quite good, but I have not seen, do not comment.

  • Editor recommendation: notepad++ is free and compact. Beginners enough, baidu download directly on the good. Sublime, VS Code, and Atom are also available, just pick one you like.

One month, kill the Java foundation! That’s the first thing you should do sophomore year.

As mentioned earlier, what you need to do this year is to broaden your horizons. What does that mean? This means that you need to be as skilled and knowledgeable as you can, because you won’t be able to find so much free time again.

Java basics done. Next, learn about Java Web.

You know, the good guys are always ahead of the pack. Don’t learn what school arranges you, don’t learn what school arranges you. In fact, some teachers are not very good, the really useful knowledge in the university is learned by themselves. So, the next step is to teach yourself Java Web.

It’s still video + book + code.

The Java Web is more about practice. The e books I was studying were school textbooks. I hardly ever read a book. Just follow the video step by step and Google if you have any questions. At the end of the first semester of sophomore year, I will complete the study of JavaWeb.

Because of the need to do some interaction with the front end, so it is unavoidable to learn a little front-end knowledge (HTML + CSS + JS).

During this process, I encountered a lot of strange problems. I remember that Google failed to solve a small problem for a whole day, and finally found out that it was the JAR package version. So, it’s normal to have problems, and it’s also normal to have problems that are hard to solve. As long as you ask, Ken can always solve them.

Well, now you have the ability to write your own little website (it doesn’t matter if it’s ugly). Then go to the races! Enter the lab! Do project! There’s nothing like working on a project to improve your game.

So, your task in the second year of your sophomore year is to work on as many projects as possible to consolidate your skills in turn. Take part in competitions, join a lab, or enlist the help of a teacher. Anyway, you do projects!

Beyond that, you need to continue to expand your horizons. The front (not before you learn simple HTML), python, android, ios, cocos… If you’re interested in something, go for it. You don’t have to be an expert or master it. Just to open your eyes to the fact that there’s so much technology out there, that you can still do this.

In your sophomore year, you will need to learn Java and Java Web, and work on at least one viable project. Also, raise your horizons as much as possible. When you feel like you know nothing and you’re a rookie, you’re done for the year.

Junior year

This is a crucial year because it’s the year you decide whether to go to graduate school or not. Take an examination of grind of I ignore. The next one is for those of you who plan to work as soon as you graduate.

Write in front: This year, you have to do, is deep!

Through the efforts of sophomore year, you have enough breadth. And in the process, you’ve probably found something that interests you the most. If not, keep studying Java, rather than trying to figure out what to learn. No matter what, your focus should be on one path this year. Take Java as an example.

First, consolidate the foundation!

That’s the most important thing. So how do we do that? Advanced books + read blogs + write summaries + write open source projects.

There aren’t many videos at this stage, and it’s not necessary. Just read a book, read a blog, read an open source project, and then summarize. I, for example, for example, I now want to learn design patterns, I buy a model for design of the head first and then a model of a learning, learn each mode, go over the books, and then Google this mode, see a few high quality blogs, based on books and blogs to write a summary, can even write a blog post by yourself, Let future generations enjoy the fruits of your learning. At the same time, you can organize your own learning process code, put it on Github, best try to encapsulate the pattern, make it easier for others to use the pattern. When you get one star after another, you will feel a great sense of achievement.

The above is the general way of learning. Finished learning, how to check oneself to learn well? To provide you with a website, you will know how to use it.

What are the basics?

  • Object-oriented thinking.

  • Common Java classes.

  • Collection framework.

  • io

  • nio

  • Multithreaded concurrency

  • Design patterns

  • algorithm

  • jvm

  • Computer network

  • spring

  • Orm framework

  • .

For each point, not only should you be able to use it, but you should be able to understand the underlying principles. If necessary, look at the JDK source code or framework source code.

Some book recommendations

  • Junior:
    • “Java from Beginner to Master” have not seen, but buy a lot of people, there are videos.
    • “Crazy Java handout” did not read, buy many people.
    • The Head First series are pretty good and not boring to look at.
  • Intermediate:
    • “Java programming ideas” Java programmers must read books, thick, let you have a kind of endless feeling, but seriously learn the harvest will be great
    • “Java Core Technology Volume 1 2” recommended to buy the 10th edition, the latest. Is also about the basic, although very wordy, but it is because of thick, write much, so you can understand more thoroughly.
    • Head First Design Patterns is one of the classic design patterns, an interesting case drive that is fun to watch.
    • “Zen of Design Patterns” domestic masterpiece, easy to understand, the realization of some design patterns and “HeadFirst design patterns” are different, you can see the two books together.
    • I haven’t seen “Big Word Design Mode”, it’s also quite famous, so I don’t comment on it.
    • Multithreading is a good book that not only teaches you how to use it, but also tells you why to use it.
  • Senior:
    • Effevtive Java must see book. Explained 70+ how to write good Java code examples. You look at this and you think that all the code you’ve written before is a problem.
    • Refactoring to Improve code’s existing design is a must-see book. Refactoring your previous code can give you a big improvement.
    • In Depth Understanding the Java Virtual Machine must see, not explained.
    • “Java8 actual combat” Java9 will come out, you java8 will not say not past.
    • The Definitive Guide to Java Performance – read it after learning about virtual machines.

You should know that bat and other large factories will have two recruitment every year, one spring recruitment in March to May, and one autumn recruitment in August to October. Spring recruitment is for interns, autumn recruitment is for permanent staff. So, if you want to join these companies, you need to prepare in advance. At the very least, you need to know all the basics.

Junior year, to make your depth enough, capable of continuing to extend their breadth. At this stage, the most taboo is to chop and change. I watched Python in the morning and found GO very interesting in the afternoon. After watching GO all afternoon, I heard that R was very good in the evening and went to study R again. Don’t do that! Don’t be a partisan. What you need to do now is make a difference in one direction.

Senior year

To practice.

I don’t have much advice for internships, although I have a lot of internship experience. But after all, he is not a man who has been in the workplace for many years.

Looking for a job, pay, environment is very important. But I think the technology stack, the industry background of the company is also very important. The three companies I interned for are in three different industries, so I know that there is a big gap between different industries. Some companies will ask you to have some experience in the industry. Therefore, it is necessary to pay attention to the industry background. At the same time, for their own future, be sure to ask the company’s technology stack!

Of course: as an ambitious person, graduation design must be towards excellent development! And still need to constantly improve their level. At this point, learning may depend on the needs of the company, but never stop learning!

In short, you should spend your four years like this: First year: cultivate interest second year: horizontal development, breadth priority third year: vertical development, depth priority Fourth year: choose the right direction, constantly improve yourself

####6.2 A little insight

  • Many times, a great teacher or mentor can be a lifelong benefit. Get to know as many of them as you can.

  • Modesty and optimism are the wealth of a lifetime. Get to know better people instead of being smug in your own little circle.

  • Really good people don’t just bury their heads in their books. They play video games, watch TV shows, and binge watch. However, they manage their time well.

### 7. Conclusion

It was written in a hurry, and a lot of it was actually written by me before. My learning experience is not very rich, and my working experience is not very much. Therefore, it is inevitable that there are some mistakes or inadequacies in writing, and some details have not been discussed. I hope you can bear with me.

If it helps you at all to read this tirade, then I’ve done my job. If there is no help, I am very sorry, and I will try to write articles helpful to you in the future.

Many of my examples are for college students and Java. On the one hand, I’m still a student, majoring in Java, so I’m quite familiar with it. On the one hand, I know that many of the people participating in this sharing are my friends, who are also students and learning Java. For some, you might want to say sorry.

However, the way of learning is understood, we can learn from each other.

This is the end of this article, if you have any questions or different opinions, please feel free to comment below, we will discuss the following exchange.

thank you

Follow the wechat public account “GitChat technology talk”, there are more practical technology in it

Write the picture description here