👉I am Guide brother, a Java backend development, half full stack, free teenager.

If you’re reading this, congratulations! Whether you are just starting out in the field of programming, or have been working for a few years, this article will be of great help to you. Recommended to see to the end. Believe me! There is bound to be a receipt.

In this article I will try to give you a more different practical guide to improving your programming skills. If you think this article is useful to you, don’t waste it! Clicking “See” or “like” is the biggest encouragement for me. Welcome to forward to let more people see this article, stronger together!

Come to oneself circumstance first! I started to get in touch with computers in primary school, but I didn’t get in touch with programming until I got to university. I was very confused in the whole freshman year with little programming and no idea how to improve my programming ability. When I was a sophomore, I joined a technical organization in my school. From then on, I really started my crazy road of self-learning programming in college.

Github has definitely helped me the most in self-learning programming. I started using Github in my sophomore year and felt that there were too many good learning resources on Github. In the second semester of the third year, I thought that I would try to do open source! Then, I started with the Java learning and interview guide, which is a good place to start. Unknown to date, all my open source projects have accumulated close to 90K star and received 4.6K attention.

Speaking of Github is actually quite ashamed! Because most of my projects are not available in English. In fact, if you’re going to open source, in the spirit of open source, it’s a good idea to have an English translation.


Ok! Let’s start the text! Take notes if you want to get better at programming yourself.

1. Choose the right computer

Before learning to program, you should at least have a moderately suitable computer.

When it comes to choosing a computer, I don’t think it’s necessary to buy a Mac or Windows. As someone who has used Windows development for 4 years and Mac development for 1 year, it’s fair to say that both have less impact on programming efficiency than you might think. Especially when you’re just learning to program, there’s no difference at all.

Mac cost performance is lower, a qualified Mac development this 12,000 start. Although it is really better, but the choice of computer or according to their actual economic situation to decide.

In addition, be sure not to choose a computer with less than 8G memory, if conditional, it is best to be able to 16G.

2. Six golden Rules

Many people may think that learning programming, first of all, we need to find a programming language to learn, for example, WHEN I was in college, I first learned C language.

I don’t think so! As an experienced programmer who taught myself programming in college, I think the first step in learning programming should be to figure out what websites are necessary for learning programming? How do we look up the data? How did we solve the problem? What technology communities, both domestic and foreign, are good? .

Beyond the first time, you also need to understand that learning to code is not about taking an exam.

2.1. Learn about common programming sites

Once you understand the necessary sites for learning programming, you’ll be better able to teach yourself.

Under normal circumstances, but those who learn programming for the first time, often need to continue to learn after class. One is because you’re probably new to programming and you don’t understand what the teacher is teaching you. Second, programmers are a profession that requires constant learning. Third, what is taught in universities is often out of touch with the actual needs of the society. Only self-study can make you stay connected with the technology and society.

Here are a few of my favorite programming sites:

A. Chinese University MOOCs

There are many famous courses and national quality courses suitable for us to consolidate the foundation of programming. For example, the picture below shows an elective course about software engineering in Nanjing University.


B. for class

There are many free courses that are suitable for getting started. In addition, you can also find resources on the MOOCs website if you need video resources on actual practice projects. .

C. Beeping beeping

Yes, you read that right! Look at B station can also learn! There are many excellent learning resources and excellent UP masters such as Guide brother on B site.


d.LeetCode

Domestic companies slowly began to close to the form of foreign interviews, hand tearing algorithm has been a lot of large factories with the standard, whether it is recruitment or school recruitment. LeetCode is a necessary website for us to brush questions.

In your initial programming stage, you can often go to the above to find some easy difficulty algorithm problems to do.

E. Geek time

A paid learning community featuring paid learning. . But most of the courses are of high quality, and I’ve seen a lot of them myself, and many of them are given by Java field bigwigs.

2.2. Expand your horizons. A good technical community is a booster for your growth

Knowing what the best technical communities are in China and abroad will give you a chance to meet more and better programmers and see more that can help you. It’s not like the whole idea is confined to school. This is very, very important! Good tech community: Github (No. 1 ok! Stackoverflow, a programming q&A site that allows registered users to ask or answer questions. Similar to Zhihu, the major difference is that Stack Overflow can rate problems), V2EX, Excavation, CSDN, SegmentFault, and Zhihu…… .

3. Learn to use Googgle to study and solve problems more efficiently

Learning how to program and solve problems can take you up a notch by knowing to use Google. If you just can’t get past that wall, try Bing Search.

2.3. Don’t treat learning to code like a test in your school days

You may have noticed. A lot of students with very good grades, their programming ability is actually not good. In college, the best programmers tend to be the ones with average grades.

Why is that?

I think it’s mainly a question of changing the mindset. A lot of people when they learn programming, they always think I’m going to write this API down, I’m going to write this library down. The only result of studying like this is that you will feel bad! Because, these are not to memorize things at all ah! Really when this is a class exam ah! You learn from the perspective of how you can use what you learn to solve real programming problems, from the perspective of doing a real project.

Take myself as an example: I write Python on a regular basis, mostly by reading official documentation or following the syntax taught in some books. If something doesn’t work, I’ll check it out.

2.4. Don’t be afraid to read English documents

Most of the latest information/technology is from abroad, mostly in English. It is said that more than 90% of programmers are not used to reading English documents directly, and will choose to read other people’s translations/summaries or books. However, the translation/summary of books or others will be slow, and it is inevitable that personal subjective factors will affect the translation effect.

At this time many people will say my English is not good ah! Can’t read English documents at all.

Don’t worry! Youdao Translation and Google Translate are your best teachers. If you’re using Chrome, I also recommend installing the Mate Translate plugin. This plugin is too friendly for web pages to read English documents and can translate your web pages and marked text paragraphs in one stop. The effect is shown in the picture below:

2.5. Look at good code

Without great code, it’s hard to improve the quality of the code you write.

Look at good code, but don’t get caught up in “best practices”. Many times there are no “best practices” that can be applied to any situation.

What good code is there to learn?

In the case of Java, if you don’t know what source to read, you can start with a few commonly used collections of the JDK. On the other hand, I recommend Dubbo, because it feels a little easier, the modules are clearly divided, and the comments are more detailed. Once you understand the basics of RPC and know how to implement an RPC framework yourself, it doesn’t seem that taxing.

In addition, the source code of any framework are 10W + line, have a look is impossible. To pick the most important places to look, you must look at IoC and AOP, for example, to see how a Spring Bean is created step by step. If you want to see the Spring Boot source code, you need to know what Spring Boot Boot mechanism is, how to achieve automatic configuration.

Read good books

Be sure to read good books! Books like Refactoring, Complete Code, and Clean Code are standard and must-read books for programmers.

Reading a book is more systematic than reading a few articles piecemeal. Of course, there are also many systematic learning resources on the Internet. For example, if you want to learn Java, you can see my open source 👉JavaGuide (” Java learning + Interview guide “covers the core knowledge that most Java programmers need to master).

3. Choose a suitable programming language to start with


The first step in learning programming is to choose a suitable programming language for your introduction.

When choosing, you should consider the following points:

  1. Difficulty: It is generally recommended that you choose a relatively simple program such as Python, C, or Java.
  2. Prospects: It’s a good idea to determine the prospects of the programming language you want to learn. For example, I would definitely recommend Java over PHP.
  3. Market demand: When there is a market demand, there will be more jobs and it will be relatively easy to find jobs.
  4. Salary level: The salary level is not really related to the programming language, but to the actual ability of the individual. However, some programming languages do pay slightly more for the same ability.

The following data comes from 👉TIOBE’s ranking of programming languages in July 2020, which can also serve as your reference. From the statistical results, we can see that C, Java and Python are still very strong, and these three brothers are in the top three almost all the year round (Java and C often compete for the first place). In addition, R language is also making rapid progress, which is also worthy of attention.


Take another look at the 👉PYPL index. The index describes the popularity of programming languages based on an analysis of 👉 Google Trends. As can be seen from the statistical results, Python, Java and Javascript are firmly in the top three.


Take a look at the average salary and age of a programming language. This data comes from the 👉Stack Overflow 2019 Survey. What we need to pay special attention to is the Go language. Go is backed by Google, so it’s not surprising that the pay is higher. In addition, many large domestic companies such as Tencent are using Go for project development more and more.


I believe that after reading so much about programming languages above, you can choose a suitable programming language to learn and in-depth.

4. Don’t get bogged down in programming languages

Programming languages are just tools. We do need a programming language that we’re good at, but we don’t always need to do everything in that language. For example, Java is better for web development and Python is better for data analysis. It’s important to choose the right language and do the right things. For example, if you want to do full-stack development, you may need to know more than one programming language. Take myself as an example, it is also half full stack development, I mainly use Java to do back-end development, Javascript to carry out front-end development.

5. More practice

I’ve seen a lot of people who have been learning programming for over a year and probably haven’t typed more than 1,000 lines of code. And then, you ask him to build something with his programming knowledge, and he’s fooled.

The most direct way to learn programming and improve your programming skills is to do it! Practice! Especially in the early stages of programming, accumulating code is extremely important.

For example, when you learn Java background development, can you do a website independently through their own knowledge? For example, after you understand the principle of a framework, can you imitate it and write a simple one?

In our actual project development, making wheels is taboo, but in the actual learning process, making wheels is absolutely the most beneficial and harmless! For example, after I understand the principle of RPC before, I wrote 👉 a simple RPC framework. My RPC framework is definitely not as mature as Dubbo’s. However, when I wrote RPC framework, I deepened my understanding of RPC framework. In the process of implementation, encountered a lot of problems, in the process of solving problems also improve their programming ability. All in all, building wheels is a special way to improve your system programming ability.


Practice is not about writing code when you get a problem. It’s not about not learning the theory. Ask yourself why, not what. For example, in the selection of technology, the same function may have different solutions. Do you choose according to the actual needs of the project, or do you make a detailed comparison by yourself? Certainly is according to the actual needs of their own projects, and then through a variety of comparison after the choice!

“Talk is cheap, show me code” is a good sentence, but please don’t forget to think! In other words: Write more code, but don’t drink too much.

6. Practice your internal skills

Instead of obsessing over frames, spend more time practicing your internal skills — the underlying skills. Many people feel that the data structures and algorithms, computer components, and operating systems they learned in school are useless when they get to work. Then, it’s taken for granted that these things don’t matter.

If you don’t think these things are useful at the moment, there’s a good chance that learning a skill is just on the surface right now. For example: if you want to understand the source code of a framework or a class library, you must understand the data structure. Algorithms are a must if you want to develop and improve your problem-solving skills.

Why do we practice internal kung?

  1. Technology update fast: A few years ago, we might still use Spring for traditional XML development, but now almost everyone uses Spring Boot to improve the development speed. For example, a few years ago, we used Message queue and might still use ActiveMQ, but almost no one uses it now. Rocket MQ and Kafka are commonly used today. With technology changing so fast today, you can’t learn every framework/tool, and the underlying technology is your Swiss Army knife.
  2. People who know the underlying technology are more competitive: with so many programmers out there, how can you pull away? Just the ability to use the framework? These tasks that a random person from a training class might be able to do are not your core competencies.

Take Java for example, what are some of the lower-level technologies?

  1. Algorithms and data structures, computer networks and operating systems (underlying technologies applicable to any programming language);
  2. The source of the framework;
  3. The JVM on which Java programs run;
  4. .

7. Summarize, share and export more

Summarizing knowledge is not to sort out what you have learned according to the teacher, but to sort out what you understand and supplement.

Sharing what you’ve learned can test your mastery on the one hand and deepen your understanding on the other.

There are many ways to share and output, I would like to recommend some of the most common, but also my most common way of learning.

7.1. A blog

You can get into the habit of blogging. I wrote earlier about why blogging :👉 Is it important for programmers to blog? .

In short, there are mainly the following reasons 👇🏻 :

  1. Have a deeper understanding of knowledge, so that their knowledge system is more complete
  2. Push yourself to study
  3. It could bring in some pretty good money
  4. Enhance personal influence
  5. Have more opportunities
  6. A good blog can be a plus in an interview

At this point, you’re wondering: Where should I blog?

As a student who has been writing a blog since the sophomore year and has been doing countless personal websites, I recommend finding a good blog platform such as Nuggets first, and then writing a blog on the blog platform, then you can build your own blog website.

At this point, you must be wondering: How do I set up my own blog?

Emm… This part should be particularly good to watch, appropriate notes ha, friends! Here are a few of the best and most common ways to build a blog site. If you want a free high-speed personal blog site, don’t miss it.

Set up the difficulty Whether a server is required Ease of use SEO
Hexo easy Not a must In the general
Vuepress easy Not a must easy friendly
Docsify easy Not a must easy Don’t friendly
WordPress In the Must be easy friendly
Halo In the Must be easy general

In summary, I still recommend Vuepress and Docsify. I also wrote a step-by-step guide to building your own blog site using Docsify: 👉 “Step-by-step Guide to Building a Document-type site! Free and Fast!” . I also provide a video tutorial at 👉. That’s sweet. Okay! Remember to give Guide brother a thumbs up 👍!

With your own website, you can organize your articles into a series that you can then deploy on your own site and refer to whenever you want. You can also sync your posts to other blogging platforms to expand your reach.

I’ve compiled 7 common technology platforms for your reference:

7.2. Sharing within the project group

Companies often have in-house technical seminars and blogging platforms.

Organize technical talks within your company or project group to not only increase your presence, but also improve your presentation skills.

You can also share your blog posts on the company’s internal blogging platform, so that your posts can be seen by more people!

7.3. Do open source projects

There are so many things you can share on Github: your study notes, your own field projects, the wheels you built…… (Resource class is not recommended, too easy infringement). However, Github is now played by many people simply as a diversion tool. However, overall Github technology environment and atmosphere is very good!

In addition, it is best to make an English version of the project, and the comments in the project code should also be in English. It is open source, after all, and it is best to use the universal language in keeping with the spirit of open source (which I have failed to do myself, reflect!). .

conclusion

This article, I stand in their own years of self-study point of view, heartfelt to say a lot of words. After reading this article, I feel happy even if you only learn to use Google search, and I hope this article can influence more people.

In addition, the article talked about a lot of undisputable facts in the field of programming or correct posture, such as: do not learn programming in the way of examination in student days, more practice, building wheels is a special means to improve their system programming ability and so on. Having said all that, this article is likely to be of limited help if you don’t apply the correct posture for learning programming to your own learning.

This episode of original sharing is over! Let’s be strong together!!

👉I am Guide brother, a Java backend development, half full stack, free teenager.

This article is formatted using 👉 MDnice