Programmer's law of survival-Summary (self-improvement)

Source: Internet
Author: User

20 ~ The 30-year-old can be said to be a golden age. In this phase, the family has a small burden and can be controlled for a large amount of time. Of course, a company that has hit a very special one and needs to work overtime can only be considered another.

After the age of 30, because of the birth of a doll, the family's time overhead increases, and the personal disposable time decreases. A large number of people may face the conflict between mother-in-law and daughter-in-law that is often mentioned in TV series, making you feel uneasy every day.

After the age of 40, family chores will be further increased. Typically, there are old and small families. If you are not lucky, you will also have some problems-cervical spondylosis, lumbar disc herniation, and gastrology can probably be included in the three major occupational diseases of programmers.

After the age of 50, the time will be relieved again, but unfortunately I am also old and the time is not there.

Basically speaking, before the age of 35, you need to master the skills that took a lot of time and were relatively hard to learn, steep learning curves, and all the major skills required for work, after the age of 35, I focused on updating knowledge and some soft skills.

 

So specifically, those things are hard and should be done before the age of 35? This varies with goals, but the following projects should be highly universal:

  • Proficient in one of the most common languages
  • Measure the test taker's knowledge about the basic mechanism of the most common platform, such as memory management and thread mechanism.
  • UML diagram and Object-Oriented Analysis Design Method
  • Design principles, such as single responsibilities
  • Design Mode
  • Everything in code Daquan
  • Intensively read a well-known but somewhat large-scale program. Thanks to the open-source projects for providing us with so many excellent programs. But it is essential to guard against the high speed and challenge the Linux kernel. Intensive Reading is the key.
  • It accumulates a certain amount of code, for example, it has done tens of thousands of lines of code independently and completely. The key here is completely self-built, so do not copy and paste it.
  • Master basic algorithms and data structures (do not write them by yourself, but at least know the complexity and difference)
  • Develop a clear coding style
  • Professional (finance, highly concurrent websites, image processing, TTS, etc)

----------------------------------------------------------------------------- Base material ----------------------------------------------------------------------------------

Specifically, those things can be considered as the foundation of programming and must be mastered in the learning stage? The following describes a minimum set of books (or similar books) that are common to all programmers.

  • Computer Architecture

The most representative books in this category are "deep understanding of computer systems" by Randal E. Bryant and David O 'allaron. The purpose of reading this book is to understand what computers are and how software runs.

  • Algorithm and Data Structure

The most representative book in this category is introduction to algorithms by Thomas H. cormen, Charles E. leiserson, Ronald L. Rivest, and Clifford Stein. The purpose of this book is to understand what means the software can use to do something. Software is a tool that can help solve many problems faced by humans. There are only two main means. One is the algorithm and data structure introduced in this book; the other is the analysis and design methods involved in the next category. Like a small knife, they can split various problems in various fields and map them to the world of programs.

  • Design principles and Models

The typical book in this category is Agile Software Development: Principles, models, and practices by Robert C. Martin. The purpose of this book is to understand the data structure and algorithms. Another method that abstracts real-world problems, such as object-oriented and the principles to be followed for such abstraction.

There are many other classic books such as gof's design patterns. The reason for choosing this book is that it provides some complete examples and is more suitable for beginners.

  • Software Engineering

The most representative book in this category is the code book by Steve McConnell. This book aims to build a global view of software development. Know a series of processes that a software has to go through from scratch.

There are still many softwares, such as the famous man-month myth. However, the book "man-month myth" is not suitable for many people and is not suitable for beginners.

The above four books are a minimal set and need to be added to different scenarios. For example, if you need to learn more about a framework mechanism, you need to read books like XX technical insider. However, even reading these books is not suitable for reading but not doing it. It is best to insert them into the practices mentioned in the previous section. Otherwise, your understanding of the next two books will be lacking.

If you want to take the course of the above books, you must read them in advance. In the course of reading, if you find that some details are completely incomprehensible, You need to further explore and find your own answers. When reading such books, you must be prepared for one thing: although these books are not easy to read, it takes a lot of time, but it is impossible to write a tool that can sell some money immediately after reading these books. This is just like the foundation of the building, and it has no immediate effect.

My personal point is to calculate the first point in the 3000 code behavior field. That is to say, if a person learns a language and does not perform a small exercise, he must first complete an independent program with around 3000 lines of code without a UI.

Assume that a newbie is familiar with a language, so it is estimated that 2 ~ is required to complete the above tasks ~ Four people and weeks, of course, one person with experience is enough for about a week.

After that, you can take a closer look at the scale (1 ~ 50 thousand rows best) applications with strong independence, because they are already on the scale, it is a little difficult to completely isolate from the platform, and there is no way to provide a unified example for reference. However, there are two criteria for selection: one is to be as independent as possible and the other is to be classic as much as possible.

After intensive reading, we need to find another project for practice. The key here is the real project. At least there must be real users, and the larger the number of users, the better. It is best to be able to submit code to well-known open-source projects.

Among all the basic knowledge, the theory of computer architecture, data structure, and algorithms is rather powerful. This kind of steep learning curve needs to be learned in conjunction with university courses, next, we will gradually apply it in practice, instead of learning while doing things. The reason is that the steep learning curve requires a large amount of time, and the learning efficiency will be poor after graduation.

In general, the above steps should be 2 ~ after graduating from college ~ It is better to finish the job within three years in college, which may be advantageous. After these steps are completed, the basic stage can be regarded as the basic end.

Export Base --------------------------------------------------------------------------------

Improve Skills + avoid mistakes

Programmer's law of survival-how to become a little more professional as soon as possible http://www.cnblogs.com/daoshi/p/%7301.htmlprogrammer survival rules-growth on the road to the pitfalls (2) http://www.cnblogs.com/daoshi/p/3821547.html

------------------------------------------------------------------------------- Higher ------------------------------------------------------------------------------

Soft Power

Programmer's law of survival-power behind expression (1) http://www.cnblogs.com/daoshi/p/3834954.htmlprogrammer survival rules-power behind expression (2) http://www.cnblogs.com/daoshi/p/3843900.html

For programmers, there are not many points to be aware of above, and they do not need to be tired of themselves. However, there are a few traditional wisdom points:

  • If you owe your debt, you must be clear. If you owe your debt, you can be vague. Do not think that any help to yourself is justified.
  • Do not quarrel about unnecessary things or even speak out evil words. It is easy to break down the relationship between people and fix it.
  • You must take the initiative to apologize if you believe in your words and cannot keep your promises.
  • Do not devalue others to prove yourself, or devalue others for improper words.
  • Do not deceive others maliciously. Think about how much harm you will feel when you are maliciously cheated.

------------------------------------------------------------------------- End Certificate --------------------------------------------------------------------------------------

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.