当前位置:网站首页>Suitable for C / C + + novice learning some projects, do not give me to miss!

Suitable for C / C + + novice learning some projects, do not give me to miss!

2020-11-08 12:06:28 Bald brother

It is said that : Everything is difficult at the beginning , Learning programming is also , stay c/c++ Project practice In the group , I often encounter a small partner asking for programming How to get started with language Problems in , Such as :

  • I want to learn C perhaps C++ Language , What open source projects can I recommend ?
  • I'm new to a programming language , What do you recommend for practicing ?
  • wait

Friends who are groping for progress can enter the group 973961276 Come and learn together , Students who lack project experience can see here c/c++  Enterprise level project practice , A copy of the article is attached at the end of the article c/c++ Introduction to the Syllabus , But it may be a little unclear , If you need a clear version, please leave a message in the comments area or get into the group

See, That's where this series of articles came from , We want to learn c/c++ The students of language , After reading our introductory series , You can find the direction of learning 、 Systematic learning language , And then make a simple gadget , It's not just Hello World .

The following is a C++ piece The content of . No matter which programming language , The foundation is very important . So we should learn from the basic grammar and basic knowledge , Master the language step by step .

One 、 Basics

1.1 Get started with a project C++ Enough to :CPlusPlusThings

CPlusPlusThings It is a Chinese open source C++ Learning project . It systematically will C++ Learning is divided into 【 Advanced Foundation 】、【 Practical series 】、【C++2.0 New characteristics 】、【 Design patterns 】 and 【STL Source analysis 】、【 Concurrent programming 】、【C++ idioms 】、【 Study the course 】、【 Tools 】、【 expand 】.

As a comprehensive system C++ Learning project ,CPlusPlusThings Is good , It arranged 10 Days The actual combat part of , Understand grammar and function usage in actual combat , The only drawback is , Some of the comments are unsatisfactory , Not very friendly to some novice programmers .【 Advanced Foundation 】 Part content :

  • const Those things
  • static Those things
  • decltype Those things
  • References and pointers to those things
  • Macro, those things
GitHub Address → github.com/Light-City/…

1.2 The algorithm of the basic part :C-Plus-Plus

C-Plus-Plus It's the recruitment C++ A collection of algorithms implemented , And in accordance with the MIT License agreement to authorize . These algorithms cover computer science 、 Mathematics and Statistics 、 Data Science 、 machine learning 、 Engineering and other topics . With the exception of , You may find that multiple implementations of the same goal use different algorithmic strategies and optimizations .

GitHub Address → github.com/TheAlgorith…

Two 、 Advanced

2.1 modern C++:modern-cpp-tutorial

modern-cpp-tutorial It's modern C++ course , Its purpose is to provide information about the modern C++(2020 Years ago ) A comprehensive introduction to the relevant features of . In addition to introducing the code , It also gives as brief a historical background as possible of its technical requirements , This is a great help in understanding why these features appear .

GitHub Address → github.com/changkun/mo…

2.2 Advanced guide :CppTemplateTutorial

CppTemplateTutorial For Chinese C++ Template Teaching guide for . With famous books C++ Templates Different , The series of tutorials will C++ Templates Teach as a Turing complete language , To help readers to Meta-Programming Achieve mastery through a comprehensive . The original intention of this project is to write , It is through “ programing language ” Perspective , Introduce a simple 、 Clear “ Template language ”. I'll try to string together as many elements of the template as possible , Use some simple examples to help readers learn this course “ Language ”, Let the reader write 、 When reading template code , Can be like if(exp) { dosomething(); } The same thing comes from the hand , Give Way “ Template metaprogramming ” Technology becomes a firm grasp of readers 、 Useful skills to draw inferences from one instance .

It's suitable to be familiar with C++ Basic syntax 、 Have used STL、 Familiar with some common algorithms , And recursive programming C++ Learners read . Although the project chapters and articles are written in simple terms , But the only regret is that we haven't finished all the chapters yet . The progress is as follows :

  • 0. Preface
  • 1.Template Basic syntax
  • 2. Template metaprogramming Foundation
  • 3. In depth understanding of specialization and partial specialization
  • 4. Data structure and algorithm in metaprogramming ( Not yet started )
  • 5. Advanced techniques for templates ( Not yet started )
  • 6. The power of templates : from foreach, transform To Linq( Not yet started )
  • 7. Conclusion : The discussion is good , Disputes are useless ( Not yet started )
GitHub Address → github.com/wuye9036/Cp…

3、 ... and 、 Hands on

3.1 Let's practice :MyTinySTL

When you have finished studying C++ Of “ Book ” After knowledge , Is it a little itchy ?MyTinySTL This note is detailed 、 The project to lay a solid foundation for practice is you C++ The next stop of the learning tour . As a novice, practice ,MyTinySTL The author of Alinshans use C++11 It's a small copy of STL( Container Library + Algorithm library ). Code structure is clear and normative 、 Contains Chinese documents and notes , And it comes with a simple testing framework , fit C++ Novice to practice .

GitHub Address → github.com/Alinshans/M…

3.2 Revisiting Tetris in the same year :Tinytetris

Tinytetris It's a use. C++ Write the terminal version of Tetris game . It provides two versions of the source code , There are annotation version and library version , More notes are easy to understand and learn .

GitHub Address → github.com/taylorconor…

3.3 Learn the code of the big guys :calculator

Microsoft open source Windows System pre installed calculator tool . The tool provides standards 、 science 、 Functions of programmer's calculator , And the conversion function between various units of measure and currency . Let's take a look at the code written by Microsoft engineers ! Learn the coding standards of big factories 、 Project structure, etc , Improve the ability to read the source code . English project and no explanation part , Need to read the source code to learn , It's more difficult .

GitHub Address → github.com/microsoft/c…

Last

Want more people to love programming 、 Open source , So I've been trying to 、 Find out how to help more people . I want to see if I can build a College Students Open Source Club , Your programming path has just begun. I want to accompany you for a while .

If you're a college student or graduate student, you love programming 、 Open source , I like to talk about learning technology , But there are no friends around you who share your fun ? So come on HelloGitHub Open source club for college students !

c/c++ Introduction to the Syllabus *

版权声明
本文为[Bald brother]所创,转载请带上原文链接,感谢