2014 Year-end summary

Source: Internet
Author: User

2014 can be counted as the first year in the real sense to participate in the work (although 2013 graduated, but after graduating half a year basically is in a confused state), mentality, technology has a relatively large change. Before the mentality is always more impetuous, think of shortcut ah fast What, now feel to do things, especially to do technology to precipitate down, slowly accumulate.

This year using spare time to read a lot of technical books, here by the order of time simple summary.

1. "C + + Primer"

Just graduated from the time for C + +, well, basically is the school classroom more than that point C with class things, and do a few course design level. So chose this classic tome to learn, before online to see a lot of people said this book is too thick to read difficult what, in fact, I think as long as the real quiet down to read, not so difficult, the author is still very simple to understand.

Because want to compare the system to learn the grammar of C + +, in the reading of learning is basically encountered in a less understanding of the place will stop to knock the code practice thinking about, each after class exercises are knocked code done once. Finally after reading the statistics after the lesson exercise code has seven thousand or eight thousand lines, this is not thought at the beginning.

The process of studying the whole book took about 2-3 months, and it was very rewarding compared to the point C with class of the college class.

2. "Effective C + +"

After reading the C + + primer, I was thinking about reading a little bit of books, so another classic book came into my sight naturally. This book is mainly about C + + experience, to avoid stepping into a variety of books, there are many very good experience, such as the C + + for the language of the Federation, to object Management resources (RAII), as far as possible to replace the transfer of reference, as far as possible to replace the combination of inheritance, smart pointers and so on. Personally think. At present, the most beneficial and profound external is raii, with a certain degree of good to avoid the leakage of resources. Of course, there are some experience to talk about the current understanding is not too deep, need some experience to read after the digestion. It takes about 1.5 months to finish reading the book.

3. "Effective STL"

STL is always a C + + around a thing, there may be some things people are STL neat, like to use C standard Library of things or build their own wheels, but I personally still prefer STL. Because I want to know more about the use of STL skills, so I bought this book back to read, this book is more detailed introduction of the use of the STL has a number of things to note, such as the failure of various container iterators, such as vector and string of the clear function does not free space, You can use temporary object swap to free up space, such as erase, remove idioms, and so on. It took nearly one months to read the book, and after reading it, the understanding of STL deepened a lot.

4. "Big Talk Data Structure"

Before using a lot of spare time to learn C + + things, thinking about the University of the data structure also forget how much, so in the watercress to find a good evaluation of the book to buy back to study. In fact, the beginning is to prepare to learn the introduction of the algorithm, probably looked at the front twenty or thirty pages, some of the mathematical proof of the difficulty of reading, Orz. So I switched to a little bit easier to understand.

In fact, I did not read the book very carefully, basically, the concept of each data structure and algorithm introduced in the book to understand, and then I use C + + to implement the knock code.

Mainly involves linear table, stack, queue, string (violent match, KMP), binary tree (balanced binary tree, red black Tree, Hoffman), graph algorithm (BFS, DFS, minimum spanning tree, prim, Kruskal, Dijkstra, Floyd, topological sort, Key paths) and various sorting algorithms (bubble sort, simple sort, insert sort, hill sort, heap sort, merge sort, quick sort). These data structures and algorithms are mainly implemented in C + +, but do not do some problems, according to different situations to choose, synthesize these basic algorithms. A long time or easy to forget, such as when I write this blog, some of the above algorithms can only say the basic ideas and ideas, to the actual hand-written words estimated or have to bother to think or read more familiar. But I think on the other hand the advantage is to know the idea of these algorithms, use and time complexity, and then in daily programming, can choose a more efficient standard library algorithm, in the use of various containers, know its underlying model is what, how to achieve, use more freely.

5. "In-depth understanding computer system" English abbreviation "Csapp"

Before you see a lot of Daniel recommended this book, such as Lao Zhao in the Lao Zhao book in the recommendation of this book, so the spirit of learning to pay for the purpose of buying this book study, ah hahaha.

First chapter of computer roaming general introduction of the computer from hardware to software basic composition and architecture, first let my mind on the computer's overall model has a basic understanding. The second chapter later accepted the computer data of the binary representation, although in the school computer composition principle of this course to learn a little of these things, then the class is not how to listen to (now think about what sister and how to play Wow, orz), such as data overflow overflow, Data truncation and so on are very useful things.

The third chapter of the author with just about 100 pages of time will be basic IA32 and x86-64 Assembly introduced again, after reading does not say can write much good assembly program, at least can read the compiler compiled by most of the assembly code, which is very useful for debugging, but also corrected the previous study of C + + when a point of view, Think pass by refference must be more effective than pass bay value, in fact, the size of pass value does not exceed the limit of one read data of the register, the pass by register will be more efficient, Also know that the temporary variables are stored in the register most of the time, the temporary variable understanding a bit deeper.

The fourth chapter introduces the architecture of the processor, including the simple instruction set, pipeline structure, branch prediction, forwarding mechanism and so on. The fifth chapter introduces the techniques of program optimization, such as cyclic expansion, accumulating variables, reducing memory references, and other techniques are very useful, although the modern compiler optimization ability is very powerful, but when necessary I can also through these means to try to test, optimize, improve efficiency. The sixth chapter introduces the structure of memory, the basic way of data storage and the effect of locality on program, etc. Although these underlying things may not be relevant on the surface of our upper-level programming, I personally think that knowing some basic underlying knowledge can better write code that is more affinity to the underlying mechanism.

It is also introduced that the exception control flow extends the operating system kernel and user state of the switch, process, thread, network programming, IO and many other things. It took a total of 2 months to read the book, and to do each of the post-class exercises, but the homework for each chapter was not done and was prepared to read it again a second time.

This book is very good, also not in vain many Daniel's recommendation, because the book introduced the Knowledge concept is many, the time the detail thing is more easy to forget, sometimes often turns out to look for certain concepts and the knowledge.

6. Deep Exploration of the C + + object model

After reading the Csapp and interested in the bottom, I got the book to understand some of the basic C + + implementation mechanisms, and what the compiler did behind the scenes. This book also took one months to read, in general it explains a lot of interesting things, such as said in C++primer when we do not define a constructor for a class, and the data member of this class is a built-in type, the compiler will automatically synthesize a default constructor, But after reading this book to understand, in fact, the compiler this bad guy in the back of nothing to do, the C + + standard in this constructor is called the Trival constructor, for the Trival default constructor compiler is not synthesized, the compiler will only synthesize non-trival constructors. There are so many interesting things in it.

Other spare time also studied the source code of Muduo Network library, learning Aboutspeaker Teacher's network programming thought has code style and so on.

I hope to accumulate and upgrade a grade in technology in the 2015, and also plan to learn a functional programming language in 15, such as Lisp or Haskell, to understand the language of another paradigm, and open your eyes.

Finish

2014 Year-end summary

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.