不要这样学习C语言,这是个坑!

对于大部分初学者,学习C语言的目的是希望做一名合格的程序员,开发出靠谱的软件来。但是学了C语言的基本语法后,发现只能开发“黑底白字”的DOS程序,完全没有漂亮的界面和生动的交互。于是学数据结构,学算法,越陷越深,越来越难,最后迷失了,不知道学C语言能做什么,认为学习编程很难。

其实,这是很多初学者都会踩到的一个坑!C语言本身是一门很简单的语言,提供的实用功能不多,大部分要借助操作系统和其他库来完成。

第一阶段:学习软件开发基础

1) 首先学习C语言的基础语法,也就是本教程的前十章,这些都是编程的基础。

2) 学习Windows开发,你就能够使用C语言开发出带界面的软件来了,可以有窗口、输入框、菜单等,也可以响应键盘和鼠标事件,可以播放音乐、视频等。

但是,你会发现比较麻烦,要使用很多API,还要手动写资源脚本。

3) 学习Visual C++开发,通过VC或VS来拖拽各种控件、编辑各种参数。

这个时候,你就可以用C语言做出小规模的软件了,了解了软件的底层是怎么回事,也学会了使用VC或VS来编辑界面。

第二阶段:提高软件开发效率

Windows API是软件开发的基础,如果你希望走得更加长远,拿到的工资更高,跟大家拉开差距,那么一定要学。

接下来是提高开发效率,有好几条路可以选择,众多大神争论不一。

第一条路:学习C++,包括C++基础语法、MFC、QT等。MFC和QT都是界面库,对Windows API做了封装,会大大提高开发效率。

第二条路:学习C#。C#语言本身对底层API做了很好的封装,可以使用面向对象的方式来开发软件。

第三条路:学习Delphi。Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。“聪明的程序员用Delphi,真正的程序员用C++,偷懒的程序员用PowerShell”已经成为对 Delphi 的最真实写照。

一款大型软件,例如 QQ、迅雷、360 等,往往是多种技术的集合。

其他开发

C语言主要用于软件开发、底层开发、嵌入式和单片机等对效率要求高的地方,如果你希望学习Web开发或APP开发,那么学完了C语言的基础语法就跳出C语言,去学习PHP、Python、Java、Objective-C、Swift吧,千万不要陷在C语言不能自拔。

这个时候,C语言主要的作用是让你入门,了解编程语言的基本语法,强化编程思维,而不是用它来做实际开发。

关于数据结构和算法

如果你不是专门搞算法,而是做应用开发,那么了解一下就可以了,主要是堆栈、链表、排序、查找等比较基础的,千万不要深入学习,算法是个无底洞,不要陷进去,要尽早跳出来去做应用开发。

实践中你会发现,很多会用到什么数据结构和算法,用到的话也已经被封装好了,调用对应的函数就可以,而且像树、图一类的晦涩难懂的数据结构基本与你无缘。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 08:22:17

不要这样学习C语言,这是个坑!的相关文章

轻松学习C语言编程的秘诀:总结+灵感

目前在准备一套C语言的学习教程,所以我这里就以C语言编程的学习来讲.注意,讲的是"轻松学习",那种不注重方法,拼命玩命的方式也有其效果,但不是我提倡的.我讲究的是在方式方法对头.适合你.减轻你学习负担和心里压力的前提下,才适当的抓紧时间. 因此,探索一种很好的学习方法就是我所研究的主要内容. 众所周知,学习C语言并非易事,要学好它更是难上加难.这和你期末考试背会几个题目的答案考上满分没多大关系,也就是说你考试满分也说明不了你学好.学精通了C语言.那么怎么才算学精通C语言?闭着眼睛对自己

第一节 为什么学习C语言

一  c语言的发展 : 1.1C语言的发展过程 C语言是在 70 年代初问世的.一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言.目的 改写 UNIX操作系统. 后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C 语言标准,于一九八三年发表.通常称之为ANSI C. 1.2C语言的特点 1 C语言简洁.紧凑,使用方便.灵活. 高级语言 : a+b 汇编语言 :ADD AX,BX 机器语言 : 0000 00

C++教程 零基础如何学习C语言!

学习一门技术不是所想的很简单的一回事,学习C语言同样也不是一件简单的事!学好C语言,你想在短时间内学好,肯定是不可能的,但是也不需要你花个十年八年才嫩恶搞精通.今天小编就针对0基础的学员推荐给你们基本书籍以及技巧! 一.要读就读好书,否则不如不读 所有初学者面临的第一个问题便是:如何选择教材.好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素.不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择. 大名鼎鼎的谭浩强教授出了一本<C语言程序设计>,据说发行量

对大一新生开始学习C语言课程谈几点看法

大家好,首先祝贺大家进入了大学,迈入了大学的校门,也意味着开始了新的征程,希望大家能够有一个美好的大学四年. 先做下自我介绍,我叫李帅阳,(大家可以称呼我 李老师,或是班助,或是...)这是在邹欣老师的倡导下来担任你们学习C语言的助教,本学期将会与李光杰老师合作,非常荣幸能与各位一起度过这美好的一学期. 在本学期,我会竭尽全力为大家服务,希望能够帮助大家在C语言上获得更大的收获,并且能够在编程上找到乐趣. 对于C语言,想必各位都没有听过,但这是你们非常重要的课程,对于咱们专业,如果这门课程学得一

在安卓手机上学习C语言 -- 前言

现在有很多学习C语言的系列教程, 不过这些教程都是在电脑上进行练习的, 这系列文章是给那些手上还没有电脑, 但对于编程有很大的兴趣的朋友看的. 这一系列的文章是写给没有编程基础的朋友的, 在这系列文章的前期, 可能会有一些类似于童话的谎言, 因为没有基础的朋友对于一些非常专业的术语可能会非常迷茫,而想要解释清楚这些术语需要非常多的陌生的概念.而这些概念可能比一个术语更加复杂, 所以在前期, 我会对一些非必要的术语进行片面的阐述. 这系列的文章我也是一时想起, 并没有建立好完善的体系 , 不过我会

学习Golang语言(6):类型--切片

学习Golang语言(1): Hello World 学习Golang语言(2): 变量 学习Golang语言(3):类型--布尔型和数值类型 学习Golang语言(4):类型--字符串 学习Golang语言(5):类型--数组 学习Golang语言(6):类型--切片 在很多应用场景中,数组不能够满足我们的需求.在初始定义数组时,我们并不知道数组所需的长度.因此,我们需要一个大小可以动态变化的数组(动态数组) 在Go语言中,这种"动态数组"成为slice(切片). 但是实际上slic

学习go语言编程系列之定义变量

package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 var age int fmt.Println("My age is", age) // 2. 给变量赋值 age = 29 fmt.Println("My age is", age) age = 50 fmt.Println("My age is"

对学习C语言未来的展望

个人认为C语言对我们学习计算机的学生来说很重要,因为这是我们开始接触计算机的开端,我希望通过这学期的学习,我可以为我的C打下一个良好的基础,在以后学习其他语言可以更容易点.牛老师你的课很棒,结合着课堂练习,让我们跟着你打代码真的可以训练我们的速率和掌握知识点,但是速度对于我们来说有点太快了,毕竟我们才刚刚开始接触C,很多同学在上大学之前对C都没有概念,有些内容我们听起来很吃力.小小建议,讲课速度稍微慢点点,较为难的知识点讲的细致,易懂点. 谢谢老师

学习一门语言

最近在公司的一个论文实现要用torch,torch是用lua写的,所以就要学习lua语言.虽然我之前没学过lua,但看着源代码并不是那么费劲,这其实就是因为语言之间还是相通的.回到如何学习一门语言,我在byr论坛上也发帖求教lua语言学习,好几个回答都说去用菜鸟教程快速入门,其他不懂的再google或百度.我觉得这几个回复很正确,我自己也这样觉得,对于现在的我已经有一定其他语言基础,能够通过菜鸟教程很快入门,然后再去在实践中不断学习语言,即遇到问题取搜索答案,这样的方法高效可用. 在我入门深度学

开始学习c语言

学习c语言的第一篇博客,心里的感觉说不出来,不知道能不能坚持下去,我是一名工作了差不多2年的phper,其实我本来是想学习数据结构和算法的,但是尼玛这年头那些书的例子都不是php,动不动就是c,java之类的,根本看不懂,这两年里边好几次碰到这个问题,我都回避了,现在又碰到了,决定开始学习c,其实我自己心里也没底,能不能学坚持的学下去,这几天公司没什么事情,比较清闲,今天就开始学了: 介绍一下我学习的情况,今天是第一天(刚开始): 书籍:C.Primer.Plus(第5版)中文版 (本人英文不太