对于应届生来说,C++后台开发除了考察算法外,一般还会考察什么?比如linux方面,网络方面?会考察shell的语法吗?请详细说说,谢谢
人生最曼妙的风景,竟是内心的淡定与从容!
C/C 基础:内存对齐、大小端、指针、作用域、STL中常用容器的用法和坑。。。
数据结构算法:各种链表、树、哈希表、查增删改排、反转、各种序。。。
设计模式:熟悉常用的就行,但要清楚相近模式的区别、适用场景等
网络编程:TCP、UDP、HTTP(S)、三次握手、四次分手、状态转换图、协议设计。。。
多线程编程:线程和进程之间的比较、通讯、同步、各种锁的比较。。。
公共基础服务:各种开源、闭源基础服务、工具的使用、比较,比如 Redis、MongoDB、Kafka、Thrift、Hadoop、MySQL、Oracle、Postgres、ICE、Protobuf、Nginx、Apache、LVS、Keepalived、HAProxy。。。
各种Linux工具:常用的网络工具、各种问题排查、debug 工具、各种安全工具。。。
各种脚本:Shell、Python、Perl。。。
架构设计:各种高可用、分布式、集群化方案、工具、原则、各种优化方案、各种跟踪方案、自动部署升级、各种安全方案。。。
C 语言基础(STL必须,Boost加分)基本的Linux常识,可能会问问 Shell,Vim 等等计算机网络常识等等。
我们会要求上机写一个HTML Parser,输入一个HTML文件,要求输出标签树。
然后有的候选人写的东西无法编译,有的候选人写的东西只能处理标准XML,有的候选人写的东西自带内存泄漏,还有的候选人问我们树是什么意思@_@
1) 编译原理2) Effective C 3) OS4) 算法 数据结构5) 其他的一些可以延展性的知识,条件允许的话可以看看CSAPP
看岗位了,如果是Linux环境的开发岗位,shell会简单问一下作为应届生,算法 数据结构 操作系统 的基础要好,更重要的是自学的能力
首先是基础方面的考察:操作系统层面的,关于死锁、进程线程相关的知识关于文件系统、体系结构、存储与缓存等的知识。总之,基础越扎实越受欢迎
可以看下《程序员的自我修养》,动态链接和静态链接方面对C 程序员来说及其重要这是内功啊
C/C 基础:内存对齐、大小端、指针、作用域、STL中常用容器的用法和坑。。。
数据结构算法:各种链表、树、哈希表、查增删改排、反转、各种序。。。
设计模式:熟悉常用的就行,但要清楚相近模式的区别、适用场景等
网络编程:TCP、UDP、HTTP(S)、三次握手、四次分手、状态转换图、协议设计。。。
多线程编程:线程和进程之间的比较、通讯、同步、各种锁的比较。。。
公共基础服务:各种开源、闭源基础服务、工具的使用、比较,比如
Redis、MongoDB、Kafka、Thrift、Hadoop、MySQL、Oracle、Postgres、ICE、Protobuf、Nginx、Apache、LVS、Keepalived、HAProxy。。。
各种Linux工具:常用的网络工具、各种问题排查、debug 工具、各种安全工具。。。
各种脚本:Shell、Python、Perl。。。
架构设计:各种高可用、分布式、集群化方案、工具、原则、各种优化方案、各种跟踪方案、自动部署升级、各种安全方案。。。
C 语言基础(STL必须,Boost加分)
基本的Linux常识,可能会问问 Shell,Vim 等等
计算机网络常识
等等。
我们会要求上机写一个HTML Parser,输入一个HTML文件,要求输出标签树。
然后有的候选人写的东西无法编译,有的候选人写的东西只能处理标准XML,有的候选人写的东西自带内存泄漏,还有的候选人问我们树是什么意思@_@
1) 编译原理
2) Effective C
3) OS
4) 算法 数据结构
5) 其他的一些可以延展性的知识,条件允许的话可以看看CSAPP
看岗位了,如果是Linux环境的开发岗位,shell会简单问一下
作为应届生,算法 数据结构 操作系统 的基础要好,更重要的是自学的能力
首先是基础方面的考察:
操作系统层面的,关于死锁、进程线程相关的知识
关于文件系统、体系结构、存储与缓存等的知识。
总之,基础越扎实越受欢迎
可以看下《程序员的自我修养》,动态链接和静态链接方面对C 程序员来说及其重要
这是内功啊