Before Yan
This book was originally designed for the employment courses of Embedded Linux System engineers at the Beijing Education and Research Center. This course is a four-month full-time vocational training, requiring students to possess very solid C programming skills and be proficient in using the Linux system, at the same time, I have a deep understanding of computer architecture and instruction sets, operating system principles, and device drivers. However, the entry level of students is very basic and uneven: the degree of education is specialized, the undergraduate course is also a graduate student, and the major is related to computer, there are also very unrelated (such as accounting major ); in the past, there were completely technical-related occupations (such as HR), and all of them were from their first twenties to thirty-five and six-year-olds. So many people with different backgrounds, foundations, thinking habits, and comprehension abilities are eager to learn embedded development technology and join the IT industry, this is the characteristic of vocational education and the main issue that I should consider when writing this book.
Learning programming is by no means a simple task, especially for beginners with no basic knowledge. The University's Computer Major has been training a person from scratch for four years, calculus, linear algebra, probability theory, discrete mathematics, composite mathematics, automated machines, compilation principles, operating systems, computer composition principles, and other basic courses, coupled with a bunch of professional courses such as C/C ++, Java, database, network engineering, software engineering, and computer graphics, a student can find a job. Unfortunately, many schools are not doing well in this last article. According to our test, many of the students in the Asia-embedded training have almost no foundation. I don't know why. In stark contrast, we only need four months to train a student who can find a job from scratch, and ensure that he can find a good job, this is the characteristic of vocational education.
Why do I say "only four months "? We want to teach for four years, but the length of time is determined by the market rules. A four-year task requires four months to complete. How can we accomplish such an almost impossible task? In some vocational education, the answer is "ism", and the slogan "useful for learning, useless for not learning" is put down. The basic courses taught in universities are outdated and useless, only the technologies they teach are practical. This kind of hype is not good. I think every course taught in a university is very useful and basic knowledge will not be outdated at any time, however, those fashionable "Practical Technologies" may soon become obsolete.
How can we use four months to complete a four-year task? The answer is "optimization ". The biggest drawback of the curriculum system arranged in the university is that optimization is not considered at all. Everyone may feel like this: I learned a lot of math classes in my sophomore year, but I don't know what to do. I don't understand why I want to learn it. I don't even know how to use it. How can I learn it well? I used my previous knowledge when I was a junior or senior student and learned how useful I was in mathematics. However, I forgot to give it back to my teacher after the exam. When I went back to study again, I found that many things had never been understood before. Now I really learned it. Isn't it a waste of time for the past two years? Another disadvantage of the University's curriculum system is that it is not flexible. Each course must take up one semester and be taught by one teacher. There is no communication or connection between teachers in different courses, in fact, these courses are mutually dependent. Forcing them apart is not in line with people's cognitive rules. For example, when I first went to college, I was forced to study C language in the first half of my freshman year. In fact, C language is a very difficult programming language, without understanding the compilation principles, operating systems, and computer architecture, it is impossible to understand. That would be a waste of time in half a semester. At that time, almost all schools had computer-related majors like this. When I first came to my freshman year to learn C language, some schools went crazy and came up to learn C ++. As a result, most of the students thought they could learn C language, but it is actually a half-hanging level. When writing code, it is often a bug, but there is no chance to systematically study the C language. In the school's opinion, the C language was "finished" for you as early as freshman year, just like a meal that has been eaten. No matter whether you are full or not, you will not eat it again. Obviously, if you want to seriously optimize these courses, there is indeed a lot of water to squeeze.
What are the characteristics of this book?
-This book is not about C language in an isolated way, but about how to combine the compilation principle, operating system, and computer architecture. In other words, the content of this book is only based on the C language. It really talks about the principles of computers and programs.
-Emphasize the basic concepts and principles, and focus on the dependency between concepts in programming order. Each time a new concept is introduced, it only depends on the concepts mentioned in the previous chapter, it will never rely on the concepts described in the following chapters. In some cases, we will also reference the content to be discussed later in order to make a complete description. For example, "we will go to chapter X to explain it carefully." No such reference is necessary, if it does not exist, you just need to continue learning.
-Try to introduce every knowledge point until it is used. Introducing a knowledge point too early, and having finished speaking it, the reader will soon forget it, which is not in line with the cognitive rules.
Target readers of this book
This is a book learning programming from scratch. It does not require readers to have any programming experience, but readers must at least possess the following qualities:
-Familiar with basic Linux operations. If you do not have this knowledge, please first refer to other teaching materials to learn relevant knowledge and then learn this book. "laruence's Linux private house dish" is said to be a good book in Linux system management and application. However, learning this book does not require many system management technologies. You only need to use basic commands and install your own systems and software packages.
-Having a high school degree in mathematics. This book will use high school mathematics knowledge. In fact, if you do not have a high school graduate in mathematics, you do not have to consider being a programmer. But it doesn't mean that as long as you have a high school degree in mathematics, you can only say that reading this book should be fine. Mathematics is the most important accomplishment of programmers, computer science is actually a branch of mathematics. If your mathematical skills are poor, you need to make up for it in the future.
-English proficiency in high school graduation. The reason is the same as above.
-I am deeply interested in the principles and nature of computer science. I am not studying for employment, but for high salaries. I want to learn everything clearly.
-Be diligent in thinking. This book tries its best to clarify the dependency between concepts and strive for one-stop learning. Readers do not need to read other books to find a definition of a concept, you do not need to go over a concept in this book. You just need to learn it in sequence from the past to the next. However, one-stop learning is not just a silly learning. Some chapters are difficult to understand. This book can save time for you, but you cannot think about it for you. Don't expect to read it just like watching a novel.
Title: Linux COne-stop programming Learning
Author: Beijing Sub-embedded Education Research Center Group editing
Song Jinshan Edited
ISBN 978-7-121-09771-3
Publication date: 2009Year11Month
Pricing:60.00RMB
Internal Capacity Simplified Introduction
This book has two clues. One is a comprehensive and in-depth introduction to the C language syntax and program working principles based on the Linux platform, and the other is to introduce the basic idea of program design and development and debugging methods. This book is divided into two parts: the first part explains the basic ideas and methods of programming language and programming, so that readers can understand the C language in concept; the second part explains the working principle of the program based on the knowledge of the operating system and architecture, so that readers can understand the C language in essence.
This book is suitable for beginners who have no foundation to learn the first textbook of C language and help readers lay a solid foundation. Readers who have some programming experience but lack of complete knowledge systems can check for missing information in this book to gain a deeper understanding of the working principles of the program. This book was originally tailored to the employment course of Embedded Linux System engineers at Beijing Education and Research Center. It is also suitable for teaching materials of BASIC program design courses in colleges and universities. This book provides a very comprehensive introduction to the C language syntax and has made a lot of interpretations of the c99 standard. Therefore, it can also be used as a simplified reference to the C language syntax.
For more exciting books, see www.broadview.com.cn.
To get more books and activity information in real time, join the blog reader club.