What knowledge do you need to learn to be a programmer?

What knowledge do you need to learn to be a programmer?

Anyone who asks this question should be beaten, dragged out first, and given a slap on the wrist.

If you are a computer science student or someone who intends to work in the IT industry, then you can get another 50 points!!

Why? Because you have never thought about this question. You are a typical beggar. This is a taboo for people who work in computers! ! Let's look at the following two main reasons:

1) Programming is not always smooth sailing. If this happens, you may be dreaming. You will always encounter various problems. Do you always ask "Who is the expert, can you help me check this program? Why does it always show errors?" every time you encounter a problem? If it is a complicated problem, it is OK. The expert will solve it for you after checking it, and you will be more experienced. If it is a problem like missing a comma, then it would be strange if the expert does not beat you to death.

2) Technology updates too fast. You may be a top student in school and always be sought after, but the technology you learned may be updated as soon as you graduate. If you don’t keep learning, you may be outdated in 1-2 years. Just like you are learning HTML, while others may have already mastered HTML6/7/8. During the learning process, when you encounter a problem, will you ask “Who knows HTML8?” My God, HTML8 has just been released, and not many people know it, okay? !

I won’t go into other reasons, but based on these two points alone, as an IT person you should not be a freeloader!

Well, if you insist on being a freeloader, that's fine, because directly using other people's experience can save a lot of time and energy. This is understandable. We all have times when we are freeloaders. The key is that there is such a group of people who are really annoying!

They would ask questions like “What if I don’t have project experience?”, “The new Python seems to be very popular, but what should I do if I don’t know how to use it?”, “I listened carefully in class and watched videos online, but why don’t I know how to do XXX?” People who ask such questions are simply amazing. They ask questions knowing the answer!!

Without project experience, you won't do more small projects. Who told you that project experience only requires large enterprise projects? Python is very popular, but you don't know how to find courses and materials online. You can immediately understand it by asking others. Who told you that programming is learned by watching? Learning IT requires more hands-on, hands-on, hands-on, understand? ! Without hands-on practice, no matter how much you read, it is equal to zero. It's like reading a lot of love manuals, but if you don't find a girlfriend to fall in love, everything is empty talk. It's easy to talk about it on paper! Blah blah blah, there are as many complaints as you want. Sometimes it's interesting to look at this question when you are unhappy~

I have said a lot of nonsense before, now let’s talk about the serious matter, which is "What knowledge do I need to learn to be a programmer?

1. Two major capabilities

1. Learning ability

As for why we need learning ability, I have already complained before. I think everyone understands the reason, so I will not repeat it here; I just want to remind you again that you must keep learning at any time~

2. Hands-on ability

I need to talk about hands-on ability. Hands-on is the shortest way to learn programming. If you don't understand something, you can try it right away. If you want to make a little gadget for fun, don't wait until tomorrow, start doing it right away. If you want to learn new technology, the best thing is to start writing it...

I will not elaborate on other questions like why you need to do more hands-on work. If you have this question, just slap yourself in the face first!

2. Basic Learning

What is basic learning? For example, if you are learning Java, you should have a basic understanding of network basics, a basic understanding of computer basics (the so-called basic understanding means just reading a book and understanding it), you should understand Java syntax, the three major Java frameworks, J2SE, JDBC, design patterns... In short, you should at least understand or know all the knowledge related to Java, and have a thorough understanding of the key core content;

I won’t go into details, just look at the following picture:

Java programming mind map (reprinted from online resources)

3. Mastering Common Tools

What are commonly used tools? As you can see from the picture above, your programming development tools (VIM/IDE/Eclipse), no matter which one you use, you need to master them proficiently; your version tool, now commonly used is git, at least you have to learn to use the most basic ones, of course there are many others (markdown/database use, etc.), you need to master the tools you commonly use.

Git common quick reference table

Vim common quick reference table

4. Choice of technical direction

After mastering the previous skills, congratulations, you can at least fight small monsters (anyway, just use the skills you have learned to the best of your ability to fight small monsters, and the small monsters will basically die). You can also apply for jobs as a fresh graduate, but this is far from enough. If you want to defeat the BOSS, you can't just use the skills you have learned casually, you need to practice more special skills.

At this time, you need to choose a technical direction. Think about it, if you study Linux, and you have learned the basic knowledge well, you also know that there are so many Linux knowledge and skills, you can't be proficient in every direction, only proficient in one field, and understand the others, so that your competitiveness will be greater. At this time, you have to think about whether you want to do Linux research and development or Linux operation and maintenance, and then study in depth in the technical field you choose to achieve the level of defeating BOSS monsters.

It seems that the above points are enough, but some friends may ask, should I read books or look for resources online?

~~(>_<)~~, this question is also very interesting. It must be combined. Books are more systematic and organized. Internet resources are more numerous but more scattered. There are many open source projects. You can study them well, but you can't generalize. The courses on some IT learning websites are still very systematic. My suggestions are:

  1. Read books first to get a general idea of ​​the system;
  2. Find an IT learning website and do special learning on areas that you are not familiar with. There are also many IT learning websites with many good projects for practice (the IT learning website I use more is Lab Building, which has many good courses and projects. The most important thing is that it is equipped with an online environment, which is more convenient and you can practice while watching);
  3. Visit various communities, both domestic and foreign, such as CSDN, Blog Garden, Open Source China, SegmentFault, V2ex, etc. There are too many. Choose the one you like, where there are all kinds of experts and like-minded friends.
  4. If you encounter a problem during development, first google it and think about it yourself. If you still don’t understand it, then go to the community to ask questions.

I won’t say much else, ***, I hope everyone can become an excellent programmer!

<<:  How to survive programming 80+ hours a week?

>>:  An excellent Android application starts with building a project

Recommend

Empty State Interface Design for Mobile Apps

Actually, I still don't know when the Chinese...

How much does it cost to be an agent for a moving app in Beihai?

How much does Beihai's moving agency app cost...

14 PPTs let you master all promotion channels and their characteristics!

Mobile application product promotion services: AS...

Steve Jobs’ prediction—e-commerce

[[135753]] As early as 1996, shortly after the bi...

User growth has undergone a qualitative change, from AARRR to RARRA!

Today, the topic I want to share with you is the ...

How much does it cost to develop a marriage and love mini program in Wuzhong?

There is no doubt that the topic of mini programs...

Dingdong Maicai event operation strategy!

As one of the current hot tracks, local life serv...

Social Media Marketing Strategy with Sales of 1.5 Million+ in 10 Days

In large-scale marketing activities, community op...

How to quickly build an advertising landing page?

As the core of conversion, the importance of land...

A guide to advertising in the education industry

Affected by the epidemic, holidays and working ti...

Heartbeat Journey - iOS uses the phone camera to detect heart rate (PPG)

[Background] Time flies, and in recent years, dev...