The monthly salary is 50K, which is recommended by programmers. Learning from Linux C / C + + is enough

Programmer grey 2020-11-11 15:02:59
monthly salary 50k recommended programmers.


Linux C/C++ The learning route from zero basis to great God , My real learning route , Dry a lot , Recommended collection , Read carefully .

during school days , What I've been walking is Linux C/C++ Learning route , After summer internship 、 Autumn move decisive battle 、 Most of the positions invested during the school recruitment period are Linux C/C++ Backstage direction , In this direction , With my own understanding .

From the contact C++ Now I'm officially working , There are about 2 More than a year , For the learning route in this direction 、 As well as the learning programming method, groped out some , Look at the end of this article , Hope for the walking Linux C/C++ Students on the road can help .

【 Article Welfare 】 Xiaobian recommends his own linuxC/C++ Language communication group :832218493! I have sorted out some learning books that I think are better 、 Video data is shared in group files , If necessary, you can add it by yourself !~

One 、 The school recruit Linux C/C++ offer situation

I studied in Shuangfei University 、 Non undergraduate students , Professional is partial to hardware ( There is only one course in school C Language is related to programming , The rest of the course has nothing to do with programming ), I didn't win any big awards in school .

Computer foundation is zero , My sophomore came into contact with C Language , I studied in my sophomore year C Language and data structure , Junior in the school laboratory began to learn computer basics and learning C++ Direction , Self taught programming all the way , Always believe in yourself , Also got the big factory offer.

The school recruit offer situation :

  • tencent Background development engineer ( Internship to regular )
  • Baidu Hand hundred feeds flow , Software Development Engineer
  • Meituan The background and development (C++ Direction interview )
  • Homework help Background development engineer
  • Good future Background development engineer
  • thunderbolt Background development engineer
  • Shanda game C++ Development Engineer

2018 Tencent summer internship ,2019 The beginning of the year internship Baidu , The school has taken more than ten Linux C/C++ The direction of the offer, The final choice is also metaphysical , I went to the company I wanted to go to , Do what you like , Now I'm going further and further on the road of programming .

Two 、Linux C/C++ Some thoughts on the direction

The choice of direction , A lot of people have chosen Java perhaps Python Direction ,Java perhaps Python There are a lot of people who really learn the direction , There is a lot of demand for jobs , Entry can be compared to Linux C/C++ The direction is easier , But learn more , Each has its own difficulty , We've decided the direction first , Further study .

Linux C/C++ Direction , People who are really in control in China , In fact, there are very few , The number of students in this direction is relatively small , The first choice for beginners is C Language or Python,C、C++ In programming charts, it's also enduring , rank the top , If you like , have interest in , It's OK to go in this direction .

Linux C/C++ Direction , Many big companies in China have recruited jobs in this direction ,BAT There are , Especially Tencent , The underlying architecture is C++ Written , Baidu core search many modules are also C++ Written , Alibaba cloud is also recruiting C++ Direction Engineer , In this direction , I've learned a lot , There's no need to worry about finding a job , General , In fact, it is more difficult to find .

Linux C/C++ Is more efficient than Java、Python Faster , More to the bottom , Can operate memory directly , For programming thinking 、 The improvement of logical ability is helpful ; In fact, learning this direction , It's a little boring , Unlike Python Reptiles 、Java、 The front end can make something interesting , Small programs develop some products , Can be quickly used in actual combat , Get the fun of programming , Further stimulate yourself to learn .

C++ Direction there's not so much fun to do , For a long time , Keep learning with your own interest .

Come all the way , It's really painful , I've always wanted to give up this direction in school , I wanted to learn Java It might be better ( Learn from your side Java There are still a lot of people ), Whenever you're about to give up , I think I've been studying for so long , Stick to it again , It's all the way here ; I think I'm really lucky , occasionally , You don't have to have a head iron C++ Direction , It depends on the whole market , For those routes , Choose the right direction , In the deep !

about Java still C++ The choice of direction , No direction is sure to find a job , There is no certain direction of high wages , The Internet , Especially when it comes to technology , It all depends on your own technical ability .

Choose to go C++ The direction of the , Be sure to go Linux C/C++, Network programming , Learn to Linux crucial !

Big factories like to investigate the basic knowledge of computer , How well do you know the basics , To a large extent, it will determine whether you can enter a large factory , We must pay attention to the study of basic knowledge ; Prepare for autumn : Basics + Algorithm + project , Add your own direction (C++、Java、Python、 Front end, etc ), Every part of it has to be ready , In order to get the largest factory offer, Consciousness is important , With consciousness , Let's look at the specific learning route .

3、 ... and 、 Sort out the basic knowledge of computer

Fundamentals of computer : data structure + Algorithm 、 operating system + computer network 、 database + Linux、C Language

Tools for work :Linux + Git + Sql

No matter what direction you're learning , None of these foundations can be ignored , If you have time , We must be solid , With a solid foundation , You can go further and faster in this business !

In terms of algorithm requirements ,C++ The direction of the algorithm is obviously higher , The basic knowledge of algorithm must be solid !

Four 、C++ Direction of in-depth learning route

C++ Basics :C++ It's an object-oriented language , Be sure to understand the idea of object orientation , The first C++ The basic knowledge points should be firmly established , Just transformed from process oriented , Be sure to adapt to object-oriented writing .

When learning object-oriented , We should also consider how to implement object-oriented with process ( In fact, there is a member in the structure that is a function pointer ), about C++ Basic knowledge of , I'll list it briefly as follows :

  • const Usage of
  • The use of quotation
  • define usage
  • Constructors
  • Destructor
  • Copy structure
  • new、delete and malloc、free The difference between
  • Access qualifier public、private、protected
  • Deep copy and light copy
  • Friend function
  • static
  • Inline function
  • Inherit 、 Virtual inheritance
  • The question of diamond inheritance
  • Covering problem with the same name
  • Virtual function table
  • Virtual pointer
  • Virtual functions 、 Pure virtual function
  • Interface
  • polymorphic
  • rewrite
  • heavy load
  • function overloading
  • Operator overloading
  • Stream class libraries and files

C++ Advanced : Function templates 、 Class template ,C++ Exception handling in , Understanding of the underlying layers of inheritance and polymorphism , about virtual Understanding at the bottom, etc .

about C++ in boost How to master and understand the eight intelligent pointers of the library , Its core is to understand and analyze the corresponding source code , <scoped_ptr/shared_ptr/weak_ptr> These three are the core intelligent pointers , To understand the essence of smart pointers is , Memory application and release are all handed over to object management , To avoid human negligence , Causing memory leaks .

STL Source code : about STL Container analysis in , Common containers are list、vector、stack、queue、map etc. , Investigate the principle of automatic expansion 、map The underlying implementation of (RBtree), The source code must be parsed manually at least once .

For iterators 、 Space configurator understanding , such as : Primary space configurator 、 What are the applications of the secondary space configurator ? What is the essence of the primary and secondary spatial configurator , How to use memory pool to manage ? What are the problems , How to realize the source code and so on , All these problems need to be considered .

Linux Network programming :

1、Linux Process environment : Zombie process 、 Orphan process 、 Daemon 、 Process group 、 conversation 、 Foreground process group 、 Background process group
2、Linux Seven communication modes of process :signal、file、pipe、shm、sem、msg、socket
3、Linux Threads : The mutex 、 Locking mechanism 、 Condition variables, 、 Semaphore 、 Read-write lock
4、Linux Under the concurrent model : Multi process 、 Multithreading 、 Thread pool
5、Linux Next I/O Reuse :select、poll、epoll High concurrency
6、Linux Network programming
7、 Static and dynamic libraries !

5、 ... and 、 summary

Last , If you find learning materials difficult to find , You can add small made up C Language /C++ Communication group :832218493 Learning materials have been shared in the group , Looking forward to your joining ~

Accumulate over a long period , There's always a way !!!

本文为[Programmer grey]所创,转载请带上原文链接,感谢

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云