目录
一、课前准备
1.1 电脑配置
推荐使用Windows电脑的原因:方便搭建环境。
新款苹果电脑(使用M1芯片):搭建环境困难。
1.2 芯片
M1芯片:使用ARM架构。
苹果电脑的很多软件配置这个芯片,还不到位。
Windows和苹果,同步不起来。
本人使用电脑:
MAC可以安装fusion虚拟机,安装Windows,Windows里面安装VS。
1.3 技术
有了技术后,使用苹果很方便;
有触摸板配合起来很方便;进入大厂,公司标配mac。
没技术,搭建环境很困难。
1.4 操作系统
国外进行高校技术教学时,使用的基本都是Linux操作系统。
Linux操作系统非常适合学编程,非常适用于技术工作、技术开发的。
国内公司装的服务器,基本装的都是Linux操作系统。
1.5 字长
32位机器、64位机器,指的是32位CPU、64位CPU。
32位、64位:CPU对应的字长。
字长:CPU读取数据时,一次性读取多大空间。
1.6 框架
C++是QT的基础,QT是一个带图形化的界面框架。
easy是非常简单的图形化界面库。
1.7 网络
如何写出基于网络的编程、程序,是可以进行通信的。
课程体系就是:《网络协议》到《网络编程》。
- 网络协议栈。
- 网络中的各种协议,如何封装、解包。
- 网络状态的链接和断开:三次握手、四次挥手。
1.8 VIM学习资料
- 简明VIM练级攻略:https://coolshell.cn/articles/5426.html
- 给程序员的VIM速查卡:https://coolshell.cn/articles/5479.html
二、课程基础
2.1 学习方向
常见的研究方向:C/C++研发方向、Java研发方向、测试开发方向 算法和数据结构。
C++研发方向、Java研发方向、测试开发方向、大数据方向。
2.2 常见比赛
ACM、蓝桥杯、CCPC等比赛。精力不能全部投入比赛中。
2.3 书籍推荐
《程序员的自我修养》:面试题经常用,如果面试官刚好读过,和自己有较高的认同感。
《深入理解计算系统》中也讲到。
《C++》《JAVA》《数据结构》《操作系统:国内的操作系统市场不太好》《计算机网络》《软件工程》《计算机组成原理》《微机原理》《C陷阱和缺陷》
学好编程,不仅仅是学好C语言,必须要学好:
- 计算机语言
- 算法和数据结构
- 操作系统
- 计算机网络
- 项目实战
- 数据库
2.5 其他
STL语言、VC、wIndows下的网络编程经验。 PC客户端、移动客户端。
.cpp文件格式要求更加严格,虽然是向下兼容.c 一个解决方案里面可以有多个项目 VS里面它会自己停下来,电脑自带的exe不会停太快了,要停就加pause
2.6 在线OJ
牛客网中,只要光标在代码行,Ctrl+C就行,然后回车就能复制。
复制不用选中整行,直接CV就行。
在线OJ的题目有两种类型:
IO型中,题目要求完成两数相加,只需完成一个函数部分就行,如下所示:
2.7 刷题建议
(1)先刷牛客网初级阶段
鹏哥有讲一些课程。
(2)会员问题
LeetCode:没必要充值会员,免费的都写不完,没必要充值。
- 国外引入,翻译为中文版,刷题是专业的。
- 还可以在上面进行笔试,笔试系统,熟悉笔试流程,调试、提交、做题。
牛客网:后来的,也是很专业的。
(3)刷题使用的语言
C语言提供的可以直接使用的数据结构不多,使用起来不是很方便。
使用C++、Java,刷题就会非常容易。
面向对象的语言中,包含容器、数据结构,直接可以拿来用,比较方便。
(4)不同线路的刷题方式
C语言线路刷题掌握技术:C+STL(标准模板库)
Java线路刷题掌握技术:Java
2.8 视频学习要点
《函数栈帧的创建和销毁》可增长见识:
三、课程大纲
学习数据结构的基础:指针、结构体、动态内存管理。
四、学习方法
五、博客管理
github网址:国外/网络要求高/访问慢。
gitee网址:国内/访问速度快。
- 大公司喜欢的东西。
- 注册:github账号。
- 慢慢扩展学习 git 教程链接(不能只懂三板斧) 。
印象笔记(有道云笔记)-笔记可以检索,笔记丢不了,随时随地方便复习。
xmind-思维导图,整理一门课程学完后的框架。
六、方向选择
6.1 C/C++
6.2 JAVA
6.3 测试
曲线救国,先进大公司再说。
七、难度对比
C++本身没有网络库
JAVA可以进行网络编程。
学了Java,什么都可以搞了。