Hit CS course class's understanding of computer professionalism

Source: Internet
Author: User

Originally this content has been replied to W big convenes discussion CS learning question post (http://www.1point3acres.com/bbs... to = findpost & amp; pid = 393867 & ptid = 24531), but I am 8g thinking, and points are not enough to read the story of plagiarism (http://www.1point3acres.com/bbs/thread-12034-1-1.html ), I had to resend it to earn points.

Content:
. From 1 point 3 acres BBS
As a computer course and system structure direction for six years, let me talk about my understanding of computer professionalism and hope to help you.

Those who know better are better than those who know better, and those who are better than those who are happy. Computer science is no exception. I was selected as a computer Major for my undergraduate course. my freshman year liked this major because of the encouragement of a C Language Teacher and decided to study the system structure. Interest entry, such as "Computer Culture" (version 10th ?) And "the mysteries of coding" (I think the old version is better than the new version ). Note: The first 20 years (1966-1985), the ACM Turing Award (1966-2006), and the IEEE Computer Pioneer Award: 1980-2006. More professional. We recommend csapp, which is a course offered by CMU ranging from 15 to 213. Here, 15-213 is the introduction of the csapp textbook.
To computer system, which is also the zip code of picun. Believe it or not, I am determined to study the system structure because of this book. Another reason is that the CPU and serial port of the custom instruction set are compiled using VHDL, the communication between the two is successful on the test platform with FPGA!

1) Programming Language
The entry level is C. Otherwise, I am embarrassed to say that I am learning CS. I used C prime plus, which is very basic. I don't understand that someone actually recommends the C Bible-the C programming language written by the father of C. I am working as a compiler to achieve backend from the front end, so far I can't say that I can understand C, does someone think this is the fastest way to get started? C Le is definitely a good book, but it must be an advanced and reference. C advanced also has a variety of C expert programming, C and pointer, C traps, can be improved. C ++, Java, and C # are followed by scientific research/project requirements. Many msra interns I know have switched from C ++ to C #. What coding efficiency is high? Cloud. Anyway, I am using llvm, which means that C ++ is black. Another Daniel told me that according to a language rankings
C ++ is almost gone; anyway, Daniel did not give the source, and the father of C ++ in Tamu is still working on stapl, the parallel version of STL, I think C ++ is definitely not the original Zhuge banxian. C ++ getting started. I use C ++ Prime. Note that it is not c ++ prime plus. The C ++ programming language written by the father of C ++ is actually difficult to understand. After getting started, you can turn it over. More advanced C ++ books, various efficient C ++, and analysis of STL source code by Hou Jie. (Sorry, I only know. I didn't see it .) Java is not suitable for being the first language. A few years ago, some famous American professors wrote articles and approved them.

The script language, as its name implies, is a tedious task of execution redundancy. These tasks can be handed over to the computer and run on a regular basis, such as Python, Shell, Perl, awk, sed, Ruby, and ror. Select a proper option. I remember where Douban is, the programmer said, "Computer Science class does not teach scripting language. But who really master a scripting language means that he loves computers, so we will recruit him. There are no examples of books. It seems like a scripting language. o'reilly has a well-versed book. That's it. Finally, you must be familiar with regular expressions.

Functional Languages, such as LISP, coq, and ML, are another way of thinking. There was a joke that the former Soviet Union, ke Bo, had a hard time stealing the core code of NASA in the United States and was trained after being handed over to the summit. He was puzzled and gave a glance at the code, which was a combination, go crazy on the spot. Compiler will also be introduced later. In fact, I think this is the language that computer students should master. MIT's sophomore year started scheme. The French "Emy of Sciences" INRIA designed CoQ and was used for various formal proofs. Wu Wenjun, two winners of the first National Scientific Progress Award, contributed by machine proof, and Yuan Longping, addressed our rations. It can be seen how important Wu is!

Finally, I was wondering, is someone actually recommending the Web as a language entry? This is the first professional course for computer science students. I am discussing computer science, science, not engineering. I am a bachelor's degree, not a junior technical school. C is learned for the later OS-Linux. Learning Web, do you keep up with the market trend? Html/CSS/JS. Why are you not HTML5. Sorry, I am very conservative and do not understand web programming, but please take a look at the HTML5 press conference video on the web. The speaker came up with a variety of design philosophies, even including George Orwell's 1984, finally, HTML5 is provided. This is the essence, or the essence of web design. I have a sense of accomplishment when I see my own webpage. What is the sense of accomplishment when I modify the Linux kernel code? The first suppression and later promotion are not even better! In my opinion, the principle of undergraduate studies is not to be touched by the outside world, to consolidate the foundation and do things that interest me. For example, Steve Jobs has learned calligraphy, to India Buddha!

4) Data Structure & Algorithm
Many people recommend "Introduction to algorithms", which is not an entry level. In fact, you only need to learn the basic concepts of DS. We recommend that you use the data structure of Yan Weimin from Tsinghua University. There are videos on the Internet. Later, as we all said, ACM is not for final, but for the sake of no fear of programming and a sense of accomplishment (back to PL, can the Web language be ACM ?) After a certain number of questions, we need to strengthen the algorithm. We recommend Robert Sedgewick's book and "algorithm Learning: the essence of design". Finally, let's take a look at the taocp of Gartner. The so-called household code travel boast essential weapon.

2) operating systems.
Like ds, operating systems are also a subject of practice. I remember the teacher said in class that when he was studying, he thought the Banker algorithm was so elegant. Why didn't he use any OS? The reason is that the time complexity is O (n ^ 3 ). Not to mention, read the code of the open-source OS-Linux directly, such as 0.11 lines and 10 thousand lines. There are 0.11 code analysis on the market. My advice is to understand it by yourself and then compare and learn it. With the foundation of 0.11, I am afraid I will not be unfamiliar with any OS in the future. At this time, the reader will not only be a cool man, but a cool (refer to the ten floors of programmers ). We recommend apue, Unix programming art, and unp.

Of course, you can also use real-time operating system practitioners, such as uC/OS. The code is short and concise, just like Linux, pure C.

Is there an "write your own operating system" in China "?

Windows internals?

So far, we have to despise win-there are no easy-to-use terminals, win the general market with a graphical interface, and achieve commercial success. Of course, Win's kernel technology is actually more powerful than Linux. Which well-known IT company does not have its own cluster? Do clusters require graphical interfaces? In my opinion, it seems that lose my power of control is not good. computers serve people and are controlled by CSER. By the way, 8 GB, Gates's understanding of "computing" is junior high school students; Google's page is an undergraduate. Now, I'm not sure about Facebook's Zack level, but at least it's just like page. Next, let's take a look at Amazon. This is because of her cloud platform, Dropbox, and so on. We can sigh that China has a national monopoly.

3) Database
Sorry, I am not good at dB. But dB is actually very interesting, but unfortunately MySQL is dead. I don't recommend getting started. Let's go to the advanced level-Database System implementation

4) Software Engineering
This is simply a human discipline that integrates computer science, management, psychology, and social engineering. I will not expand it here. There are also many categories of classic books, such as coding classes (write solid code, refactor, various design pattern, second edition of code Daquan, The way programmers practice, the path to excellence in programming, O 'Reilly "Beauty of xx" series, programming Pearl, various books on "UML, XP programming, agility, demand, testing", and dreaming code ), management class (various hackers and painters from Joel on software and Graham, founder of YC in the "USA" innovation workshop, including peopleware and 37single, which are good books and even books for managing GTD ). In fact, I think "the path to excellence in programming" is a fake csapp. YC is an innovative workshop in the United States, which is as cool as Paris is in Harbin. At the same time, I would like to salute the Tuling Award winner and Brooks, author of The Mythical man-month in the North Carolina mountains, but I recommend another book "design original".

If you want to learn the Web, you should learn Apache, Linux server management, and so on. If you want to learn the Web, we recommend that you use http://www.pureweber.com /.

5) compiler and PL Design Philosophy
Come out and try again later. The worst part of my science is compiler. As a result, all the graduate students work on compiler, that is, llvm. Why do those who use idevice think that the system is smooth and the llvm with the source version is indispensable? Of course there are iOS, based on FreeBSD-another Linux release version (B is from Berkeley, and they have a tool and open source tradition ). An intern from Beijing Intel Research Institute told me that intel is responsible for its compiler optimization. Therefore, it is not afraid to learn OS and compiler well all over the world.

It is a pity that everyone should be a junior in this course. A lot of people are waking up and have no desire to fight, because they have to wait for the public servants who are studying for postgraduate entrance exams. However, starting from this course (including the previous compilation), we can truly reflect the difference between CSER and other non-computers.
This article was originally written from 1point3acres Forum
Programming Method, construction and interpretation of computer programs, concept of programming language, principle of programming language, Introduction to theory, language, and computing, and guidance of Computing Theory it should be the literacy of computer science students.

Of course, the dragon book tiger and whale book (http://cse.seu.edu.cn/people/yan... id = 8 & topicid = 26) cannot be missing ). It's funny. I know whale books a few days ago, but I used to refer to them when I wrote the compiler frontend in my undergraduate course, but I didn't know her nickname. Compiling is a discipline of practice. llvm has sprouted from uiuc. After more than 10 years of development, it has become a commercial compiler supported by Apple. It is not a miracle to use it for IOS.

6) Computer Architecture
Haina baichuan, the system structure is such a discipline that fuses the lower-layer assembly, the middle OS, and the high-level PL into a furnace. June disappeared. Because of the galaxy computer, the National Defense Science and Technology University is always the leader in China's computer system. Although it has begun to be impetuous, it is difficult for Tsinghua huake to turn over (and a parallel lab in Nanjing University.

The system structure can be large or small. Small refers to the instruction set, which can include the principle of computer composition and compilation (each instruction set requires its own compiler ). Therefore, I took the two books of Paterson and Hennessy to the very beginning-computer composition and design: Software and Hardware Interfaces and Computer System Structure: quantitative research methods. It doesn't matter if you don't understand it. You can read a book for hundreds of times, but it's just as intended.

However, the Computer Major is very practical, dr. brooks is a graphic award that leads IBM 360. Ca is very active-gpgpu, multi-core, reconfigurable computing, and so on. Haha, I have said so much, and all of them are actually paving the way for Ca. I hope CSER who is interested in going abroad to do ca research.

Beyond curriculum
Looking back on the past six years, I am very happy to learn computer science. It is not only because computers are "simple" compared with humans, but they are executed according to programs, when an accident occurs, it is also possible to assess the possibility of recovery and avoidance-Every programmer is an angel with wings. In the computer world, building his own ideal country has nothing to do with fraud, especially because he has learned through computer science, learn more about how to get more information and accept new things with a more open mind, rather than becoming a completely conservative left. In fact, many computer science students like science fiction and philosophy. Master Feng's "computer and human brain" and "Wanli Ren Chan game" like to discuss the values behind technology, our firewall: expression and supervision in the Internet era.

Computer doctor learning requires a solid mathematical foundation. However, doctors need more humanistic qualities. When introducing se, more bibliography is actually in the humanistic direction. Yes, I think China lacks the spirit of peace and contentment, which is related to the lack of real Ph. D. Education-One Direction in five years. In computer science, the bachelor's degree is B .e., a bachelor's degree in engineering, a graduate or M. S., scientific danale, and a doctor's degree in philosophy. After my Ph.D., I should not pursue an excessively material life, but a spiritual pleasure in the field of research!

This is also related to the lack of Humanistic Qualities, including me. Few people have read the qianchu text, the three-character Sutra, the disciples, the four books, the five classics, and the left-handed biography in the spring and autumn periods. In addition, learning computer technology also requires reading history, what's the beauty of mathematics, the top of the waves, the exciting thirty years, the boiling fifteen years, the IT historical records, the IT general history, and the it big defeat to see what technology is in the ascendant, what is in the sun, what is in the sun. (Also recommend this TED video, http://www.ted.com/talks/simon_s
... Inspire_action.html) I recently read Sandel's "justice", discussing the moral criteria that are very close to life. As the saying goes, Chuang Tzu says that "walking around" and "watching" by the Buddhist family (that is, the alias of Goddess of Mercy) Make me yearn for, let me think, and let me feel free.

It's a long journey. Let's look forward to quantum computers. At that time, the basic computer course may not be the above one. 1) Should it be quantum mechanics?

In sum, bless all CSER, this is the best discipline. I wish you all the friends, and you are happy to be at home. Amitabha!
. Visit 1point3acres.com for more.
Sorry, the speaker does not know. I sprayed a slot, which is inconsistent with my avatar.

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.