This is the best answer I have ever heard.

Source: Internet
Author: User

This is the best answer I have ever heard.

Maybe I have never met the world, but this is what I have seen: "How to become a good programmer, not a good coders ?" The best answer: [copy and paste all]

In fact, my heart has been shaken by my current job [Catering Service], and I want to learn websites and c language basics and c # java Android. However, when I read this Q &, I firmly believe that I like iOS, no matter what the outcome is (a lifetime of catering services, a lifetime of the bottom layer, a lifetime of failure to engage in the software industry)

A good programmer will tell you the importance of playing the foundation, and will persuade you to endure it before it grows.

The excellent code farmer will tell you what you want to learn, what you want, and what you want to learn. What kind of bicycles do you want to learn about python? Isn't binary search of Data Structure sorting functions all built in? I will never use it at work. What is the use of learning algorithms? There are many ways to compile your skills. Is it a fart?



+++ Basic split line +++


List several foundations that I think are important and add an entry book

Programming Language, programming language-the path to practice, concepts of programming ages

General computer knowledge, csapp

Algorithms and data structures, Introduction to Algorithms

Program Design, structure, no book recommendations

Software Engineering, the term is different from everyone. I think that, man-month, code Daquan, the pragmatic programmer, and sicp, testing, and refactoring are all software engineering, in fact, the above design model is also software engineering, haha


These books have no effect at the beginning, and you must read them many times before you can understand the meaning. Therefore, it is also very appropriate to call it the foundation. The deeper you have, the higher you can climb.




+++ Split line +++


What is a good programmer?

Reporters and many netizens said that pandatv's authors are experts

If you have any bugs in the company, he can tell you why. If you have any software or problems, he can answer you. You think you are a master.

Some people say that the full stack of native products is a master

The authors of various languages are experts.

If you do not write code, you can throw a restful paper.

Some people say that Godana is a god. If he is a god, his code must be testing us.

....

The above is indeed a master. I think that the moto company employees who were fired two years ago must also have a functional machine master and a low-cost board driver master.


Do you want to select your own direction or be fooled?

My idea is that I try to play and then do what I like. Of course, the programmer's ecological pyramid is used as a tool and infrastructure to compile programs for the following people, so you can refer to this Pyramid Model for directions.




+++ Split line of the climbing hole +++


Set the direction, and then do things. A major misunderstanding is [pursuing the best things], so we have to figure out:

  • Is php the best language?
  • Is OpenGL worse than directx?
  • Do programmers need to learn mathematics first?
  • Is the best C language written by Tan haoqiang?
  • Should I take off my pants first?
  • Which one should I choose if there are so many linux distributions?
  • A Daniel said IDE is not as good as the editor
  • I heard that hackers use NotePad to write programs.
  • C # indicates that the raise mark should read csharp, but java should not read [add wa (soft voice)]
  • ...

If you are a player in * nix world, you should know that there is a problem with jargon, called yak-shaving. I have mentioned yak-shaving several times before, but many people cannot understand it. It literally means Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.

However, it is generally intended to be used. Here is an example:

You wanted to open the software and write a helloworld. The software prompts you to upgrade. You clicked the upgrade and prompted you That the xx library is not new enough. Then you updated the xx library and prompted you to upgrade the yy driver, then you upgrade the yy driver. The system tells you to compile the driver and you must download the s. f version of the compiler and library, you update the compiler, the system said s. the f version compiler must be in the e. n. Run on the system, and then you upgrade the system. Over a few hours, you found that the system upgrade caused several software damages. Then you updated the software to find a solution to the problem, unconsciously, you become a dog in the middle of the night, but you find that there are still a lot of problems, and helloworld is not written ....


I have encountered these problems. My suggestion is to pick a book that Daniel says, and read other questions. Of course, if you unfortunately don't know Daniel (even if you know it, it's impossible to search for such a thing), or simply be curious-just as I did in the past, then try each one, however, you may know the answer, such as the editor emacs is better than vim, and writing program ide is better than the editor.

By the way, you should try to use different programming languages and development environments in different paradigms. However, I have written such proposals, and it seems a bit nonsense here.


Therefore, you must focus on and stick to irrelevant things.

When you have learned a language, it will not be too difficult for you to learn other paradigm languages. If you have learned opengl, dx will be able to write it.


When you look at martial arts novels, Duan Yu is a dumb, the bug technology that sometimes sends out a pulse wave and can run straight lines around the circle is combined with a Buddha's unique martial arts to finally marry Bai fumei and become CEO, at the peak of his life, Qiao Feng is always one of the top 18, more exaggerated. Murong fuwen and Wu are both talented and proficient in the world of martial arts. He is studying for 4 hours every day and practicing for 4 hours. He can compare his hard work with others... However, when I was in my 30 s, I still had nothing to do. I couldn't even beat a newbie like Duan Yu. I was finally robbed of my wife because of the wrong direction and I was too unfocused.

Therefore, it is better to seek expertise and reach the depth. It takes another 20% of the time to expand the breadth.




+++ Important split line +++


You have done all of the above, and it takes two years. For students, if you have a good school background, you can start your life.

But this is not the end. As the saying goes, people rely on clothing, and us rely on packaging. Packaging is a matter of knowledge. The packaging here is not to make your suit and tie bright leather shoes black silk dress white shirt a whole marketing dog hr styling, it is to say that professional skills on the packaging.


Why is this the most important part? Because people do not say so much to you, especially those who know how to package, and do not pass on the secrets of you .....


The first step to package yourself is to improve your strength.

Without the power of packaging, it is a castle in the air. We can only rely on the daily outsourcing of big data cloud computing architecture to survive. It can also 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 an expert, my understanding is that I can write well in my resume), the packaging strength is sufficient.


The second step of packaging is positioning

When it comes to the United States, there will be a lot of people jumping out of the hope of mankind as the salvation of democracy, google is the most pure technology company, the benchmark in the development industry of the software industry, and the beauty of the heart whitening Lotus... Even if you list fake google drugs, maliciously suppress yelp, hold web standards, and so on, they will also say that Baidu is even worse (isn't it a commonly used statement for five cents? Why have it been stolen by Democratic Progressive people ?...), But I didn't mention Baidu at all, okay...

This is caused by packaging, so the huge power of packaging can be seen.


Google is a search engine. Does Baidu also say that it is a search engine? No, Baidu says it is the search engine that understands Chinese most... Hahaha, don't laugh. It does work, just as google says it's a good girl.


The positioning of programmers is nothing more than scarcity and uniqueness. It is easy to understand that scarcity is an irreplaceable solution. For example, if you know that the world's first peak is Mount Everest, it is hard to know that the second peak is the jogori peak, however, Wen Qing prefers Kilimanjaro to marry you. Why? Uniqueness... I won't compete with you because I have a better cultural heritage than you.


Because you have the strength, you should try to package your strength into a scarcity attribute. You are an expert .. Then, if you have many strengths, you should package your unique strengths to avoid joint exposure with others, so as to avoid being overwhelmed by others.


I told a story about my friend packaging himself. He took over a project in the company and was already developed by the group next door for 3 or 4 months, in fact, this software can be done well in two months, but the people next door are busy and don't worry about it. They are not familiar with this technology. In addition, they are not their own bosses, so they have been dragging on for so long to do well. After taking over the service, he was not idle for a moment. He took home at night and made it in the middle of the night for 10 days. Then the whole company knew his name, and he got a firm foothold.

The theme of this package is that the technology is powerful and the development speed is fast.


The third step of packaging is promotion.

Promotion is to let people know that you are doing well and strengthen your personal brand. You can use blogs, zhihu, mailing-list, github, etc, by writing articles, attending offline speeches, answering questions, and helping others. It is a learning to use it well. If it is not used well, it is forced to do so...

Remember not to be anonymous. You can't get anything to be anonymous.


Some people clearly have strong technical strength, but because they are not well packaged, can be buried, or labeled as inappropriate or biased. For example, Microsoft labels of c # And vczh of Zhao Yi

Some people are very powerful, but they are good at encouraging Xiao Bai and packing well. So there are a group of loyal fans who I don't quite dare to say their names ..

So good programmers should make good use of packaging.




+++ Split line at the end of +++


I have said so much above, but it takes a lot of impetus to stick to it. Some people can be admitted to Tsinghua, but they can also fall into college. Some people can achieve their achievements, but they will also be stuck ..

If you want to be good, you have to have a huge boost. Why do you want to be a good programmer? What is your driving force?


For example, we say that whoring involves a lot of moral pressure, money pressure, and risks. Why are there so many whoring customers happy and trying to make their own minds reasonable? In their eyes, whoring is the most interesting thing, that is, not eating, not sleeping, but not having to do things, that is, living and boring without doing things, with this spirit of dying in bed, what are you afraid?


This is the driving force



Author: Xiao Jinmo
Link: http://www.zhihu.com/question/22032651/answer/30474626
Source: zhihu
Copyright belongs to the author. For commercial reprint, please contact the author for authorization. For non-commercial reprint, please indicate the source. Salute!  Thank you!  Finally, I want to say that I am sad. I just want to find a software development job. I don't need a high salary. Why is it so difficult? Isn't it really difficult for people who are not good at expression to develop? Okay, don't complain. Continue to learn to endure and concentrate on your thoughts ~

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.