Advice aphorisms for beginners in programming

Source: Internet
Author: User
Tags data structures implement net
Programming | Beginners I always think that for a beginner, it is not a technology craze to catch up with, and there is no ability to catch up. I feel very sad that I often see my ddmm throw away my textbook and sell a lot of expensive things like C # and VB.net.

And many do not clear the pointer is what the BBS station friends exultant discussion C # inside can not use pointers, and so I feel funny. C + + is like the same year's ASP, "Suddenly as the spring breeze, thousand trees million pear blossom", the result of many schools of information College became "Web College."

96, 97, a lot of college students are going to do the web. Of course I don't have any sense of discrimination in a particular industry. I just think that if they spend a little more time chasing these trendy technologies, they should be able to go further in the basic curriculum.

Several misunderstandings

In fact, the beginners ' pursuit of C + + is just one of the misunderstandings often encountered in the process of learning. I'm going to use some practical examples to illustrate these phenomena, and you can take a step-by-step look at whether you belong to one or more of them:

Thinking of computer technology equals programming technology:

Some people, even without this idea, have such impulses in their subconscious. To my surprise, many information college students have the same idea. The computer major is a programming major, not programming, or not very relevant courses he all ignore, extreme students as long as the book does not have "programming" two words he does not read.

In fact, programming is only the application of computer technology in the process of the lowest complexity of the labor, which is why it industry at the bottom of the people are programmers (coder). Computer technology includes multimedia, computer network, artificial intelligence, pattern recognition, management information system and so on.

Programming is only the process of expressing algorithms in the process of theoretical research or engineering practice in these specific technologies. Programmers do not necessarily know the computer technology must be very high. An interesting phenomenon is that many master-level computer technology researchers do not know how to program. The hype on the net and the good working treatment in the real world programming this kind of labor is mystifying. In fact, every programmer in the heart understand that their own these things, learning is not more difficult than other professions, so naturally will not be high-grade to where to go.

The style of the wording:

I have seen a girl's "computer Network Principles" textbook, the Girl like a pupil in the book is zoned full of horizontal stripes, notes do full, printed out must be thicker than the textbook. What I don't understand is that courses like computer network principles need to take notes. Our exam-oriented education did harm a lot of students, in the "principle" of this class when many students like to learn the theory of Marxist-Leninist recite the memory verbatim.

This is the stupidest Act I have ever seen. The so-called "principles", that is, need to master why it does so, learn why, not how to do. Extremely serious students back Ethernet network cable maximum length, data frame length, the meaning of each field, IP header format, etc., but forgot the principle of routing, forget the purpose of TCP/IP protocol design. In short, many people spend a lot of time back to know the back is equal to nothing to learn.

The same is true of these students when they are learning to program, and they remember the details of C + + grammar exactly. After reading the C + + tutorial to see "thinking in C + +" (is indeed a good book), "Inside C + +", "C + + reference", this c++,thatc++ ..., and then a variety of online on the C + + grammar anecdotes, Then found that they have forgotten some of the syntax of C + +, and finally go back to the bad repair .... One of the younger brother told me: "C + + is too difficult, learned here forget there, learn to inherit forget template." I replied, "It's easy for you not to learn." I did not teach him bad, just tell him, dead pull C + + grammar and hole has already show off anise beans anise word has several ways like meaningless. You do not need to be too concerned about the C + + grammar, hands-on programming is, there is no memory of the place to check MSDN immediately to fix. I have a conclusion that the actual development process to understand the program syntax is the most trivial knowledge. This is why I used basic (I never learned it before) to write a small program, only spent half an hour to look at the grammar, and then half an hour to complete the program, and one hours later I completely forgot all the keywords basic.

Ignoring the basics, blindly chasing the fashion technology:

Finally point to the topic. Most people want their things to run right away and turn into money. This idea is reasonable for a programmer or project manager who has already entered the career field, and it technology is progressing so fast that it is not a job to follow. But for beginners (especially the time-rich college-school students), the idea is confusing. A beginner who has not entered the competition in the industry the biggest capital is that he has enough time to sink down to learn basic things, learn why rather than how. Fashionable technology is often easy to master, and more and more easy to master, which is driven by commercial interests, in order to maximize the cost of software development. But the reality in the IT field is that the easier it is to master, the more people you learn, and the quicker you eliminate it. Every time new technology comes out, there are many beginners to follow up, these beginners because of the lack of the necessary basis to make their own in the process of follow-up to spend a lot of time, and so he learned that this technology is quickly eliminated. Basic courses, such as data structures, operating system principles, and so on, while not allowing you to immediately implement a Linux (which is why many people scoff at the futility of theoretical courses), they can significantly reduce the slope of your learning curve when learning new technologies. And it is even necessary for many key technologies, such as the Win32 SDK program design, DDK programming.

A living example is me and one of my classmates, in the big moment I still can not find the boot button, he has written a few simple assembler program. I spent all of my sophomore years in the study of compilations, computer architectures, data structures, operating system principles, and so on, and he started learning HTML and VB and catching up with the trend of ASP. In the junior year I began to learn the principles of Windows operating system, Learning SDK programming, time is long, then I can use VC to develop a model-like application. I was annoyed to learn how to create a dialog box because my classmate's program was already able to run, but it came to me that my choice was right when I graduated. The company I negotiated with paid more than twice times as much as he did. Here is an inappropriate analogy: it takes 4 months to learn VB programming, and it takes 1 years to learn basic courses and VC programming. So if you learn VB First, and then learn the latter, time will not be reduced, or 1 years, and conversely, if you first learn the latter, and then learn VB, maybe you only need 1 weeks to learn very skilled.

A few important basic courses

If you are a student, or if you have plenty of time. I suggest that you grasp the following knowledge carefully. My advice is for beginners who want to be successful in IT technology. At the same time I have listed a number of books, which should also be in the bookstore to buy. To be honest, my biggest wish in reading other people's articles is to want the author to list a book.

College English-don't feel funny. I highly recommend this course because reading without a professional document is unthinkable. Chinese translation often comes out in the SE years, but now many publishers simply directly to the e-text printed up. The way to learn is to force themselves to see the original textbooks, the beginning will not understand, with a lot of natural proficiency. It is absolutely necessary for any industry to eat hard and be cruel.

Computer architecture and assembly language-the books on architecture are all over the land, and the same is true, but there is a very good book in the compilation. "80x86 assembly Language Program Design Course" (Tsinghua University Press, black cover, Yang Ziwen). You need to focus on the design of the 386 protection mode. Otherwise you will learn some things at the bottom of the modern operating system when you think it is looking at the heavenly book.

Computer operating system principles-our development is always on a specific operating system, if not, only one possibility: you implement an operating system on your own. In any case, the operating system principle is required to read. This is just like when we make peripherals for a chip, the basic work sequence of the chip must be understood. There are a lot of books in this category, and I don't see which one is very outstanding. I just think that after reading these books, if you are free, you should see "Inside Windows 2000" (Microsoft Press, I read the e-text version, the Chinese title must be the Windows 2000 technical Insider, etc.). Another article on ZDNet has been discussed about the need to learn it.

Data structure and algorithms-this course can determine a person's level of programming, is a core curriculum. My first choice is the Tsinghua version (Zhu Shi, Liu Tianxi). A lot of people like to buy C + + version, but I think it is not necessary. C + + syntax makes the algorithm implementation process more complex, and many teachers like to use the module to make the algorithm more complex. But after learning the C version of the book again to browse the C + + version of the book is the best.

Software Engineering-This course is more and more important to discover it later on, although it is as unintelligible as a horse-chul at first. My advice is to see "Practical Software Engineering" (Yellow, Tsinghua). Don't spend too much time remembering rules and jumping over them if you can't read them. After each time you have completed a Software design task (whether it is practice or work) to review the review, each will have a harvest.

Windows Programming-"Peking University Press, Petzold" I suggest anyone who attempts to design a Windows program to learn the VC carefully before learning it. And the front of the "Inside Windows 2000" is also best to be read in the back of this book.

In this book, there is no C + +, no GUI, no controls. Some are how to use the original C language to complete Windows programming. After learning it, you will find that VC is really easy to learn. Do not read this book in advance before you learn VC, you'd better not touch. Many of the schools I know have even used it as a teaching material. Visible its importance.

The above courses I think are important lessons (if you want to be a Windows programmer).

For other courses There is a simple way to choose: If you are a computer department, please learn all your professional basic courses. If not, please refer to the timetable of the computer system. If you find yourself unable to read a book, turn to the end of the book, look at its references, find them and study them, and then look back at the book. If the title of a book has a "principle" of two words, you must not remember its details, you should be at least 50 pages a day to master the essentials. Practice a theory or algorithm as much as possible on the computer.

You can also read a lot of book reviews on Csdn. These book reviews can help you decide what kind of books to read.

The three provinces of Japan are in their own

There are too many books to read every day, and it is easy to lose direction. Be sure to think about what you learned every night, what you have to learn, what you are most interested in, how long it takes to spend on a book, and so on. At the same time, you should think about the most likely future applications, so that you are not catching up with the technology trend but to lead the technology trend. At the same time, efforts to use the technology and theory has now been mastered to produce something of a certain novelty. Sticking to it can make you truly a software "developer" and not just a coder.

Spend the most time on study

This is the last piece of advice for beginners. The time to play SC or CS every week is compressed to the minimum, do not play them is the best. At the same time, if your ASP technology has been able to come to the money, even if the company asked you to take a part-time job, this proves that your gift can ensure that you work hard to achieve better results, you should do more complex things. Take a long view, which is applicable to everyone.

Believe you have been able to decide whether to learn C # or when to learn it.


Computer World Developer Club Http://www.dev-club.com




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.