How to become a good programmer?

Source: Internet
Author: User
Tags microsoft c

How do Programmers think? What should I do if I am confused ???

 

"The program written by a programmer is not an 'algorithm + syntactac', but a tool that can meet user needs ."

Agree. To meet user requirements, we must consider various aspects, such as business, human-computer interaction, and efficiency.

Language (syntax) is just a tool. It is really a programming machine if you only know the syntax! Programming Machine

After several months of training, high school students in India can be competent in accordance with rigorous software engineering methods and higher management! Large

Do you believe it? I believe it!

 

Speaking of this, I can't help but talk about the question recently discussed by the Chinese education sector, "Graduates of the Computer Science Department, especially undergraduate colleges

What is born and how to adapt to social requirements ". As you can see, many college students in the Science and Technology Department say, "you are familiar with N languages.

N tools ", I don't know other school knowledge to go there, I am willing to do programming machines, wasting people's taxes, do high school

It's a pity to have something to do! This is now the case in China. Who do the software development industry in China need? If only

It's just a code machine. I guess it's a dream in Silicon Valley, China!

 

The Society also seems to need coding machines, turning over recruitment advertisements, and developing applications require proficient in XX language and familiarity with xx tools,

Few people who need to understand software engineering. With my own extreme idea, the national software industry needs to take off.

Manage the person who uses the encoding machine, that is, the administrator. There are already many domestic software industry coding machines. Hope you don't get angry with those

Programming Skills! In China, which one of system develop and Application Develop can support you and make money? You ren

I must have known that I did not find many high-level companies recruiting such talents. After all, OS, DB MS, compiler are all

I did it abroad, and I also don't want to talk about Linux. After all, there are still a few people who burn money to do things. I will feed my stomach first. My team

Many programmers engaged in the 4gl language want to learn the so-called lower-level languages such as VC. I always say, "In XX city, use 4gl first.

Tool survival, learn VC later !" . To put it simply, first solve the stomach problem.

 

How can I determine whether I am a programming machine?

1. In the face of requirements, users are not considered, but the program technologies used to demonstrate their own language and syntax skills.

2. I learned n languages.

3. Never learn or practice software engineering.

4. The syntax language level is far ahead of the crowd, especially some strange syntaxes. By interest and creativity

It is meaningless to repeat tedious work. The only difference is to make money, and it is only half a catty. Daily Work

Tired, but cannot learn what you want to learn. The final result is that people cannot keep up with the development of social science and technology and are aging. Sorrow !!!

 

The key to developing software is to have an idea. A good idea is more important than anything else. This is especially true for networks.

In fact, a programmer's ultimate technical needs are combined with reality. When the programming level reaches a certain level, the language usage is not

Is the biggest obstacle. It is the grasp of the entire project, the grasp of software engineering, the design of the database, and the analysis of the execution effect.

Things that need further consideration! Otherwise, why do most companies require programming experience! These are not what programmers must learn. However

Software Engineering, data structures, discrete mathematics, compilation principles, operating system principles, and so on must be well learned,

You cannot understand computer English.

 

I used to learn mechanical skills (I learned computer skills later). I am very familiar with how to standardize and design in traditional manufacturing.

Personnel design drawings, after review, and then to the workshop samples, and then according to the situation, modify the drawings, so repeated several times before a Production

Product stereotypes. In the software field, it's not that good. The leader will say that you have done this, but he has not analyzed it very carefully.

(Many in China), there is no system analyst here. Everyone is a designer and programmer. Although

For individuals, I can learn a lot, but it is not conducive to projects. China's software process level is indeed worrying, so far only

It is a small software for a few people and a dozen people, and there is no large software that can be used.

 

As for the programming problem of junior high school students, I think that as long as this line is entered, it will not be worse than undergraduate students. Because it is not superior to him

If you have an academic qualifications, you have to study hard, but this is just to adapt to the rapid development of computer software today. Education level can only represent the past

And basics. What's more, we need competent people, people who solve problems, and people who actually work. I am also a middle school student. Sometimes I do have a bit of self

Humble, I didn't go to high school or college (since that time, I only knew that I could reduce the burden on my parents), so I have been

I am working hard to learn (CORBA, UML, Java, software process, etc.). So far, I have not thought of my architecture and coding capabilities.

Ping is worse than them (I just think English is too bad ). Therefore, I think the secondary school students are not inferior to general college students (of course, some are important ).

Except for schools. Education is not important. The key is one person.

Quality. We cannot target programmers or coders. What is the purpose of code writing? It is called "encoding ".

Personnel ", in foreign countries is physical labor, unlike domestic, write programs is called high-tech. It is important to analyze and solve problems.

Question and planning capabilities, system analysis, system design and project planning are the right path.

 

Programmers should not rely on development tools. programmers should have a kind of thinking, spirit, and idea. Just like

Like Richard. M. Stallman, he has his own spirit and struggles for free software. Just like Qiu bojun, for the rejuvenation of National Software

Struggle. This is the real programmer. It should be said that what they pay more attention to is not technology, but software thinking and the soul of software !!

Everyone has their own learning methods. Maybe this method is useful to me, but it is not necessarily useful to everyone. So,

Please do not blindly follow others' learning methods and think about your own learning methods. However, the following principles must be observed:

 

1. Persistence, persistence, and persistence. First of all, we must have perseverance. the enthusiasm for programming can also help certain programs. I am

This is the case. At first, I learned VC for three days and caught fish for two days. The learning progress was very slow. Fortunately, my persistence in programming made me strong.

Hold down. I have several people around me who have been learning VC for nearly half a year before me, but I still can't.

Powerful, but the basic application is nothing. I read books every day, practice on computer, and spend almost all my time in it,

Sometimes I think about eating. Why? Because I really want to get rid of this hard bone, I don't want to give up halfway, I think learning VC

We have not only learned more, but also cultivated our perseverance to overcome difficulties.

 

2. Practice, practice, and then practice. When you learn a new technique or knowledge, multi-practice is the best way to consolidate learning.

The most effective method. This practice is not based on the example in the book, but based on your own capabilities, give yourself a question and then go

Complete it. Only in this way can you discover your own shortcomings and increase programming experience. But to become a qualified programmer

Writing code is far from enough, and more importantly, thinking. It is a constant truth to seek a future.

 

3. Master programming ideas. To learn a language, you must not only learn the language, but also pay attention to the ideas and methods behind the language.

The ability to analyze and solve problems is not for programming. See how it solves a problem. Why?

In this case, he always needs to conform to objective facts. Just as people say, There is a logic, data organization, and information transmission,

Build on your own mind and then see how to use programming languages to express your thoughts. As long as you practice it

Do, seek fun, and you will achieve your goal.

 

4. Patience, carefulness, patience, and teamwork spirit. In this network age, information is everywhere, no matter what advanced technology

As long as you find the information, you will not be able to learn it quickly for a few days or two months. No program can be written.

It's because you haven't finished writing it. I thought that the current programmer does not have to be so intelligent, but he needs to complete the boring project.

Be patient, be careful when looking for bugs, and be cautious about money (do not rush to get the money as soon as possible ).

Team spirit.

 

If you have never been familiar with programming, you may be slower to learn VC than to learn process-oriented programming,

Because you need to understand the meaning of commands and statements. However, if you work hard and get help from others, you will

Have a certain understanding. Do not think that it is easy to learn object-oriented programming after learning process-oriented programming. Process-oriented and object-oriented are really different.

Big. Let's take the word encapsulation for example. I figured it out when I thought about it on the left and right. So don't learn programming by yourself.

VC channels are easier than others. Learning VC is a time-consuming and laborious learning process. You have

Starting with OOP, it may be more interesting to read a pure theoretical book. You will examine oo ideas from another perspective.

Next, we will learn C ++, learn windows APIs, learn MFC, analyze MFC, expand MFC, and create our own class libraries (not for enterprises ).

Graph to write a library that is the same as the MFC heavyweight class library), then proficient in Microsoft C compiler parameters, research Microsoft C/C ++

Evolution History of language compilers (combined with various background knowledge ). Mastering the idea of programming is only a matter of time to conquer VC.

 

Now there is a situation that should be noticed. I found that a large number of beginners think that VC is a language, and C ++ is another

A language. Some beginners still think that C ++ is not necessary to learn VC! I think this problem is not noticed by many people.

. It is the importance of C ++ for VC learning. Let me give you an example. I have a classmate who is engaged in programming.

It was earlier than me. When I was still marking the ":" number in VC, he had been learning C for a long time. Later

When he understood it, he also found that C could not keep up with the pace of the times. I proposed that he start from C ++ linguistics, but he thinks he is

With C learning skills, you don't need to study c ++ any more. There are countless difficulties you may encounter when learning VC.

Recently, he bought a book to learn C ++ from scratch. I hope that through this example

Scholars know the importance of C ++ in learning VC.

 

In my understanding, VC is just a programming tool, just like BC, BCB, and Delphi. In fact, it is the most fundamental

There are three aspects: language, development kit, and operating system API. They are relatively independent.

To learn VC, you must have a deep understanding of C ++. For example, for a virtual function, you must know that such a thing exists.

Know its memory image. In this way, we can put a lot of things in VC together and get twice the result with half the effort. I have been studying VC for nearly two years,

However, in the first year of consciousness, due to the impetuous mood, I had to read VC books over and over again, but every time I read only a little bit, I could not go into depth. Straight

On the eve of graduation, I will learn from the most basic aspects, overcome the impetuousness, and learn from each point.

After three months of hard work, we finally achieved great success. Until now, half a month to deal with COM/DCOM, all rely on the day of hard work, so advise want to learn

VC friends must withstand the difficult times of the beginning. Success is a hard task.

 

To learn VC, you must have a deep understanding of the Windows Operating Mechanism to become a master. This requires learning Microsoft's technology, its

Windows programming, Win32 system (in fact, Win32 system implements a lot of things we can see on the screen, the most

The kernel of the Code NT is not big) must be learned. In addition, com,

Finally, you can implement your own defined interface in EXE to get home. But this is somewhat unnecessary), DCOM,

ActiveX, Windows DNA, etc. If you have the ability, learn.

 

I am not in favor of the abuse of ActiveX. As a result, I thought its performance was very bad. It was really big, slow, and unstable (maybe I was a bit

If you use it, your program will be held by others in the future. Once I used a control and all the programs wrote it.

I have spent more than half of the time. I have to pay 333 US dollars for continuous use. I have spent more than two months working hours. Isn't it annoying? Try not to use it now

Source code written by people (I have collected various types of code 3-MB). It is just as convenient to use. I can also learn while using it, and I can also modify it if necessary.

VC is the development of MS, so for Windows API, you can not c ++, you can also use C

Write Excellent programs. Of course, if you are familiar with C ++ and the Development Kit MFC, your work may be easier.

So in my opinion, the learning process can be like this:

1. First, learn C or C ++, and write programs that do not involve API in the Windows Console environment;

2. After mastering the syntax, I began to contact simple system APIs and learn the programming principles and mechanisms of windows;

3. After you can write a simple menu program and operate the GDI function in wm_paint, you can start learning MFC,

You can start with step tourist to check the source code of MFC and understand the definition and implementation of several key macros, especially

Message _ map.

 

In the course of learning, in order to add some challenges to yourself, try not to use resource edit, and try

Code to create controls and respond to messages. Then, let's look at our own creation, and make some gadgets, especially our own

Yes, it should be helpful for your own improvement. What we want is the result! Good analysis, efficient and clear disassociation

The capability of the problem is what we really need to learn.

I have some experience with VC:

1. technology-oriented, language-specific.

2. A single type of MFC is useful. Be careful when using DOC/view.

3. Be careful with OOP. Improper use leads to a lot of work and bad code.

4. If possible, use Delphi (cbuilder + VCL ).

5. To a certain extent, you must learn COM.

Learning VC ++ has a lot to learn, while the final depth depends on the understanding and diligence of the individual.

1) master the latest standard C ++. (2 months)

If I thought I had learned C/C ++ in college, I also tried dynamic_cast/static_cast/template/try/catch/throw/STL /...

If you are unfamiliar, refresh the new ansi c ++ standard.

-- This is not associated with VC ++, and g ++/BCB supports it.

2) Learn SDK programming. (6 months)

Pain is temporary and necessary. Persistence is victory! We recommend that you use lccwin32, masm32, and tasm to compile small and refined tool software.

Windows Programming Guide and advanced windows programming

3) study the source code of MFC. (6 months)

Don't be blinded by a bunch of macros. Just track and dig into it !! Know how to expand and package MFC

After the SDK, the self-help capability is gradual and will not be trapped by its MFC system framework.

(MFC internals)

4) study the OLE/COM technology.

COM/ActiveX technology is the core technology of MS, only a thorough insight into the essence of its theory can understand the current operating system

The technical trend should remain unchanged.

(Inside Ole 2)

* ** Suggestions ***:

1) Delphi/BCB/vB can quickly build an interface, but it is not a good platform to really learn and understand the system,

However, if you have time to read the source code of VCL, you can also learn a lot from how Borland encapsulates the system.

2) Learning ASM has great benefits for understanding C ++. Soft-ice is also a good tool combined with VC ++.

3) the language itself is superficial, and the algorithm is powerful. No matter how advanced Languages develop, they are constantly improved on the basis of understanding the operating system.

Self-innovation ability. If you understand the essence, you can choose any development tool to control it.

Visual c ++ Technology Development Link

Microsofts VC ++ page

Http://msdn.microsoft.com/VISUALC/

Microsoft's Visual C ++ site is the best place to learn about the latest visual c ++ messages.

 

Visual Studio start page

Http://msdn.microsoft.com/vstudio/

Microsoft's Visual Studio site, the best place to learn about the latest Visual Studio news.

 

Mfc faq Home Page

Http://mfcfaq.stingray.com/

The best mfc faq collection site on the Internet, made by stinggray software, provides their local EXE version in our CD.

Reliable Software

Http://www.relisoft.com/index.htm

Reliable software company

MFC programmer's Sourcebook

Http://www.codeguru.com/

A huge MFC source code collection site contains comprehensive content and fast updates. The most interesting thing is that everyone can express their views on the source program. Therefore, it has become a gathering place for many programmers to develop experience. Producer: Zafir Anjum

MFC programmers 'resources

Http://www.pcmi.net/mfc/

A site that links source code sites, discussion groups, and user guides.

 

[Reprinted from http://blog.163.com/laisitianshi/blog/static/40347385200872913142593/, thanks]

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.