Job Recruitment Website - Job seeking and recruitment - Do you need a high IQ and good math skills to be an excellent programmer?

Do you need a high IQ and good math skills to be an excellent programmer?

Do you need a high IQ and good math skills to be an excellent programmer? A good programmer needs a considerable degree of logical thinking ability. If the mathematics here refers to discrete mathematics, then it is. In addition, some business areas need to involve advanced mathematics, but no one will ask programmers to be mathematicians. As for IQ, I think it's average. Few people describe programmers as having high IQ. People often say that some programmers are geniuses, but this doesn't necessarily mean that they have high IQ, just that they put all their energy in one place. Relatively speaking, I think concentration and persistence are more important. Wang Dao

How to be an excellent programmer instead of an excellent code farmer;

Do more: Write at least 50,000 lines in object-oriented language (C++/Java); Scripting language (Perl, Ruby) writes 5000 lines; At least five design patterns should be correctly practiced in the work; A system that has maintained 654.38 million lines of code; Participated in the renovation (or design) of large-scale projects; \

More communication: mentor; At least 3 newcomers; Participate in demand analysis and project planning; Have independently led the development progress of the project; The prestige that can be established in the team (both personality and technology); It is best to integrate theory with practice to achieve mastery. Moreover, we should let go of the superiority of "code is the only priority", correctly define the development goal, and constantly remind ourselves that an excellent programmer with this goal can not only write good code, but also solve problems independently (theory plus experience) and lead the team to achieve the requirements (communication skills) to the maximum extent. The code is just the tip of the iceberg.

How to become an excellent programmer, not an excellent code farmer? The first step in packaging yourself is to improve your strength.

Packaging without strength is a castle in the air, and it can only live by the daily outsourcing of big data cloud computing, which can be seen by discerning people, so it is purely a show and meaningless.

In a certain field (compiler, virtual machine, development architecture, front end. . . ) After becoming an expert (the definition of expert is that I can write my resume skillfully), the strength of packaging will be possessed.

The second step of packaging is positioning.

When it comes to the United States, a large number of people will jump out and say that it is the savior of human hope for democracy. It is mentioned that google is the purest non-evil technology company, the leader of software industry, the benchmark of development industry, and a beautiful Bai Lianhua. . . Even if you list Google selling counterfeit drugs, maliciously suppressing yelp, and controlling web standards, they will say that Baidu is even worse (hey, isn't this a common phrase of fifty cents? How was it stolen by the DPP? . . . ), but I never mentioned Baidu. .

This is all caused by packaging, which shows the great power of packaging.

Google is a search engine. Does Baidu also call itself a search engine? No, Baidu says it is the search engine that knows Chinese best. . . Ha ha ha, don't laugh, it really works, just like Google says she is a good girl if she doesn't do evil.

Programmers' packaging positioning is nothing more than scarcity and uniqueness. It is easy to understand that scarcity is irreplaceable. For example, you know that the highest mountain in the world is Mount Everest. If you haven't read The Selected Works of Zen Master, it's hard to know that the second peak is Mount Chogory, but Wen Qing especially likes Kilimanjaro, and he never climbs or marries. Why? Unique. . . I didn't compete with you, I compared with your cultural background, so I won.

Because you have strength, you should try to package your strength as a scarce attribute. You are an expert. . Then you have a lot of strength, so you should package your unique strength and avoid being exposed with others to avoid being at a loss.

I told a story about my friend wrapping himself up. He entered the company and took over a project. It took the team next door three or four months to develop the software. In fact, the software can be completed in two months, but the people next door are too busy to concentrate, unfamiliar with technology and not their own boss, so they have been doing it for so long. After he took over, he was not at leisure for a moment. He took it home at night and made it in the middle of the night. 10 days. Then the whole company knew his name, and he was firm.

The theme of this package is strong technical strength and fast development speed.

The third step of packaging is promotion.

Promotion is to let people know that you have done a good job and strengthen your personal brand. You can use blogs, Zhihu, mailing lists, github and so on. By writing articles, attending offline party speeches, answering questions and helping others. If this is used well, it is a science. If you don't make good use of it, you are just pretending not to expand it. . .

Remember, don't be anonymous Anonymous gets nothing.

Some people obviously have strong technical strength, but the packaging is not good, or their talents are buried, or they are labeled with various inappropriate labels or treated with prejudice. For example, Zhao Jie's c# and vczh's Microsoft label.

Some people are obviously average in strength, but they are good at encouraging Xiaobai, and they are well packaged, so they have a group of loyal fans. I dare not name such people, hehe. .

So good programmers should make good use of packaging.

Do programmers really need high IQ? Most programmers have been asked such direct affirmative questions. Even if I say "no", I am still proud.

I used to be like this, but now I don't think so when I grow up.

Do programmers really need high IQ?

I don't think so. Human beings invented programming to make up for the defects of human brain with programming.

When programming technology was first invented, programs were used to help university professors do scientific calculations. With the development of hardware, the application of programs is more and more extensive. In addition to scientific calculation, it can also play a role in office, medical care, aerospace and other fields.

Humans want to develop a large number of specific applications, and it is an inevitable trend for programming languages to develop from machine languages to high-level languages. The closer a programming language is to a high-level language, the more it conforms to the human way of thinking.

From a simple point of view, programming becomes easier when the programming language develops into a high-level language.

With the development of open source software in recent years, a large number of excellent open source software makes it easier to create applications, even "stupid". If you want to build a Web application today, you can finish it in one minute.

The process of programming becomes simpler, and it is easier to create applications through programming. Has the programmer's job become easier? The answer is yes.

When I first joined the work, I participated in the development of an address book (an application on the BREW operating system), and the company invested more than 30 engineers.

Now it only takes 2-3 senior engineers to develop address book on Android operating system (even if the function is perfect). This change does not mean that the former engineers are not as good as the current engineers, but that the current development process has become simpler.

With the rapid development of technology, my attitude towards recruiting engineers has also changed.

In the past, we paid more attention to project experience (many companies would apply for candidates with similar project experience when recruiting), but now we pay more attention to the modesty of the interviewer and the ability to deal with details.

No, people who want to sit down and go in are smart people. No, you must work hard to write programs.

How can I become an excellent programmer? First of all, we should learn the basics of computer, second, we should learn the basics of programming, and third, we should constantly practice programming problems and strengthen logical thinking, so that we can slowly understand. Of course, the process is boring, so we must stick to it, don't be discouraged, and understand it well.

How to be an excellent programmer? There is a saying that programmers are self-taught. Even if you come from a regular school, your technical level is determined by your self-study efforts. This is not much different from self-study. Therefore, as long as you succeed in self-study, you are no different from a programmer trained in a class. The process of self-study may encounter all kinds of problems, and the road of learning will be tortuous.