• 零基础如何学习c语言


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

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

     

  • 相关阅读:
    使用onnxruntime-gpu 模型推理
    德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第四周) - 语言建模
    Flutter快学快用22 自渲染模式:从 Flutter 的渲染原理,进一步掌握性能优化策略
    【生物素叠氮化物|cas:908007-17-0】价格_厂家
    驱动开发,stm32mp157a开发板的led灯控制实验(优化),使用ioctl函数,让write/read函数的专注读写功能
    用java实现有 4 个非零的均不相等数字,能组成多少个互不相同且无重复数字的三位数
    [并发编程基础]-集合的线程安全
    二战字节跳动成功上岸,准备了小半年,拿27k也算不上很高吧~
    RocketMQ 各部分介绍
    盘点10个程序员可以接私活的平台和一些建议
  • 原文地址:https://blog.csdn.net/m0_64407685/article/details/127590429