I have been suffering and hesitant to learn C ++ over the past six months. Now I have the answer:
Get up early
Http://www.zhihu.com/question/20634421
Spend about 2 hours learning C ++ every morning
Http://coolshell.cn/articles/2474.html
Basic Learning
Http://coolshell.cn/articles/4990.html
Graphics-related blog Xiaoyao jianke ccanc ++ books
C ++ Primer
Objective C ++ and more objective C ++
"C ++ meditation"
Predictional C ++ and more predictional C ++
Advanced C ++ and modern c ++
Generic programming and STL
In-depth exploration of the C ++ Object Model
Practice task
Use C ++ to implement a bigint that supports 128-bit integer addition, subtraction, multiplication, and Division operations.
Uses C ++ to encapsulate the capacity of a data structure, such as hash table.
Encapsulate and implement a smart pointer in C ++ (you must use a template ).
The design pattern must be read for more than two times. Think about the application scenarios of these 23 patterns. There are two main points: 1) Love combination rather than inheritance; 2) Love interface rather than implementation. (We also recommend "in-depth design patterns")
Practical tasks:
Implement a memory pool in factory mode.
You can use the policy mode to create a class that can align the text file left, right, and center.
Use command mode to implement a command line calculator and support undo and redo.
The modification mode is used to implement a hotel room price pricing strategy-peak season, service, VIP, tour group, and other factors that affect the price.
Learn STL usage and design concepts-containers, algorithms, iterators, and functions. If possible, read the source code.
Practical tasks: Try to use object-oriented, STL, design patterns, and windowssdk Graphic programming skills
Make a snake or Tetris game. Different Levels and difficulty are supported.
As a file browser, you can browse the files in the directory and perform different operations on different files. You can open and edit a text file and execute the file, MP3 or AVI files can be played, and image files can be used to display images.
Learn the design of some class libraries in C ++, such as boost, Ace, cppunit, and STL.
Wait until the training is completed for tens of thousands of hours before considering the next step.
========================================================== ========================================================== ======================================
Optimal Route:
1. Write a snake
2. Write the network module to enable Internet connection for the snake
3. Replace the network module with a well-known network library, and port the code to the Linux platform so that everyone can play together and develop into a game platform.
4. Provide the SDK for students to develop a continuous view on the game platform.
========================================================== ========================================================== ======================================
4.3
I read the 101 best practice guidelines after the C ++ primer4 comments in one breath, so I can understand most of the terms.
4.5:
What is more interesting than achieving a powerful greedy snake from scratch?
========================================================== ========================================================== ======================================