At the beginning of the article, I declare that this is another article with no question. Basically, I want to talk about how to learn English at the same time when learning programming.
I will introduce two methods to you: one is learning programming and the other is learning English. How much money does a learning method like this sell on the Internet? Here is an international website. Let's check it out: Guang is the method for learning programming. This training center costs 10 thousand RMB, and it takes only 6 months to train English, this website is charged for RMB 30 thousand !! And they are not 8-hearted 8 arrows, but this station today launched such an 8-hearted 8 arrows, and yes! What is the price of the combined method? Not 0.3 million, not 30 thousand ......
=============================== Boring split line ========================== ====
Someone asked me if I want to learn C ++ programming. Do I need to have a good level of English? In fact, they want to ask, to what extent can I start to learn English. The implication is that if he determines that his English is not good, he will be ready to save the country. He will learn English well and then start programming!
Alas, how can I answer this question? I am thinking: a person's English level is either good or bad. (I am either bald or not. But don't ask me how many hairs are not bald ).
Congratulations! Good English is not only good for programming, but also for other jobs, even life, love, etc. It is a very helpful thing. If he knows me, he will not say much about it, I will explain some of the advantages related to programming in a moment.
If your English level is poor or even very poor. Congratulations! Because I want to tell you that you have an extra way to judge whether your programming is improving. I recommend a way to improve your English skills in programming. In turn, it is true that you can improve programming skills when learning English :)
(The following suggestions mainly apply to C ++ language learning)
1. 1st and 2 years (up to 3 years ):
The content in the list is not ranked before and after, meaning that you usually want to learn at the same time.
1.1 operating system SDK
If you are programming in windows, read a lot of the documentation on msdn. Of course, if the US version, the Home Page Link here: http://msdn.microsoft.com/en-us/library/default.aspx
Then, select the "Win32 and COM development" branch. On the content page, there are a bunch of topics, but they are arranged in alphabetical order. First, you can select them, is the UI part (window, etc.) "User Interface". If you still have no idea, select the next "Windows controls ". This is a list of controls we use every day and pick one, such as a button. A combination of programming learning, of course, is Windows Window Programming (it is recommended that it be pure SDK). From time to time, Google will search for the createmediawex keyword, which is of great benefit. If you do not want to start from the Windows SDK hierarchy (tired), you can learn MFC. Naturally, you can read cbutton and cwnd in its documentation. If you want to learn VCL, It is tbutton.
If your direction is not windows, but Unix/Linux, you should first understand the man command and then learn to view the document through it.
1.2. c Functions, C ++ STL, and boost documents
Where is the description of the C function? For Unix/Linux, it is its SDK. For Windows, your ide usually provides relevant documents. For example, how is the difference between strcpy and strncpy?
C ++ STL can find its English documents online. For example: http://www.cppreference.com/wiki/, and then sgi's stldocument (the term is a bit outdated, but no problem) http://www.sgi.com/tech/stl/
Between c Functions and C ++ STL, the latter should be the most important. The main goal of reading the former can even be to practice English-of course, don't think you can read C function instructions in an English dictionary, you still need to verify the handwriting Program-this will make it possible to rapidly improve your English reading level for professional materials.
Furthermore, the above content contains a large amount of Chinese translation materials and can be used as a learning tool (for example, reading a proper amount of Chinese documents and learning a little about the whole STL framework ), but never give up reading the original article.
The last step is to learn the boost documentation. You can also read a large number of Chinese versions of boost documents on the Internet, draw out the first few libraries you want to learn (it must be appropriate first, from a simple start), and then go to the boost nest.
Some people say that it is difficult to learn English, and it is difficult to learn technical materials! In fact, it is not difficult, because we are programmers and programming technology, so things come over. For English learning programs, the English of technical materials is actually the simplest:
For words, as long as you keep watching for the last three months, it will almost reach the level where no new words can be found in millions of words;
In terms of statements, there are quite a few long sentences on the surface, but usually after three while, that is the end. It is much simpler than a novel.
Tense: I don't seem to remember how many "Past completion times" I encountered ".
......
The above content is limited to 2 years. I'm a bit arbitrary: I will add another year: If a C ++ programmer cannot effectively read the above content for three years, then he is a C ++ programmer who cannot break through himself. There is no way to get to the "suddenly open" Realm one day (of course, this is based on the software development industry, the timeliness and accuracy of Chinese materials, it may change in a few years ).
Ii. 3rd years
2.1 Continue reading the SDK documentation(Not necessarily Windows)
If you want to be proficient in Windows programming, You have to continue reading windows APIs and other things. But the previous step was to look at the API and then do related Windows programming exercises. Now we are doing a variety of exercises (such as database programming). When necessary, check the msdn document. The second is to start learning the intermediate and advanced windows APIs. For example, shell programming and other COM interfaces, such as writing some hooks.
Of course, because everyone's development direction is different. In the third year, the knowledge of writing desktop programs has become a public course ". You can continue to deepen the above, or start to switch to a specific direction. For example, if you want to deepen network programming, You can specialize in the Network part of the API and skillfully use Windows's "complete port" programming. Of course, you must make solid achievements in the previous learning so that you can straighten out your learning path and learn how to find other learning materials (mainly books are online code libraries ), otherwise, msdn is just a dictionary and is not suitable for learning blueprints. For Network-like "complete port" programming, you must first understand what is "complete Io ". There is no clear line between public knowledge and professional knowledge. On the contrary, it is a gradual transition. This process is more natural.
In more detail, five or six years ago, I learned C ++ programming in windows, almost just learning windows APIs. However, in the IT field, especially in software development, major technologies have been greatly replaced. The guy who wrote this article once bought two versions of Borland C ++ Bible, and the result was useless soon (because I caught up with the end of DOS programming ). Later I bought two versions of "Windows API Daquan". Fortunately, Windows API has been used for a long time, and the peak period is 6 or 7 years, but we all know that, b/S structure applications start to become popular. The client has a browser (NS, ie, ff) written in C ++) it's all about the world-but we cannot write our own browsers for the moment :(. The C ++ program began to gradually develop services in the background. Therefore, the importance of cross-platform applications is not considered by most C ++ "application-level software" programmers. As for GUI, it is not important, so although I have been here, I personally think that I am solely invested in learning GUI programming: (1) single platform, (2) closed source, (3) has been. net encapsulation is very likely, (4) the learning cycle is very long ...... Windows GUI programming, This is not cost-effective, but rather cost-effective. My personal suggestion is to directly learn cross-platform QT or wxWidgets, and then learn platform-related content, such as specific APIs in Windows or Linux, when there is a specific need, will be more in line with the current C ++ development trend. (Advertising time: the vernacular C ++ book is arranged in this way ). In this case, the SDK document can be changed to the class library manual of a specific library.
The corresponding technologies, such as network and thread, are not enough to simply learn Windows functions. How can I/O Completion Ports be completed in Linux ", what is the difference between its thread and windows? And so on. But throughout the process, I suggest that I still think that the first thing to learn is a cross-platform library, such as boost. thread, and the network framework, You can first learn boost. ASIO, when it is really necessary to build a large framework, especially when cross-platform (such as wanting to access AIX), it is ace.
There is also embedded programming. Now there are many platforms, and C ++ is also running for a while (I personally return to C for private purposes, and then directly jump to the Java and C # camps, i'm so sorry ...... But C ++ has the potential in this respect ......).
2.2 foreign blogs, BBS, subscribe to mail list, Niu Ren homepage,
The first time I saw a cool man in C language, the father of Linux, and a C ++ developer in MS, it was really nice, isn't it? (If you don't answer the question, I'm surprised that you will see this post in my article ). In addition to reading the API, Google groups programming, especially the C ++ Forum, is helpful for improving programming and English, A thing that helps improve living standards ....... Of course, we strongly recommend that you do not restrict your application to Google groups. C ++'s blog should not be left behind. You cannot only care about celebrities. If you are studying wxWidgets, You can occasionally read its blog (because it is updated slowly ). Do you know Joel? Chinese documents can be bought, but the website "Joel on software" is worth seeing.
Several English Websites of C ++ danale: Father of C ++ (not updated much, but worth looking at), Scott Meyers, and several other cool people, you can find the introduction and link from Scott Meyers's article.
3. 4th and 5 years
At my level, I am very proud to arrange for you four or five years later. So in this section, I only recommend that you read some classic C ++ Original English books here. For example, the design and evolution of C ++ is always read on the pillow side. In terms of generics, you also need to take an advanced level. You can purchase the original version of C ++ template to read it. In this case, the country has gone abroad for many years. At the end of the article, we will talk about the Standard C ++ documentation. Now we can go and see it. This year is the new benchmark for C ++ in. It is estimated that the vote will be skipped. I am looking at the details of tr1, but four years later, it is the c ++ 0x standard.
The C ++ language went through the crazy age of "Eat everything" and experienced a period of low tide for several years, but it did not die. On the contrary, it had a clearer and irreplaceable position. The language itself is about to usher in a new standard. Its learning materials, such as the publishing peak of books, will inevitably follow. However, for a natural reason, the first-hand information is usually from abroad, so be prepared to improve c ++ programming and English at the same time, it is necessary and meaningful to promote each other.
@The most important explanation @
Someone asked: I don't want to learn English. I want to learn C ++. After that, I can get the skills of both English and C ++ languages, and programmers may not be able to do it, I went abroad to earn my life. Stop! From the beginning to end, this article explains how to master the ability to read relevant English documents for programming. Want to become an English speaker through this ??? In this way, I want to learn how to get started with English girl ??? It's definitely a dream.
------------ Welcome to the publication of "Vernacular C ++ -------------------------
If you want to communicate with me, click the following link to become a friend:
Http://student.csdn.net/invite.php? U= 112600 & C = f635b3cf130f350c