潍坊市论坛

注册

 

发新话题 回复该主题

C后台开发知识点及学习路线 [复制链接]

1#
彭洋治疗白癜风 http://news.39.net/bjzkhbzy/210716/9192503.html

????

校招形势

在去年结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗。不少同学从诸神*昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发。

后台开发工程师主流使用的编程语言有C++、Java、PHP以及目前慢慢流行的Golang等。本文就将以C++的角度,讲讲如何学习和准备后台开发的岗位。

一、语言基础

无论是C++开发还是Java开发,对于一个码农而言,最重要的就是对于编程语言的熟悉。同样,无论从事哪种类型的岗位,首当其冲的就是要掌握好语言基础。

C++是一门博大精深的编程语言,不仅拥有继承于C语言的过程化程序设计思想,还包含有面对对象(OOP)的设计理念。强大而又复杂。相对来说,C++的学习成本较高,语言里面的坑较多。语言基础的学习路线如下:

1语法基础

重点掌握:(务必熟悉底层机制原理)

指针和引用的概念

指针与内存关系

程序编译过程

static、const、#define的用法和区别

C和C++区别

内存模型

内存中的栈和堆分配

2面对对象基础

(务必熟悉底层机制原理)

面向对象理解

析构函数

构造函数

拷贝构造

多态

纯虚函数和虚函数

虚函数实现机制

虚函数表

访问限定符public、private、protected

继承原理、虚继承、菱形继承

静态绑定和动态绑定

new/delete和malloc/free

重载、重写和隐藏

3语法进阶

(务必熟悉底层机制原理)

智能指针

左值、右值引用和move语义

类型转换方式

常用的设计模式

线程安全的单例模式

内存溢出和内存泄漏

C++11新特性

静态链接库和动态链接库

4STL标准模板库

(务必能进行源码剖析)

迭代器、空间配置器理解

常用容器特点、用法以及底层实现vector、list、deque、set、map、unorderedmap

5推荐书籍

《C++Primer》可作为工具书,随手查阅

《EffectiveC++》深入了解C++的程序设计规范

《STL源码剖析》剖析STL的源码底层,非常具有学习价值

有精力还可以看《深度探索C++对象模型》《moreEffecticeC++》

二、算法与数据结构

对于普通人而言,算法的学习最重要的是能够形成基本的算法思维,懂得从程序设计的角度对高重复性的操作做优化。这其中基本算法思想的掌握和常用数据结构的理解是必不可少。这方面的学习更倾向于多看多想多练。

1常见算法类型

(务必能够手撕代码)

排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、数组操作、递归、回溯、分治、动态规划等

如何准备算法可见历史文章

进入BAT和字节跳动最难的一关,手撕代码!

2常用数据结构

(务必熟悉底层原理和实现)

链表、栈、队列、树(二叉树、平衡二叉树、红黑树、B树、B+树、哈夫曼树、字典树)、跳表、图

3推荐书籍

《大话数据结构》适合入门学习

《剑指offer》必刷66题

《算法导论》尽量看,能啃完就是大神

三、计算机网络

网络相关的东西不是很多,关键在于对常见网络协议簇的认识和理解,以及一些常规操作底层设计实现的剖析。比如:

输入

分享 转发
TOP
发新话题 回复该主题