Programmer rookie Essentials-how to learn programming programmatically as an independent developer

Source: Internet
Author: User
Tags data structures

Contact an industry, the early best to a system of learning, there is a complete framework of 1.1 points of the base thoroughly understand, can not left a rake, right a hoe, to my experience to share how to learn the system of learning programming development, just into the pit of the programmer rookie attention, quickly occupy the Highland, quickly collection.

The general category is broadly divided into the following categories:

A. Knowledge in the textbook

This part is from the computer professional course material. It may also involve a portion of the content from other relevant disciplines or related courses.

B. Programming language

Every programmer is only likely to engage in development work if he or she can use a language, so learning and mastering a language is the minimum requirement.

C.sdk

It is not enough to have a language, any actual software development requires a class library or development package to complete. For example, the library function in C, C #. NETFramework class Library, Windows API and so on belong to this category. This area of resources have a platform Devstore can pay attention to, included a lot of SDK service configuration process evaluation, direct search can be.

D. Development tools

In today's case, no development tools can theoretically develop software, but efficiency is a problem, so mastering and using a development tool to complete development tasks should also be a minimum requirement.

E. Domain knowledge

The software always has the user, then develops the software which the user uses, then the programmer needs to understand the user's industry knowledge, at least needs to know some basic necessary knowledge. There is also a part of the content is divided into domain knowledge, such as the development of Photoshop software such as graphics-related knowledge must understand some, engaged in industrial control software development, then the knowledge of controls should have some understanding.

The above classification is in the development process of my understanding of knowledge, a programmer know this knowledge after the development of a software should be no problem. The following is a discussion of the learning problems of these knowledge.

A Learning the knowledge of teaching materials

As an already employed programmer, I do not think that all professional courses in computer science (including professional basic courses, which I still have in college) are useful. In fact, for most programmers, just a little bit of knowledge is enough. This knowledge is mainly composed of the following courses: data structure, compiling principle, operating system. For most programmers, the content of other courses is not useless, but is not used in practical work.

The importance of this course of data structure can be understood as the programmer's Bible, how to describe its importance is too much. What I want to know about this course is as follows:

1. Knowledge of all linear data structures, such as tables, stacks, queues, etc. (generalized tables may not be required)

2. Basic operation and basic use of two-fork tree

3. The diagram needs to know the traversal and understanding of the shortest path algorithm, as well as some related concepts

Of course, for some programmers, this is not enough, because the specific software development work involved will have different requirements. But for the majority of programmers engaged in MIS software development, this knowledge is enough. Mastering this knowledge can have two levels of requirements. The first one is to complete enough exercises to be proficient in the answer, and the second is to be able to use the data structure to describe the actual things in the actual work. To achieve these two requirements should be said not too high, pay attention to more practice on it. At present, the course of the classic textbook is also a lot, I believe that as long as the step-by-step study is qualified.

Compiling principle This course is mainly about learning methods and ideas rather than the knowledge itself in the curriculum. Because there are so few people out there who can work on the development of compilers. This course needs to be mastered not many things, my personal views are mainly the following several:

1. Determination of the use of finite automata and indeterminate finite-automaton

2. The implementation of lexical analysis program

3. Methods of grammatical analysis

The embodiment of the self-motive in the actual application is equivalent to the state transition diagram, this tool is very important, I hope to be able to master. When we develop entitymodelstudio, the content of the interactive part of the design interface is to design the state transformation diagram and then write the code, otherwise the direct development will face the risk of developing out of control, while the reconstruction and maintenance will be quite troublesome. So this tool is extremely powerful and very practical. In addition, the ability of the tool and the deterministic finite automata are equivalent to the indeterminate finite automaton. However, because of its uncertainty, more in line with human natural thinking habits, so in some design situations relatively convenient. This is very practical, but also very attractive.

Mastering the realization of lexical analysis program can greatly expand the development ability and thinking ability. This part of the theory may be more difficult to describe, but the actual use is still very easy to get started, so it is worth learning. The parser does not need to be mastered, after all, the opportunity to develop compilers is negligible. But the relevant methods and ideas to be able to understand, this can help the programmer to use the computer's thinking to think about the problem.

There are only two things the operating system needs to master:

1. Five basic methods of management, especially those involving memory management

2. Synchronization technology for threads or processes

The operating system is complex, but the management methods introduced in the textbook are relatively straightforward to understand. The importance of basic knowledge is embodied in this difficult simplification, and the application of basic knowledge in practical development is extensive. With a good understanding, you can understand the techniques of solving complex problems in simple ways. Thread process synchronization, this does not have to say, we all know its role, if really do not want to grasp the words, I am also very willing to believe that your reasons must be adequate, otherwise you will never do so.

Finally, I want to emphasize that no matter how you look at this knowledge: May feel useless, may feel too difficult, may be not interested, but if you want to be a programmer, then you must be the most likely to be strong, the most likely to master it skillfully.

Developer must on the website--devstore

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.