当前位置:网站首页>[C + + cultivation plan] don't talk about learning, just talk about dry goods (Day1)

[C + + cultivation plan] don't talk about learning, just talk about dry goods (Day1)

2021-09-15 04:10:45 AI bacteria

Write it at the front : Hello everyone ! I am a 【AI bacteria 】, A programmer who loves playing guitar . I love AI、 Love to share 、 Love open source ! This blog is my summary and Reflection on learning . If you are also right about Deep learning 、 Machine vision 、 Algorithm 、Python、C++ Interested in , Can pay attention to my dynamic , Let's study together , Progress together ~
My blog address is :【AI bacteria 】 The blog of
my Github The project address is :【AI bacteria 】 Of Github


Preface :

I used to like to take notes in my notebook , So that I'm learning C++、Python I made a full book when I was , But I seldom look through , Even when you use it, you often “ Write and forget words ”. So I started to blog last month , I hope to sort out and share my notes , As the saying goes “ Technology is open source , Knowledge is shared !

I started learning... When I was a sophomore C++ Of ( Compared with many big guys, it's late ), At that time, the course was called 《 Object oriented programming 》, I remember that at the end of the course, I got nearly full marks , It's one of the best courses I've learned in college . But when I'm back in the game 、 When contacting the project , I realized “ Use time to hate less ”. So I taught myself again and again .

This 《C++21 Day plan 》 I plan to share 21 God finish writing sth. , One chapter a day . Especially suitable for novice Xiaobai , Don't worry, No C The basis of language . although C++ It's from C Language develops from , however C++ Itself is a complete programming language , And it's related to C The programming idea of language is completely different . Our learning process does not have to strictly follow the development process of science and Technology , Only by mastering the latest theories and technologies as soon as possible , To stand on the shoulders of giants . So let's get to the point !

Series of tutorials , Continuous updating :

    【C++ Develop a plan 】 Don't talk about study, just talk about work (Day1)
    【C++ Develop a plan 】 Basic grammar (Day2)
    【C++ Develop a plan 】 Explain profound theories in simple language —— Variable scope (Day3)
    【C++ Develop a plan 】 Operator & Operator priority (Day4)
    【C++ Develop a plan 】 Control program flow —— Judgment and circulation (Day5)
    【C++ Develop a plan 】 Explain profound theories in simple language —— function (Day6)
    【C++ Develop a plan 】 Play the numbers —— Mathematical operation function / random number (Day7)
    【C++ Develop a plan 】 Drill down into arrays and strings (Day8)
    【C++ Develop a plan 】 Have to master —— quote (Day9)
    【C++ Develop a plan 】 Classes and objects || Constructors || Destructor (Day10)
    【C++ Develop a plan 】 Linked list —— Quick start STL list class (Day11)
    【C++ Develop a plan 】 Stack —— Quick start STL stack class (Day12)
    【C++ Develop a plan 】 queue —— Quick start STL queue class (Day13)
    【C++ Develop a plan 】 The dynamic array —— Quick start STL vector class (Day14)
    【C++ Develop a plan 】 character string —— Quick start STL string class (Day15)
    【C++ Develop a plan 】 aggregate —— Quick start STL set (multiset) class (Day16)
    【C++ Develop a plan 】 Mapping class —— Quick start STL map and multimap(Day17)
    【C++ Develop a plan 】STL Algorithm super complete sorting !(Day18)
    【C++ Develop a plan 】STL The three components of —— Containers || iterator || Algorithm (Day19)
    【C++ Develop a plan 】 Getting started with object orientation —— Inherit (Day20)


1. C++ Application fields of

Choosing a programming language is very important , It's mostly up to you What you want to do in the future . Of course , If it's because of your interest or just to cope with the exam C++, I think it's OK , After all “ Many hands make light work ” Well !
According to various data ,C++ It is still one of the most popular programming languages . It also has a wide range of applications , that C++ Programming most Common areas What are there ?

  • Game development . Now many game clients are based on C++ Developed , Except some web games may not be , So if you want to engage in the game development industry c++ That's right .
  • Server side development . The background server programs of many Internet companies are based on C++ Developed , And most of it is linux,unix And similar operating systems . If you want to do such a job , You need to be familiar with linux Operating system and its development in the above , Familiar with database development , Proficient in network programming .
  • digital image processing . I use C++ The first project I did was about image processing . For those who want to engage in image processing in the future 、 pattern recognition 、 Machine vision , So learning C++ It's also essential .
  • Virtual reality simulation . What we often say VR technology , This is also a rapidly developing computer field , At present, all kinds of digital earth , Digital City , Virtual geographic environment or something , There are a lot of applications in this field .
  • Network software .C++ There are many mature libraries for network communication , One of the most representative is the cross platform 、 A heavyweight ACE library , The library can be said to be C++ One of the most important achievements of language , In many important enterprises 、 Departments and even the military have applications . Like Google's chrome browser , Is the use of C++ Development .

Of course ,C++ The field of application must be It's not just the above , But that's enough to show C++ Irreplaceable status . If you are interested in these areas , Then start learning with me C++ Well ~

2. How to learn C++

I especially like the saying that "practice makes perfect", In the words of our ancestors, it is Practice makes perfect . Want to learn a programming technology well , There are no shortcuts , Only keep practicing . It's familiar to all of you " 10000 hour law ", That's what it means . But you don't need to spend 10000 Hours , If you can keep on learning seriously 100 Hours , I'm sure you've started .
Well, here I also sorted out some common brush questions and learning websites for you :

  1. Power button . A good practice platform for brushing questions , The number of questions is rich 、 Comprehensive classification 、 The community is active .

  2. Cattle from . Internet people know , This doesn't explain .

  3. C++ Official website . Very comprehensive English website .

  4. Online programming website . No need to install compiler , Networking can compile and run programs , Novices can use it .

3. C++ Brief history

C++ Is an intermediate programming language , It was originally made by Bjarne Stroustrup On 1979 Developed at Bell Labs in , It's from C An object-oriented programming method evolved from language . therefore C++ Two main features of : One is compatible C, Two is Support for object-oriented Methods .
that , What is? Object oriented programming Well ?
seeing the name of a thing one thinks of its function , Object oriented programming Focus on the object , Think that a program is composed of a series of objects . Classes are abstractions of the real world , Including data representing static attributes and operations on data ( function ). An object is an instantiation of a class , Objects communicate with each other through message passing , To simulate the connection between different entities in the real world . In object-oriented programming , Object is the basic module of a program .
For beginners , The above paragraph may not be easy to understand . Normal , Here I only throw out one concept , In the rear Classes and objects In this chapter, I will talk about , So here we can Selective skip .
Because the object-oriented method has many advantages , It has become a common method for developing large-scale software The main method . and C++ Another application Most extensive One of the object-oriented programming languages .
She is also growing . Abreast of the times C++ The standard has been ISO Approval of the Standards Committee , be known as C++17. The following table shows C++ A development process of :
 Insert picture description here

4. Programming environment

Here I recommend two software I use in my study :
(1)Visual Studio Community 2017 ( Community Edition )
This software comes from Microsoft , It is a software I often use when I do engineering . Of course, it can also be used as C++ The language compiler uses . For developers who want to engage in this field for a long time in the future , Strongly Amway this software , And the Community Edition is free , You don't need to crack ! Remember, it's best to pretend 2017 Version of , Because the previous version will not support C++17 New characteristics .

  1. Download and install :Visual Studio Community 2017
  2. open Visual Studio Community 2017
  3. Click on the file -> newly build -> project
  4. Left list selection C++ Visual -> Console Application -> Set the project name to FirstCpp, The project storage address can be selected by browsing , Finally, click OK .
     Insert picture description here
  5. Click the successfully created FirstCpp.cpp Source file , Enter the following code , Realize the first C++ Program .
     Insert picture description here
  6. Click debug run or use the shortcut key Ctrl + F5, Run the first C++ Program .

(2)Dev-cpp5.4.0
This software is a lightweight compiler , For programming Xiaobai , Compared with Visual Studio Community 2017 More friendly . Weakness is , May not support C++11 Some new features later .

  1. Download and install : Baidu cloud link , Extraction code :4wz0
  2. open Dev-cpp
  3. In turn, click File->New->Source File
  4. Enter the first program , Click compile and run , As shown by the arrow below :
     Insert picture description here
  5. Completion of 4 Step after , The following page will appear . As shown in the figure , First select the file storage path , Then set the file name Firstcpp, Finally, click save . Insert picture description here
    After running successfully, the following results will appear :
     Insert picture description here
    Click compile runtime next time , It will run directly , You don't have to save the file again .

5. Think about the past and the present

That's it 【C++ Develop a plan 】 The first day , Don't talk about study, just talk about work . I really didn't talk about learning today , I just want to show you C++ Have a simple understanding , So as to decide whether you really want to learn C++, Knowledge can be shared later ~.

I always thought , Choice is greater than effort . If you think learning it will help you , Or a necessary skill for your career planning , Even for the exam , I think it is possible for you to learn C++ Power . And when we choose , Then we must persevere , Don't give up halfway .“ perseverance , Stone can be used in ” We all know the truth !

And I've suffered losses in this area myself ! After the college entrance examination , Listen to the opinions of my family and have the vision of entering the world's top 500 companies after graduation , Just choose the best material major in our school . But I studied for almost a year , Not very interested , Even confused about the future . So I chose to change my major at the end of my freshman year , Considering that you like to do it yourself ( When I was a child, I often dismantled some electrical appliances at home , Hey ), So I chose to be called “ Essential oil ” Automation major . therefore , Throughout my sophomore year, I was desperately trying to supplement the missed courses and fill my programming deficiencies . He also took part in the school robot competition in his spare time , Good results have been achieved , After being selected into the robot laboratory of the school . Since the sophomore summer vacation, I have been stationed in the laboratory . In preparation for the game , What I do most is embedded MCU , Because I have also been in contact with traditional machine vision .

And now my main learning direction is Deep learning and machine vision . In fact, this decision came from a time when I was an undergraduate internship . It was a winter vacation , Because it's boring at home , So I invested in a company , The interview is Image processing post . On one side , interviewer ( A little sister ), After reading my resume skillfully , Asked questions about the project . Then he threw me a question directly . Gave me a bunch of pictures , Inside are all kinds of mahjong cards , Let me identify and classify it . Not just logical reasoning , And code implementation . Gave me a day , Let me get the program the next day .( ha-ha , Maybe considering that I was a student at that time )

After a meal at home , I use C++ Wrote a template matching demo, It's good to test at home , But the accuracy is not high . So the next day I went to test the code with anxiety . Or this little sister ( Later he became my master ), Tested my code , It's not bad , Basic functions can be realized , So he asked me the principle . Then I answered as much as I could . Of course , Finally, it passed .

My later internship experience is actually centered on this mahjong automatic classification project , In the first week , I try all kinds of traditional image processing methods while learning , But found , The classification accuracy is only a little improved , There is no fundamental change . So later , At the suggestion of my little sister , Start learning deep learning and machine vision . So I began to make up for in-depth study of theory and Python Basic syntax . After a week's study , I have a preliminary understanding of deep learning algorithm , And use Tensorflow frame The simplest handwritten numeral classification and recognition model is built . Based on this model , I also built a four layer convolutional neural network , And applied to mahjong classification . Just through a few hours of training , On the test set 97% The accuracy of . I sighed at that time , Deep learning is awesome , I secretly decided to study this direction in Graduate School .

Although this internship is not long , About a month , But the harvest is full ! most important of all , Let me decide to change from traditional image processing to deep learning and machine vision .

Said so much , In fact, I want to tell you , Choice is greater than effort . If there is a direction and thing you like , Then do it quickly . The sooner you invest , The better you are !


All right. , That's all for today ! Want to get started C++ Friend, , Welcome to this study program , I believe you will gain something !

 Insert picture description here

版权声明
本文为[AI bacteria]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210909111002698P.html

随机推荐