Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【编程指导】如何学习C语言,致初学者朋友

【编程指导】如何学习C语言,致初学者朋友

作者头像
程序员互动联盟
发布于 2018-03-13 07:31:42
发布于 2018-03-13 07:31:42
1.1K0
举报

最近会有一些低年级的同学问,C语言不会写代码怎么办?大致上都是一些类似的问题吧,回想一下自己走过的路,反复的思考然后写了这篇博客,希望可以对一些迷惘的同学一丝帮助,那我将是莫大的欣喜与荣幸了。

回想一下,我去年的时候也和你是一样的状态吧,也有类似的疑惑,一年时间的成长,现在身在大二的我虽然谈不上很厉害吧,但是也算是走过了最初的那段迷惘吧,就分享一下自己的感受与经历吧,希望对以有帮助。

一:现在大一上学期应该只学一门专业课,除了数学与英语课之外,还是有很多的业余时间的,抽出一小部分去了解一些计算机的文化吧。举个例子吧,比如计算”机科学之父”,艾伦.图灵的生平啊什么的,了解一下他是如何以一个数学家的身份去首次提出图灵思想的,再比如他是如何创造性的提出“机器可以思考吗”这样子的论文而开创了AI的先河的。

这是说了一个人物的了解吧,再比如你可以去了解一下计算机的发展历史啊,比如第一台计算机是在1946年诞生于美国的宾夕法尼亚大学的;再或是去了解一下你们的C语言的发展史,等等等等,这些东西没有必要刻意的去看,兴趣来了偶尔去百度一下子,会开阔一下见识与思维的,而且还可以增加自己对相关领域的兴趣程度。

这些知识如果要系统的细看的话,可以去看<计算机导论>,或是<计算机科学概论>这两本书讲的是比较系统的,都是简单的提一下计算机科学体系吧,没有深入的讲解部分。

二:计算机科学知识的学习是最注重循序渐进的,注重基础的,万万不可跳跃性的学习,当然你是天才或是个别的话我只能膜拜了,至少我是一步一个脚印学过来的。我们不讨论哪一门语言才适合做大学计算机相关专业的第一门编程课的问题,我们是C语言,也听说很多学校都是以C语言为第一门编程语言对待的,我想大部分都是吧。那我们就把C语言尽自己的最大努力学好吧,有一些学弟学妹会问一些问题,自己不会敲代码怎么办?还有人会说能看懂别人写的代码,但是自己就是敲不出来。

这些问题我曾经也遇到过吧,首先要明确一个观念:C语言不难学,一点都不难学。这门课程不需要那么多的动脑筋的地方,就我感觉还没有数学难呢,当然这仅仅是一孔之见吧。入门一个语言最重要的是要选择一本好书,一本能够以最简单的描述来表达出基本知识的书,我想很多国内的首学C的人会选择谭老的C吧,我当时也不例外,因为毕竟是国人写的书,在问题描述与问题展开与循序讲解的过程中透漏的思考问题的方式都是符合国人思考方式的,所以易于理解吧,当然如果喜欢读外国的名著当然也是可以的,比如C之父的<C Programing Language>,这当然是传世经典之作了。

还要明确一个观念是:谭老的书仅仅是作为一个最基本语法的讲解书,看完谭老的书后确实会把很多语法细节学到,但是这也仅仅是语法,只能保证你会用这些语法了,你是知其然而不知其所以然。看完谭老的书后最好把<C Programing Language>这本书看看,而且更要仔细的看,这个时候有了基础后看起来会轻松一些的,会发现有很多原理性的讲解了,而且会有一些谭老书中讲不到的细节。看完了<C Programing Language>后会有一种小小的豁然开朗吧。

以上说的看书,过程应该是这样子的:看基本语法,看书上的例题,试着自己去敲一遍例题,即使你看懂了例题,但是让你合上书自己敲,我保证还是会出错的,肯定是某些地方理解的不够透彻,再看书,然后再敲,直到无误的敲出为止。慢慢的经过一段时间的坚持练习,会发现自己合上书后敲的时候错误越来越少了。然后是做课后的习题,最开始看懂例题去敲书后习题也是很难下手的,但是要尝试,第二次写习题就不会那么纠结了。编程容不得一点的掺假,必须要动手去敲代码,而且还要准确无误的敲出来。不可手写而不去上机验证。

还有就是培养一个习惯:先思考清楚问题,然后再去敲代码。因为我们敲代码仅仅是为了用程序设计语言把我们人的思维转换成了计算机可理解的方式了而已。有的同学会看完题目不思考就直接敲,发现总是会出一些错误,然后在那苦逼的各种改啊调试啊等等,这样子不是一个好的编程习惯。

三:认真的看书,做练习题,敲代码。这样子下来一个学期完全可以把C语言学好的,一般性的题目是没问题的。学习了程序设计语言后会发现我们的思维在慢慢的转变,我们思考问题的方式也在更加的严谨了,这是学习编程的结果。

如果有兴趣的话可以考虑进阶了,去学习<C与指针>,<C专家编程>吧,这两本书会介绍很多在课程老师讲不到的,在一般性的书上看不到的。更多的是站在编译器的角度去看待代码,看待基本的语法了。比如编译器如何编译语言并生成可执行二进制文件的?这个编译的过程是怎样的?编译器又是如何奖产生的.exe文件交给CPU执行的?一个基本语法的规则背后肯定是和编译器的某一项工作原理是契合的,举个例子吧:大家都知道的函数中的普通变量是在函数的调用结束后悔自动销毁的,而我们在函数中定义的静态变量,也就是用static修饰的类型变量,他的内存空间在函数调用结束后是不会销毁的,这是为什么呢?这是因为编译器为我们的程序分配的内存进行了一个分类,把不同类型的变量分门别类的存储,这样子便于管理。至于变量内存空间销毁与否的区别就不在这细说了。当然两本进阶的书我是当时没有看,也是后面的学习中翻了翻的。

四:最后不得不说的是,还要把数学学好,这个好并不是要投入很多的精力在上面,但最起码你要能独立写得出习题,考试不要分太低吧。计算机科学还是很依赖数学的,毕竟图灵与冯诺依曼两位大师都是数学家出身呢。数学更多的是培养一个思考问题的方式吧,通过做一些习题是很锻炼自己对问题的认识与整体把握的。

本文来自CSDN博客,作者:疯狂的红豆

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
世界上最难学的编程语言,C语言只排第三,第一你绝对想不到!
本次参与最难学编程语言排名的选手我从以上榜单中筛选了10位大家比较熟知的,他们分别是:Java、C、Python、C++、.NET、JavaScript、PHP、Objective-C、Go、R。
小林C语言
2019/06/19
10K1
世界上最难学的编程语言,C语言只排第三,第一你绝对想不到!
11年C/C+开发经验的大神给小白学习C语言的一些建议,自学不再迷茫!
我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个: 虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。 大量的封装好的类库也屏蔽了很多实现细节。 分享之前我还是要推荐下我自己的C/C++学习交流群:三四零六五一六八七,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的C/C++资料和
企鹅号小编
2018/02/01
1.1K0
11年C/C+开发经验的大神给小白学习C语言的一些建议,自学不再迷茫!
这是一篇非常具有操作性的程序员初学者攻略。
1 前言 如今编程成为了一个越来越重要的「技能」: 作为设计师,懂一些编程可能会帮你更好地理解自己的工作内容; 作为创业者,技术创始人的身份则会让你的很多工作显得更容易。 而作为刚入门的新手,面对眼前
老九君
2018/03/06
7910
这是一篇非常具有操作性的程序员初学者攻略。
如何用三个月搞定C语言
C语言上个世纪七十年代诞生至今,已经度过了40多个春秋,在此期间经历多次的版本的更迭,目前市面上绝大部分语言的底层实现都是基于C语言,随着C语言之父的逝去,C语言的生命力还是依旧那么强势,绝大部分程序爱好者还是选择C语言作为入门语言。 C语言作为入门语言的几个优点 (1) C语言历史最为悠久,目前市面上几乎所有的编程语言的底层都用C作为基础,所以从C开始对于后期软件框架的理解,还是存在极大的好处。 (2).C语言是除了汇编语言之外最靠低底层的语言在执行效率上有着无可比拟的优势,特别是服务端或者大型程序的执行
程序员互动联盟
2018/03/14
9580
如何用三个月搞定C语言
学会了C语言/C++能做什么?我们一起来看看吧!
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等!
诸葛青云
2019/05/04
1.1K0
学会了C语言/C++能做什么?我们一起来看看吧!
初学者,应该如何学好 C/C++语言?
学习C/C++语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。以前也分享过一些学习路线:
C语言与CPP编程
2023/09/09
4000
初学者,应该如何学好 C/C++语言?
C加加零基础初学者该如何学习C加加以及编程
都说Java是世界上最受误解的语言,其实C++何尝不是。现在网上流传的错误的C++学习方法一抓就是一大把。很多人在学习C++的过程中也走了许多弯路,浪费了不少时间。我自己也是。走了不少弯路。所以在码农的世界中,java逐渐有了统一江湖的味道。昔日的霸主C++虽面临失宠,却一直坚守着自己的传统领域。若干年前,初学编程的人还会纠结于偏向java还是偏向C++。随着java技术的快速发展和web应用的兴起,这个问题已经很长时间没有人提起了。想学习c++,加C语言、C++学习交流Q裙三 四 三 八 九 一 三 六
企鹅号小编
2018/02/11
1.1K0
C加加零基础初学者该如何学习C加加以及编程
机器学习/深度学习书单推荐及学习方法
本人是个对数学和人工智能极其感兴趣的人。平时,我也在线上线下经常与国内外的朋友讨论人工智能的各种方面,无论是技术方面还是哲学方面。我帮助过很多实习生和网上的学生,带领他们从入门一步步过渡到足够从事数据挖掘工作。在此期间,我发现了一件很有趣的事情,所有技术好的数据分析/挖掘工作者,都是喜欢"主动学习"的人。
用户1737318
2019/12/05
9490
编程小白喜欢走的几条弯路
经常有小伙伴通过小编微信号问一些编程的常识,语言基础或者是职业方向之类的问题,小编归纳了以下四点供大家参考 第一:盯住一个问题牢牢不放,不搞定这个问题,绝不向下走。 一股子不到长城非好汉的决心,有这么强大的毅力学习是对的,这也是大多初学者容易走的弯路,学习之初先了解大致的概念,上来就寻根究底,会让自己变得疲惫不堪,因为初学小白开始很难具备强大的基础,很难把每个知识点都吃的相当透彻,所以开始学习的时候,先了解基本的方向和思路,掌握一些概念或者工具如何使用,很多c语言初学者抓住printf函数的内部实现孜孜不倦
程序员互动联盟
2018/03/16
6480
初学者究竟该如何学习编程呢?
一个厉害的将军必定是经历过地狱般的磨炼,绝对不是天生的!一个天才一定是经过无数次失败,走上来的,那才叫天才。天才不努力,还不是蠢材。蠢材去努力照样是天才!不怕失败才能成功,多少人在经历几次失败后就觉得不合适,从来不找自己身上的问题!结果就是放弃。
小林C语言
2019/08/09
4800
初学者究竟该如何学习编程呢?
各路大牛的C语言编程建议和技巧,看完感触颇深
我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以来这些基于许多经验的观点一直积累在我的头脑中。因此希望这些观点能帮助你们,了解如何规划一个程序的细节。(我还没有看到过一篇讲关于如何规划整个事情的好文章,不过这部分可以是课程的一部分)要是能发现它们的特质,那很好;要是不认同的话,那也很好。但如果能启发你们思考为什么不认同,那样就更好了。在任何情况下,都不应该照搬我所说的方式进行编程;要用你认为最好的编程方式来尝试完成程序。请一以贯之而且毫不留情的这么做。
C语言中文社区
2022/05/30
8660
各路大牛的C语言编程建议和技巧,看完感触颇深
【专业技术】 Linux下如何学习c语言?
引言   尽管 C 语言问世已近 30 年,但它的魅力仍未减退。C 语言继续吸引着众多的开发者,他们为了编写、移植或维护应用程序而必须学习新技能。   本文是为了满足对C语言初学者或想提高自身C语言修为的开发人员的需要而写的。希望对您的学习和工作有所帮助。您也许不赞同其中的某些方法,但我们希望您会喜欢其中的一些。   本文不介绍作为一个程序员应掌握得语言细节,而是与初学者分享自己的UNIX 下C语言编程学习经验;也不说明一个合格的编程人员应该掌握的计算机知识,比如:操作系统、数据结构与算法、数据库等等。  
程序员互动联盟
2018/03/14
1.7K0
C语言很难吗?学习C语言基本思路与参考书籍
计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求。如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC6.0来教大家上机实验,那你不妨看看本文,这里有一些建议可以帮助你不会脱离社会太远。
诸葛青云
2019/06/21
4K1
C语言很难吗?学习C语言基本思路与参考书籍
为什么这么多人对谭浩强的C语言教材吐槽
现在大学教材,几乎说到C语言都会提到谭浩强的C语言程序设计,一提到此书真知道的或者道听途说的都会对老谭嗤之以鼻。小编也是从老谭的教材开始入门的,相比现在的很多学弟学妹也是用着他的教材,小编就根据亲身的经历说下被吐槽的三个原因: 1.教材更新速度太慢,导致和当前的C99版本标准不一致。 很多人吐槽说,谭浩强的文章里面的代码放在机器上运行,根本不能运行通过,这种很多是老标准和新的标准冲突所致。主要是原因还是整体版本更新速度偏慢,计算机时代数据,概念更新速度比以往任何时候都快,还抱着老学究的姿态,注定会有脱节
程序员互动联盟
2018/03/14
1.9K0
为什么这么多人对谭浩强的C语言教材吐槽
初学者 自学C语言指南,上机敲代码技巧!!
想自学编程的同学,一开始学习C语言觉得很迷茫,不知道从哪里入手,没有一个系统的知识框架,即容易迷失方向,也容易放弃。
小林C语言
2020/03/20
1K0
给R语言初学者的几个建议~
最近有很多人在问我关于R语言学习入门的问题。 有在公众号文章留言的,有后台回复的,有加qq或者微信直接交流的、有知乎私信或者文章留言的,还有微信群里直接@我的。 说实话,这个话题,如果由一个在数据科学领域叱咤多年、项目经验丰富,代码写的很溜的老司机来回答,结果会更有信服力。 而我并不适合来回答这个问题,理由如下: 首先我的学习周期很短,正式开始于2016年的9月份,算起来仅有10个月左右,有点速成的意味; 其次我在学习R语言之前并没有任何的编程基础(如果不算大学修过的SQL和自己只会一点儿皮毛的VBA的话)
数据小磨坊
2018/04/11
9100
初学C语言,你的“行囊”需要准备什么呢?
今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的;是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作。建议大家在心里默念三遍他们的名字,以示仰慕。当然,如果让你们带着现在的知识回到他们的那个时代,那么就没有什么图灵奖了。
C语言与CPP编程
2021/03/25
5810
C++条件分支结构
实数的余数——两个参数分别是被除数和除数double fmod(double, double)
风骨散人Chiam
2020/10/28
6250
老司机学习C语言的一些心的经验!
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。简单的说C语言是所有想从事it这行必须掌握的语言,就像你不会英文去国外很难交流一个道理。 包括我们现在用的很多计算机操作系统以及大型的一些软件都是源于C语言的基础编程。C语言还具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言,C语言对于想学好计算机的人来说无疑是非常重要,也是你后期成长的根基。
诸葛青云
2018/09/14
6320
老司机学习C语言的一些心的经验!
48岁的C语言,你知道它背后的历史吗?
C语言作为一个人尽皆知的语言,甚至没有学过编程语言的人也知道它的大名。经历沧桑岁月的它,已经陪伴我们走过了48个年头。回望当年,C语言还在襁褓之中……
GorgonMeducer 傻孩子
2020/09/21
6340
相关推荐
世界上最难学的编程语言,C语言只排第三,第一你绝对想不到!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档