想转行c语言的小伙伴们可能都在纠结这个问题,我是零基础,该如何学习c语言呢。

接下来就讲讲0基础如何掌握c语言。

l 明白C语言工程师主要工作内容

C语言开发工程师现在多数用于底层开发,如写接口程序,操作系统,嵌入式等这样的开发中,主要工作内容更倾向于配合软件开发工程师完成工作,具体工作内容如下:

1、负责分布式数据库内核系统的维护和开发;

2、负责常用数据库的数据提取和导入工具的维护和开发;

3、完成软件系统代码的实现,编写代码注释和开发文档;

4、辅助进行系统的功能定义,程序设计;

5、根据设计文档或需求说明完成代码编写,调试,测试和维护;

6、分析并解决软件开发过程中的问题;

7、 协助测试工程师制定测试计划,定位发现的问题。

l C语言学习路径

1.环境安装

虚拟机安装配置

Ubuntu系统安装配置

vim编辑器安装配置

文件共享配置

2.系统操作命令

文件操作命令:ls,touch,mkdir,pwd,rm,chmod,mv,cp,vim,cd,pwd

网络操作命令:ping,ifconfig,netstat

3.服务器搭建

ftp服务器搭建

服务器操作命令:ftp,open,get,put,cd,byte

4.项目

Samba网络文件共享服务器搭建

5.C基础

内置数据类型、基本输入输出、类型表示范围、头文件包含、gcc编译运行

算术运算符、逻辑运算符、位运算符、比较运算符、赋值运算符、sizeof运算符、取址运算符、逗号运算符

6.条件结构

真假定义、if条件结构、if-else if条件结构、switch条件结构

7.循环结构

for循环、while循环、do-while循环

8.函数

函数申明定义、函数调用、递归函数、回调函数、现场保护、现场恢复

9.指针和数组

指针、数组、字符串、冒泡排序、选择排序、指针数组、数组指针、

指针函数、函数指针

10.动态空间管理

空间分布、内存泄漏、动态申请空间、空间释放

11.文件操作

文件类型、创建文件、文本文件读写、二进制文件读写

12.数据结构

链表、树、图、排序算法

13.项目

链表、文件、gdb、makefile

l C语言学到什么程度可以出去找工作

▪ 第一,熟练C语言基础编程,学会使用linxu系统,常用用法,设计基本的api,C语言在开发项目中如果你连基础都没有掌握,你是没有办法继续开发项目或看懂别人的基础编程代码。

▪ 第二,指针,学习C语言的程序员都知道,指针是C语言中最常用也是最基本的,很多程序的BUG都是与指针熟练程度有直接关联,所以老手平时喜欢说新手如果这个你都搞不懂,你就应该再去看看C语言的基础。

▪ 第三,记得写文档,还要看懂别人的写的文档。很多开源项目都是可以直接再次开发,自己开发的地方要记得写文档,当然在看法之前先看别人的文档,要不然你没有办法下手。

▪ 第四,查看BUG,调试BUG。C语言每次运行程序都是要编译过程,在编程过程是没有办法直接修改BUG,所以要懂得调试BUG。

▪ 第五,简单算法,新手开发项目中很少涉及大量算法,一般都是简答的算法。

▪ 第六,项目实战。项目实战是考察你是否真的掌握C语言的基本开发技能。所以至少可以自己独立完成简单的项目,比如,简单计算机,贪吃蛇游戏。

l C语言可选择的就业方向

▪ 1. 嵌入式开发

上面几种岗位选择都是偏软件方向想的,而C/C++还有一类非常大的就业方向,就是去做嵌入式。嵌入式本身可能是偏硬件一点,但是现在做个什么事,都是软硬不分家的。

嵌入式的开发同样也会涉及到网络编程、并发编程等方面。通俗点解释可能就是,嵌入式代码是运行在别的小系统上,而不是传统意义的计算机上。这个方向除了需要编程能力,还需要基本的电路理论素养。

一般招聘嵌入式开发岗的公司大多是以硬件产品为主的互联网+公司,比如小米、华为等。进去公司很多都是在做物联网相关的工作,毕竟这是热点。当然也会有其它的业务方向,例如芯片、机器人等。

▪ 2. 人工智能

人工智能、机器学习等方向也少不了C语言的身影。

▪ 3. 后端开发

主流的后端开发语言就那么几种,以C/C++、Java领衔,Python等紧跟其后。

▪ 4. 游戏开发

掌握了C基本语法之后,开发游戏也依然是一个不错的选择,目前工业级别的3D游戏引擎仍然是用C或C++编写的。

虽然以个人能力无法去完成一个庞大的网络游戏,但是从简单开始,编写一些小游戏,然后逐渐深入,循序渐进并最终加入大型游戏开发团队还是非常好的一个选择。与之相应的就业岗位主要有游戏开发工程师、游戏引擎架构工程师等。

▪ 5. 客户端开发

毕竟C/C++语言已经是一个很成熟的语言了,所以除了后端开发其实它还有很多其它的开发岗位可以选择。自然而然的,就是客户端开发了。

相信大多数学C语言的同学都用过C语言写桌面软件吧。所以如果不想做后端,完全可以靠C语言找一份客户端开发的工作。做客户端同样也需要扎实的编程基础和计算机理论基础,同时可能还要熟悉Windows/C++编译链接机制、QT客户端开发技术体系、Windows消息机制等技术。

所以,假如你学的是C,同时也不在乎业内莫名其名的岗位歧视链的话,找一个客户端开发的工作也是非常不错的。只不过相较于后端开发,你可能需要重新审视客户端这个角色。

▪ 6. 多媒体开发

目前多媒体技术同样渗入到人们的日常生活中,音视频已经成为人们获取信息的一个非常重要的手段。音视频在传输过程中都是经过压缩并且按照一定规则打包过的。视频的编码技术从最开始的H.261到如今的H.265,经历了30多年的发展,而且实现代码全部是由C或C++实现。

▪ 7. 实验室开发

不敢说C是世界上最好的语言,但C基本是工科生中的大语言。暂且不说计算机专业,很多工科专业,比如电信、电气、通信等专业,基本上正常的学习中都会使用到C。

C既拥有比较优秀的运行速度,又有良好的大型项目开发能力,那简直可以霸占高校实验室了。

l C语言学习方法与建议

▪ 1、C语言有着复杂的基础语法:变量、字符串、条件、循环、数组、函数、结构体等,以及指针、内存管理等C语言中至关重要的两大标准。所以,系统地学习很重要。因此,学习C语言推荐大家可以从我的往期内容系统地了解C语言的基础语法和简单应用。

▪ 2、自学C语言就是一个坚持看、敲、写的过程。习题实战+答疑复盘,可以增加编程信心,防止心态崩溃。能够动手实操,才能快速提升编程水平。

▪ 3、一本好书一个好的学习网站能够让你建立基本的知识体系,而一个好的学习导师与团队则是一次让你快速成长的机会。

l 可以自学吗

如果你选择自学建议如下:

1、了解如今的市场行情,就是企业需要什么样的人才,这点很重要。

2、有一套系统的学习方案,学习不是瞎学的,是有节奏感的,每天看多少视频,不是说看完了就完了,在很多人的实践中,看完视频一点用没有用。一天用多少时间学习,自己规划好,每天做什么案例都是非常重要的。

3、合理的学习路线,不懂的可以随时来问我。

4、有人指点,很多问题是我们自己不可能解决的,除非那个是天才,可能一个小问题,我们一天都想不明白,但是别人的一句话可能就懂了,这个就是经验。所以的话,有个人带的话是最好的。

附学习路线图,可以参考。

 

更多推荐

零基础如何学习c语言