Programmer's path-advice from an old programmer to his new college students

Source: Internet
Author: User

Always think,For a beginner, the technical trend in the IT industry cannot catch up. I often see my ddmm throwing away textbooks and buying expensive big numbers such as C # and VB. NET, which makes me very sad. However, I think it is funny to have a lot of discussions about the usage of pointers in C.

C # Just like ASP in the past, "suddenly like a spring breeze, a thousand trees and a thousand trees bloom". As a result, the information colleges of many schools have become "web colleges ". 96, 97-level college students are all engaged in web. Of course, I have no awareness of discrimination against a certain industry. I just think if theySpending more time catching up with these trendy technologies on basic courses should be able to go further..

Several misunderstandings

A beginner's pursuit of the C # trend is actually only one of the several misunderstandings that often occur during the learning process. I will use some practical examples to illustrate these phenomena. You can step by step to see if you belong to one or more of them:

Computer technology equals Programming Technology:

Some people have this impulse in their subconscious even if they do not have this idea. It is strange to me that many students in the Information School also think like this. I think that computer majors are programming majors, which have nothing to do with programming, or that they do not care about the relevant courses. Extreme students will not read it if there is no "programming" in the book.

In fact, programming is only one of the most complex tasks in the application of computer technology.The bottom layer of the IT industry is coder). Computer technology includes multimedia, computer networks, artificial intelligence, pattern recognition, and management information systems. Programming is only a process of expressing algorithms in the Process of theoretical research or engineering practice of these specific technologies.

Programmers do not necessarily know much about computer technology. An interesting phenomenon is that many masters of computer technology researchers do not understand programming. The hype on the Internet and the good working conditions in the real world make programming the work mysterious. ActuallyEvery programmer understands that they are not difficult to learn these things, so they will naturally not go anywhere..

You have learned the following:

I have met a girl's "Computer Network Principles" textbook. This girl is full of books and notes like a primary school student. It must be thicker than the textbooks. What I don't understand is that it is necessary to take notes for courses like computer network principles? Our exam-oriented education has indeed affected many students. During the course "principles", many students recite their memories as if they had learned the principle of the horse column. This is the most stupid behavior I have ever seen.The so-called principle is to understand why it is doing this and learn why, rather than how). The maximum length of the Ethernet network cable, the length of the data frame, the meaning of each field, and the format of the IP header are ignored, I forgot the purpose of the TCP/IP protocol design.
In short, many people spend a lot of time learning their books.

This is also true for these students when learning programming. They exactly remember the details of C ++ syntax. After reading the C ++ tutorial, I read thinking in C ++ (indeed a good book) and inside
C ++, C ++ reference, this c ++, that C ++ ......, Then there were all sorts of anecdotes about the C ++ syntax on the internet, and I found myself forgetting some of the C ++ syntax, and finally I went back to the negative complement ....

A younger brother told me, "C ++ is too difficult. I forgot to learn it here, and I forgot to inherit the template ."

I replied, "It's easy if you don't study ".

I didn't teach him anything, but I told him that the syntax of dead C ++ is just as meaningless as there are several methods of writing the word kong has shown off. You don't need to worry too much about the C ++ syntax at all. It's just a matter of hands-on programming. If you don't remember something, check msdn immediately. I have concluded that,The most trivial knowledge is the understanding of program syntax in the actual development process.. This is why I spent only half an hour reading the syntax when I wrote a small program for my classmates using basic (I have never learned it before, then I completed the program in half an hour, and an hour later I completely forgot all the keywords of basic.

Blindly catch up with fashionable technologies despite the Foundation:

Finally, I came up with the question. Most people want their stuff to run right away and turn into money. This idea is reasonable for a programmer or project manager who has already entered the professional field, and IT technology advances so fast. If it is not followed up, it means unemployment. However, this idea is confusing for beginners (especially those with ample time.

The biggest capital for a beginner who has not entered the competition in the industry is that he has enough time to learn basic things and learn why instead of how.. Fashionable technologies are often easy to master and more easy to master. This is driven by commercial interests, in order to maximize the cost of software development. However, this is the reality in the IT field,The easier it is to grasp, the more people you learn, and the faster you get rid of it.. Every time new technology comes out, many beginners follow up. These beginners spend a lot of time in the follow-up process because they lack the necessary foundation, this technology is almost eliminated.

Basic courses, such as data structures and operating system principles, cannot immediately implement a Linux (this is why many people laugh at the useless theoretical courses ), however, they can significantly reduce the learning curve slope when you are learning new technologies. Moreover, many key technologies (such as Win32 SDK program design and DDK programming) are even indispensable.

A living example is that one of my colleagues and I can't find the power-on button when I was a freshman. He has already written some simple assembler programs. I spent all my time on the course of assembly, computer architecture, data structure, operating system principles, and so on. He started to learn HTML and VB, and catch up with ASP. In my junior year, I started to learn about the operating system principles of windows and how to program using sdks. It took a long time to develop visual applications with VC. Once upon graduation, I was annoyed that my program was able to run and I was still learning how to create a dialog box. The company I negotiated with offered more than twice his salary.

The following is an inappropriate example: Suppose it takes four months to study vbprogramming, and it takes one year to study basic courses and VC programming. So if you want to learn VB first and then learn the latter, the time will not be reduced, or one year. In turn, if you want to learn the latter first, then you will learn VB, maybe you only need one week to learn very well.

Several important basic courses

If you are a student or if you have enough time. I suggest you carefully master the following knowledge. My advice is for beginners who want to achieve something in IT technology. At the same time, I also listed some bibliography which should be available in the bookstore. To be honest, my biggest wish when reading other people's articles is to ask the author to list a book order.

College English-Don't be funny. I strongly recommend this course because it is unimaginable to have no professional document reading skills. Chinese translation is often made in the Year of the Monkey, Ma Yue, and many publishers now simply print e files. The learning method is to force yourself to read the original teaching materials. At first, you will not be able to understand them.It is definitely a quality that any industry needs..

Computer Architecture and assembly language-Books on the architecture are everywhere and similar, but compilation has a very good book "80x86 Assembly Language Programming Tutorial" (Tsinghua University Press, black cover, yang Ji-wen ). You need to focus on the programming of the 386 post protection mode. Otherwise, when you learn something at the bottom of the modern operating system, you will think that you are reading tianshu.

Computer Operating System Principle-Our development is always performed on a specific operating system. If not, there is only one possibility: You can implement an operating system on your own. In any case, the operating system principle must be read. This is like we need to know the basic operating sequence of a chip when making a peripheral device for a chip. There are also many such books, and I have not found any outstanding book. I just think that if I have read these books, I should read "Inside Windows 2000" (Microsoft press, I am reading the E version, the Chinese name must be the inside story of Windows 2000 ). Another article on zdnet has discussed the necessity of learning it.

Data structures and algorithms-This course determines the level of a person's program design and is a core course. I prefer the Tsinghua edition (Zhu zhanli, Liu Tianshi ). Many people like to buy C ++, but I don't think it is necessary. The C ++ syntax makes the algorithm implementation process much more complicated, and many teachers prefer to use modules to make the algorithm more complex. It is best to browse the C ++ version after learning the C version.

Software Engineering-The more important this course will become, the more important it will be, even though it is just like watching Ma Zhe at the beginning. My suggestion is to read "Practical Software Engineering" (yellow, Tsinghua ). Don't take too much time to record the rules. If you don't understand them, you can jump over.Every time I finish a software design task (whether it's practice or work), I will review it and review it again..

Windows Programming-By Petzold, Peking University Press, I suggest anyone who tries to design a Windows program finish learning VC carefully. In addition, it is best to put the previous "Inside Windows 2000" in the back of this book. In this book, there is no C ++, no GUI, and no controls. Some are how to use the original C language to complete the windows program design. After learning it, you will find that VC is easy to learn. Never study VC before you finish reading this book. Many famous schools I know even use it as teaching materials. It is important.

I think the above courses are mandatory and important (if you want to be a Windows programmer).

Other courses have the following simple options:If you are from the computer department, please learn all your basic courses. If not, refer to the curriculum of the computer system. If you find that you cannot read a book, go to the end of the book, read its references, find them, learn them, and then look back at the book. If the title of a book contains the word "principle", you must not remember its details. You should master the essentials at least 50 pages a day. Practice a theory or algorithm on a computer as much as possible.

Huji, the three provinces of Japan

Reading too many books every day is easy to get lost. Let's see which books should I read by a qualified programmer. If the original article is on the wall, you can go to csdn.
You must think about what you have learned, what you need to learn, what you are most interested in, and how long it takes to write a book. At the same time, you should also think about the most likely application in the future, so that you can not catch up with the technology trend, but lead the technology trend. At the same time, we strive to use the technologies and theories we have mastered to create new things.Sticking to this will make you truly a software "Developer", not just a coder.

Spend the most time on learning

This is the last piece of advice for beginners.Compressing the time spent on CS or CS every week is the best if you don't play them.. At the same time, if your ASP technology has been able to make money, or even some companies invite you to work part-time, it proves that your talent can ensure you can achieve better benefits after studying hard, you should do more complex things.Long TermThis applies to all users.

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.