Hello everyone, I'm Guide Brother~
My school is a double non-one school in Jingzhou.
Throughout my freshman year, I didn't study programming seriously. I just went out to play and participate in various club activities every day.
At the end of the sophomore semester, I finally determined that my future technical direction was to go to the Java backend. So, I started to make a learning plan and started my own road to upgrade the Java back-end field.
By the third year, I basically gave all the necessary technologies in the Java back-end field, and I did two practical projects with what I learned. The whole process took me a summer vacation + half a semester, and my daily study intensity was basically more than 10 hours.
This article just talks briefly: How did I learn programming?
👍Recommend 2021 latest actual combat project source code download
What are the ways to learn?
Generally speaking, with a specific learning route, after knowing what to learn, we usually have the following directions to learn:
video
Friends who are new to programming try to watch videos as much as possible, because video tutorials are easier to understand.
However, for those who are already more experienced, the video tutorial will be slower to learn than the document tutorial.
There are many learning videos to watch on Mukenet and Bilibili, just search for keywords (such as Java, MySQL) directly on them.
Wake up! When studying on Bilibili, don't go to another district after studying for a while, it's a bit unbearable!
Blog
Most of the blogs on the Internet do not have a system. It is recommended that you can find some related blogs on the Internet when you are solving a certain knowledge point or problem.
For example, when I was learning about the message queue Pulsar, I first Pulsar official document . Then, I found some related articles on the Internet for in-depth study.
- 《Kafka vs. Pulsar vs. RabbitMQ: Performance, Architecture, and Features Compared》
- "Why give up Kafka and choose Pulsar?"
- 《7 Reasons We Chose Apache Pulsar over Apache Kafka》
- "Competing Kafka, big data analysis rookie Pulsar is so good in the end"
- "From Kafka to Pulsar, BIGO Creates Real-time Message System Road"
- "The performance tuning of Apache Pulsar in BIGO ( )" 1609bbc487627d, "The performance tuning of Apache Pulsar in BIGO (Part 2)"
- "Apache Pulsar's Landing Practice in the Field of Energy Internet"
- ......
The Java field is more systematic blog, recommend JavaGuide (Project address: https://github.com/Snailclimb/JavaGuide )
👍Recommend 2021 latest actual combat project source code download
Official website (official document)
Unless the official documents of some domestic projects provide a Chinese version, it is likely to be in English.
In addition, the official documents are often rough and not suitable for beginners as learning materials.
However, we must read the official documents. Only through official documents can you know the latest technical trends of the technology you are learning, and then you can know which modules of this technology need to be learned, and then you can know what specific problems this technology can solve for you.
For example, the following is Spring's official website, you can probably know Spring can help you from the homepage of the website:
- Rapid website development
- Develop software for microservice architecture
- Develop software with responsive architecture
- ......
books
The content of books is more systematic and systematic. However, books have timeliness issues. You can learn about the latest trends in technology through some means:
- Pay attention to the dynamics of some technical communities such as Github Trending
- Follow some public technology sharing
- Pay attention to some technology bigwigs
- ......
What should be paid attention to in the self-study process?
English reading ability
Most of the excellent technical books are foreign, almost in English, and most of the official technical documents are also in English.
Therefore, it is important to improve your English reading ability. It doesn’t matter if your English reading ability is temporarily poor. Youdao Translator and Google Translate are your best teachers. If you are using the Chrome browser, I also recommend that you install a Mate Translate plug-in. This plug-in is too friendly for web pages to read English documents, and can translate your web pages and marked text paragraphs in one stop.
Practice more! Remember! More combat!
Whether watching a video or reading a book, it’s best to follow along and record some key content.
In addition, if you are learning by watching a video, it is best to find a related book to read while watching the video.
The knowledge points that are not understood in the learning process must be solved as soon as possible. How to solve? Baidu/Google is the first choice. If you can’t solve it through search engines, find friends around you or some people you know online.
In addition, the actual project must be carried out! At this time, many people will ask what should I do if there is no actual project? I think it can be done in the following ways:
- actual combat project video/column : Find an actual combat project video or column that meets your abilities and job-hunting needs on the Internet, and follow the teacher to do it. In the process of following the teacher, you must have your own thinking, don't just try it out. For many knowledge points, other people’s explanations may only be enough to satisfy the project. If you want more knowledge yourself, you must learn to learn more about important knowledge points by yourself.
- Practical open source project : There are many practical projects on Github or Code Cloud. You can choose one to study. In order to make yourself understand this project better, you can perform on the original project based on understanding the original code. Improve or add functionality. For actual Java projects, you can find them from awesome-java . There are many awesome projects in it.
- to do 1609bbc48767eb from scratch: Do it yourself to make something you want to accomplish. If you do This requirement is relatively high. I suggest you use this method after you already have a project experience. If you have not done a project, it is better to use the above two methods honestly.
- ......
Doing projects is not only to do, but also to improve and improve. In addition, if your teacher has related Java background projects, you can also actively apply to participate.
You must learn to allocate your time. There are a lot of things to learn, really a lot. It's enough to figure out which things are the focus and which ones are only enough to understand. Do not spend your energy on learning various frameworks, algorithms and data structures are really important!
Don’t think of learning programming as an exam in the student era
You may have found it too. Many students with particularly outstanding grades are actually not good at programming. In college, those with the strongest programming skills are often those with average grades.
like this?
I think it is mainly a question of change of thinking. When many people learn programming, they always think that I want to write down this API and the usage of this library. The only result of this learning is that you will be uncomfortable! Because these are not things to memorize by rote at all! Really think this is a class exam! You should start from how to use what you have learned to solve practical programming problems, and learn from the perspective of doing a practical project.
Take me as an example: I usually write Python, basically I just follow the grammar taught in official documents or some books. If there is no place, I will check it.
Look at good code
good code, it is difficult to improve the quality of the code you write.
Although you need to look more at the excellent code, don't be best practice ". In many cases, there is actually no "best practice" applicable to any scenario, and there is no silver bullet.
What are the excellent codes of
Take Java as an example. If you don't know what source code to read, you can start with several commonly used collections of the JDK. In addition, I recommend Dubbo because it feels a little easier, the modules are clearly divided, and the comments are more detailed. After figuring out the basic principles of RPC and knowing how to implement an RPC framework by yourself, it doesn't seem to be so strenuous.
In addition, the source code of any framework is 10w+ OK, it is impossible to read them all. To choose the more important places to look, for example, if you look at the Spring source code, you must look at IoC and AOP, and you need to know how a Spring Bean is created step by step. If you want to look at the Spring Boot source code, you need to know what the startup mechanism of Spring Boot is and how Spring Boot implements automatic configuration.
Don't memorize it by rote
When learning theoretical knowledge, we can spend more time organizing notes.
However, when learning to use the framework, there is not much need to spend a lot of time organizing and taking notes.
You can check the document at any time, just remember the keywords! For example, if you don't know how to accept Query Param in Spring Boot, you can search for Spring Boot Query Param directly!
Another example is that you don't know how to use Redis. If you need to use it in your Spring Boot project, you can directly search for "Spring Boot + Redis" to come up with various detailed tutorials.
What you have to do is to connect the commonly used things in series, just know that there is this thing. According to one's actual ability, it is good to learn the underlying things.
For more programming habits, please see: "Become a Not-So-Bad Programmer" .
I am Guide brother, embrace open source and like cooking. Github is the author of the open source project JavaGuide , which is close to 10w likes. In the next few years, I hope to continue to improve JavaGuide, and strive to help more friends who learn Java! mutual encouragement! Hoo! Click to view my 2020 work report!
Originality is not easy, welcome to like and share. Let's meet again next time!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。