Introduction to computer majors

Source: Internet
Author: User

I. Extensive understanding, starting from popular science books


If you are a computer professional, you may have a certain degree of foundation, maybe because of a temporary passion, but more people may not have a deep understanding of your choice, more or less have some mysterious feelings about computer science. Do you like this subject? In which branch can talent be used? Or is it really not suitable for this major? The solution to many questions is to understand and understand our disciplines first. A strong interest is the source of learning any discipline, while a broad understanding is the way to gain interest. Currently, it is not difficult to obtain information. "reading" is a simple and effective method.


Maybe you think reading professional books is a little difficult and boring for yourself who just entered the university, so you may wish to read them from popular science books first. Popular science books are the best way to understand theory and obtain application knowledge. I believe many science and engineering students are overwhelmed by quantum physics and relativity. The reason is that there is an ideological gap between our real life and the abstract mathematical model. However, if you read Stephen Hawking's "A Brief History of time", you will be attracted by interesting stories and examples in the book, so that you can have a perceptual understanding of abstract theories-even if you still have not understood them, you have at least understood the fields and objectives of the subject research, and you will certainly gain some benefits. All science and technology disciplines are of this nature, and computer majors are no exception.


We know that computer theory is based on mathematics. The Computer Major in a university has high requirements on mathematics, so it is important. Mathematics has a headache for many students. Apart from its "complexity" and "difficulty", it is largely because they do not understand the practical application of these abstract theories. Compared with the curriculum settings of the undergraduate mathematics Major, the mathematics courses of the Computer Major are mostly practical. For example, the logic algebra involved in our discrete mathematics course lays the foundation for all computation of computers, and the formal language forms a model for computer program compilation, algebra systems are the theoretical basis of various types of database systems. Therefore, it is very helpful to understand the theory if you can understand and simply learn the specific application of these mathematical knowledge in advance. In addition, electronics, Signals and Systems, control theory, and other public courses are required by computer science students. However, many students often think that they have little to do with computer science, thus relaxing their learning. In fact, these disciplines are the foundation of computer hardware and network communication. The prerequisite for learning this knowledge is to understand their practical applications and their close relationship with computers.


Maybe you will be very clear about the concept of "Euler's path" when learning Graph Theory in the future. This is because you have played a "one stroke" game in your childhood picture books; but what are the concepts of "bipartite graph" and "spanning tree? Your understanding may not be so profound-because it is difficult for you to find some examples of your life and extract features from them. In this case, it is necessary to read some popular science books related to this knowledge. I have read a set of mathematical games (Scientific American magazine, Chinese version: Science and Technology Literature Publishing House ), it embodies abstract concepts in the fields of graph theory, logical algebra, and automatic machine theory into interesting stories and guides readers to understand the practical application of these knowledge, inspire readers to combine abstract thinking with emotional life. I have also read a book "The mysteries of coding" ("code", Chinese version: Machinery Industry Press ), it compares Logical Algebra, digital circuits, assembly languages, and other knowledge in the form of physical objects and simple circuits, reveals the principles, and guides readers to practice. In fact, there are still many popular science books related to computer science. reading these books can definitely play a catalytic role.


When talking about popular science books, another issue is the relationship between computer science and computer technology. Maybe many of you have chosen computer science because of their dazzling understanding of computer applications. The so-called computer technology generally refers to computer application technologies, including text processing, information management, multimedia, website construction, etc, generally, internal computer implementation mechanisms such as data structure, composition principle, operating system, and compilation principle are used. The former is the embodiment of computer productivity improvement in all walks of life and belongs to all kinds of vocational education and specialized education. The latter is the theory of computer and the focus of undergraduate computer teaching. Most computer books and magazines on the market are computer application technologies and belong to the "technology popularization" type. From the perspective of the audience, they are similar to popular science books. If you are interested in some application technologies, it is very beneficial to cultivate your interest in learning, enhance your practical ability, and understand the market conditions. However, if you really want to continue working in the computer industry for a long time, you should focus on learning computer science. After all, using scientific theories to guide practice is the significance of university education.


In short, the basic knowledge of computer science is widely understood, so we will be less blind and enlightened when studying specific theories in the future.

2. Grasp the global picture and learn about computer


When you have some knowledge about the fields involved in computer science, you should start your professional studies. You may be confused by the names of unfamiliar courses, such as discrete mathematics, compilation principles, and interface technology, for your first-time Major's teaching plan and Course settings. What are these courses studying? What do they have to do with the computers in front of us? To answer such questions, we must first understand the global situation and understand computer science as a whole.


Chinese colleges and universities generally offer basic computer courses for freshman students. These courses have a wide audience and mainly involve basic computer application knowledge. Almost all the basic computer tutorials of various versions begin with an introduction to computer science. For other students who take computers as application tools, the introduction is only a summary of the content. They tend to pay more attention to the application-oriented knowledge, such guiding content must not be ignored. The special and conscious introduction to computer science gives you a general picture of computer science and a clear understanding of the research fields and significance of each branch, in this way, we can clarify the direction and deepen our understanding in the future.


Based on my personal learning experience, it is recommended that beginners read some excellent foreign computer basics and introductory textbooks. Compared with most domestic textbooks that explain the specific use of software and hardware, foreign textbooks focus more on application as the starting point, and briefly describe the principles of computer science. For example, New Perspectives on computer concepts, Chinese version, and Mechanical Industry Press, and foundations of computer science: from data manipulation to theory of computation, Chinese version, Mechanical Industry Press): the former is suitable for reading by students or computer enthusiasts of various information majors. The book is illustrated with vivid language. From the perspective of application, it involves a wide range of basic principles of computer software, hardware, and network. It also outlines the historical background of computer science and the status quo of the industry. Many audio and video materials are provided on the CD of the Book, which can improve the computer professional English listening and speaking ability while learning. The style of the latter is similar to that of the former, but the content is more suitable for computer students to read. Many American colleges and universities have set it as an entry-level course for computer students. It systematically explains the research fields, basic principles, and application directions of computer components, computer networks, operating systems, data structures, algorithm design, and other branches based on examples, it hardly involves obscure mathematical models and implementation details. Reading such books can help beginners understand how to learn computer science.


Computer science is an organic whole. Each branch is more or less dependent on other branches. If you learn in a rigid and linear manner according to the teaching plan, you will often encounter knowledge understanding problems. For example, algorithm analysis courses and program design courses belong to theories and practices. composition principle courses and system structure courses refer to different levels of computer systems. We cannot simply find out the relationship between them first and then, so it is difficult to establish a complete knowledge system. Therefore, after grasping the overall situation, we still need to briefly understand the basic knowledge of each branch. In this regard, we recommend that you read "The path to programming excellence (Volume 1): a deep understanding of the computer" (write great code: Volume 1: Understanding the machine, Chinese version, Electronics Industry Press) this book. The content orchestration structure of each chapter is similar to that of the Computer Curriculum System in Chinese universities, it covers the basic knowledge and implementation methods of Logical Algebra, digital circuits, machine commands, architecture, and memory management, and especially clarifies the essential links between different branch disciplines. With these foundations, when you encounter a higher-level question, you will at least understand the branch in which the question should be answered.


When you have a certain degree of computer theoretical foundation, especially the foundation of program design, and want to have a deeper understanding of the context of computer science, you may wish to read this book: a deep understanding of computer systems (revision) computer systems a programmer's perspective, Chinese version, China Power Publishing House ). It is a feature of its series of excellence in programming that allows programmers to observe computer systems. As an introductory textbook for computer systems in dozens of foreign universities, this book is more organized and more rigorous in style. It focuses on how programs are executed in computers and comprehensively describes the implementation details of computer systems. When you are studying data structures, composition principles, architecture, and other courses, read the relevant chapters of this book and implement examples in programming, I will certainly have a more perceptual knowledge of the simple text theory in textbooks-they actually exist in my computer!


As the saying goes, "we will be the best in the dark, looking at the mountains and mountains", grasp the branches from the overall height of computer science, and take the lead in building the overall framework of computer science and consolidating the most basic structure for it, in this way, you can clear the fog and point out directions in every step of your future study.

3. strategizing and mastering programming ideas


Programming and development are a key part of computer learning. Programming ability is an important evaluation point to measure the quality of a computer professional. This is because the program is the link between theory and practice, and the field of computer science and computer technology. As a computer major student, we are different from other practical talents who use computers as tools. Instead of simply using computers, we must provide a platform for others to use computers; on the other hand, we are not able to reach the level of computer scientists, nor to make theoretical research achievements, but can lay the foundation for theoretical study. Therefore, only with sufficient programming and development capabilities can we truly reflect our wisdom and give full play to the potential of computers.


To learn programming, you must first master at least one programming language. C language, as a high-level language with clear syntax, powerful functions, and extensive application, has long been set as a required course for programming by most colleges and universities in China. The significance of fully understanding and understanding the context of C language is needless to say. The C language tutorials on the market are mostly cool, but the most classic is the authoritative white paper co-authored by kernighan and Ritchie-C programming language (version 2nd) (The C programming language, Chinese version, Mechanical Industry Press ). Although the book is not thick, it is absolutely comprehensive and accurate. The language is concise, examples are common, and practical. In contrast, some C language textbooks in China may have a smoother learning curve than the former, but they are usually exam-oriented, too entangled in syntax dead ends, and mostly do not comply with ANSI standards. For computer students, the former allows us to see more rigorous and practical attitudes. When your language skills reach a certain level, you need to explore the essence of the language from a higher perspective. Let's take a look at this book: the construction and interpretation of computer programs (version 2nd) (structure and interpretation of computer programs, Chinese version, Mechanical Industry Press ). It elaborates on the mechanism and implementation of programming languages, and introduces lisp, a language that is not very familiar to most Chinese students. LISP is an entry-level language for computer science in many American colleges and universities. It is also a non-von noriman language that is structured completely different from C, Pascal, Java, and basic. After studying the tool, you can learn more about the essence of programming ideas.


The University's various programming and development courses aim to cultivate our two capabilities-algorithm design and application development capabilities. The former focuses on computer science, while the latter focuses on computer technology. Algorithms are a theory that uses computer thinking to solve real-world problems and are mathematical. The art of computer programming (Chinese version, which is authorized by Tsinghua, Machine Engineering, National Defense and other publishers ), however, a thorough understanding of this topic requires a considerable accumulation of mathematical theory and programming experience. For beginners, it is recommended to first cultivate the ability to use regular algorithms to solve small-scale problems and improve the thinking of mastering language proficiency and abstract problems in parallel. For this purpose, you can read these books in combination with the Programming Practice (version 2nd) (programming pearls, Chinese version, China Electric Power Publishing House), the practice of programming, Chinese version, Mechanical Industry Press, and code reading methods and practices (code reading: The Open Source perspective), chinese version, Tsinghua University Press), c expert programming (Expert C Programming, Chinese version, people's post and telecommunications Press ). They have different focuses, but they are helpful for learning algorithms and data structures through practice.


In terms of application development, practice is the top priority, but efficient practice is based on scientific programming methods. The structured program design method represented by C language is the basis of standardized program logic. Currently, it is mainly used in system-level development. Many books mentioned above are more or less involved. The object-oriented programming method, represented by Java and C ++, is widely used in practical project development. Among the classic works in this field, we recommend that you read Bruce Eckel's Java programming idea (version 3rd) (thinking in Java, Chinese version, Mechanical Industry Press) and c ++ programming ideology (2nd edition) (thinking in C ++, Chinese version, machinery Industry Press ). In addition, software architecture design, coding specifications and styles, code debugging and quality management, and various software engineering principles are all important in actual project development, be familiar with programming experience and preparation for some practical project development. We recommend that you read code Daquan (2nd edition) (code complete, Chinese version, Electronic Industry Publishing House), a comprehensive collection of software, it provides guidance on all aspects of software development and introduces some details (such as the use of goto, we are guided to know not only what is common in program design, but also why.


A game enthusiast told me that the game gave him the space to control. However, you can see that the control scope of the game is nothing more than a series of data pre-set by others in a specific process, and is embodied in a limited number of images and sounds. However, if you have mastered the powerful weapon of programming, you will be able to face the current computer with ease. If the hardware conditions permit, you will do your best to turn control into creativity, it is convenient for you to benefit others at the same time. Strategizing and mastering programming ideas, whether going to scientific research or application development, will lay a solid foundation for you!

 

4. Rational Thinking and computer Philosophy


Bill Gates is passionate about the computer industry-"waking up every morning, thinking of the work and the technologies it develops will bring a huge impact and change to human life, I will be very excited and excited." Richard Stallman, the spiritual leader of the free software movement, took decades to break the monopoly of knowledge and share the wisdom of mankind. He led tens of thousands of software volunteers to Promote the Development of the Open Source world. However, not every computer industry can have the heroic temperament of gates and the firm belief of Stallman. Computers and their related technologies are just a hobby or a tool for most companies to earn a living. The computer industry has formed its unique cultural atmosphere for more than half a century. As a computer major student, he understands professional culture and professional philosophy, which is of guiding significance for his study and practice.


First of all, we must acknowledge that there are various ideological differences in the computer world. For example, the fight between the Microsoft Empire and the open-source world is not only a business war, but also a battle of two kinds of philosophy. Most of contemporary college students know computers under the halo of Microsoft Windows. In this environment, it is not helpful to understand the nature of computers to come into contact with other things in the open source world. Create the future: Create a myth of free software ("free for all: how Linux and the free software movement undercut the high-tech titans", Chinese version, Shanghai Science and Technology Education Press) it is a book that tells the history of the open-source world. You can learn the legend of the free software movement and its leaders, so as to have a humane understanding of the concepts of GNU, Linux, and opensource. Wang Yin of Tsinghua University's work in "using GNU/Linux completely, abandoning windows-you and I encourage you" and Huang Ping of Lanzhou University's "freedom, have you forgotten?" Long articles are the generosity of Chinese people on the open source movement. Although these articles are often referred to as "extreme", they do not have the right to speak without investigation. Objective Understanding is the first in terms of support and opposition.


Second, we should treat knowledge and technology with a peaceful attitude, and balance the position of professional learning in our daily life. Some of them have become followers of "Advanced Technology" for various reasons: they are familiar with all kinds of popular programming languages. When a new version of the tool is released, they will immediately install and learn, A new technical debate immediately follows the trend. Some others have become loyal followers of some technologies: If Java is correct, they will not be able to care about. net. These followers and believers are often tired of advanced technologies and feel the emptiness of learning. Too much pursuit of technology can be described as a case by case, and the lack of a certain knowledge is also very short. On the one hand, the ever-changing technology is inseparable from the source of computer science, and the deep understanding of basic knowledge in practice is the key; on the other hand, any technology has the essence of thinking that leads to its implementation details, it is better to know its god. Let's take a look at the tedious technology and try to read a few pieces of Computer Culture and philosophy from another angle:


Program life: The Tao of programming, bilingual edition, Electronic Industry Press) the book is written by an American software engineer who has a unique understanding of Eastern Taoism and Zen thoughts. The book is composed of a short and philosophical story, it vividly reflects the lives of programmers and the evolution of computer civilization in a similar fable. In your spare time, even if you cannot immediately understand the true meaning of each story, as your experience grows, I believe that you will understand the "nature of the procedural life ".


Design Concept: The book the art of Unix programming, the Chinese version, and the Electronic Industry Press by Eric Raymond, a veteran of the "Fighter" in the open-source software field, taking the design principles of UNIX systems as the main line, the "kiss" (Keep it simple, stupid!) enabled by UNIX is displayed !) Programming culture and way of thinking. For many computer science students who are cool on textbooks and banned from Windows development, this book will surely open your eyes-"Structuring" is not the truth, and "Object-Oriented" is not the king; for those who have some experience in using or developing Unix/Linux, this book will make you suddenly clear-the original design of a program can be so delicate!


Management Philosophy: for those who are interested in software engineering and want to get involved in project management, the Chinese version of the mythical man-month published by Tsinghua University Press) it is necessary to read this book. It uses real cases to talk about things, as if it were an instantiated software engineering textbook. If you are in trouble on the road of team development, let's take a look at how our predecessors solve the conflict between "man" and "month. In fact, it is not only software engineering, but the success of any business is often not the key of technology. The factors of social science are more important to those who are immersed in technology.


In the final analysis, the philosophy of computer is still human philosophy. Aside from the controversy of ideas and beyond the form of technology, people-oriented understanding of our industry and our own position may make the future development path more comfortable.

 
Related Article

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.