• 一个高中生想学 C 的几个问题

    2015/12/12 張起靈 27 评论

我现在在读高二,想在大学学习计算机专业,现在想自学c语言,网上看了c primer plus第五版 看完了第一章,感觉像读小说,也不知道该学习些什么,也不知道怎么学。我想提问几个关于这本书的问题

1.这本书适合我学习吗?ps以前听说过c,但从未学习过
2.学习这本书和学高中的语数外理化生有什么区别吗?
3.如何体现出我懂了这本书?
4.学完这本书我能使我取得如何的进步?
5.现在要花多少时间学c,还是留到高三暑假和大学学习?

3 3 收藏


直接登录
最新评论
  • Rorschach   2015/12/12 精华评论

    看到你的问题我忍不住注册了个账号。

    我是高一的时候上课外班学的Visual Basic 6.0,那时候老师教的是用鼠标画各种乱七八糟的控件,然后研究各种控件的方法、事件之类现在看来都是歪门邪道的东西。但VB比C更适合同学们愉快的混过这门课是老师的原话,因为命令行对新手实在算不上是友好。

    高二开始我自己到新华书店自学C(那时候还舍不得买书),看的是谭浩强的《C语言程序设计》,说实话现在看来那实在不是什么好教材,比起《C Primer Plus》不知道要差多少。但我至少有VB的底子,所以就当是学了个新语法。后来到上大学参加ACM练习,才算真正算学会了C语言,语言而已。

    首先表明我没好好看过《C Primer Plus》因为我已经入过门了,然后再回答你的5个问题:

    1.这本书适合系统的学习C语言,但我感觉不适合自学,尤其是一点编程底子都没有的人。
    2.我不知道你开学前自学过课本没有,老师教的东西比课本上要多很多这点你应该还是知道的吧。.学习这本书是没有人给你讲课的,所以有些非常愚蠢的困惑和不解会困扰你比较长的时间。
    3.等你能熟练到用 《C语言标准》查不会用的函数、按网上的范例照猫画虎、copy别人的代码并正确的粘贴到自己代码的时候。
    4.。。。。。。你对学习C语言抱有怎样的期待?
    5.想学的话就是现在!现在!现在!给你剧透一下:高三暑假除了能学车就只能打台球喝花酒逛夜市同学聚会Dota WoT LoL;大学时间嘛,我大学没怎么学习所以不知道啊……

  • 93吸血鬼 学生 2015/12/13 精华评论

    怎么高中都这么闲了,当年都忙着谈恋爱呢,现在想想还是不后悔!
    发个呆,再矫情一下。

    好了,回来了。以下回答假设你没有任何编程基础并且对计算机技术几乎没有了解的情况来回答
    1,不适合;
    2,没区别,反正都是学(刚入门的时候,都没用);
    3,亲爱的,不可能做到这样子
    4,能让清楚的认识到自己月考了年级第一但是依然很无知(这是进步!没有嘲讽的意思)
    5,其实如果你感兴趣,有时间。马上开始啊!此时此刻,立刻马上!

    如果你想系统的学,那就随便上某个大学的教务处把计算机学院的培养计划下下来照着看就行了,如果想快速一点,图书馆《C语言入门》之类的书应该很多。你将有很长一段时间停留在编程基础的阶段,而不是真正接触C语言,然后你会有更长的一段时间面对无聊的黑窗口,纠结于更多的琐碎的事情,感到自己极度的无知,迷茫而不知所措,然后摸爬滚打,看各种天书,突然有一天一觉醒来,任督二脉都通了,你看到了,新世界的大门,虽然很远,但是你看到了前方的目标,接下来一鼓作气往前就对了。

    先看看《编码,隐匿在计算机软硬件背后的语言》这本书,当作小说看看,讲计算机组成原理的,对你看后面其他的书有帮助。

  • 蒋生武 Coder 2015/12/13 精华评论

    上面两位已经说得很清楚了,如果没有计算机理论基础知识,就算你把C语言语法倒背如流,也不过是皮毛,就像你连函数都没学就去背下了微积分的中值定理一样。

    编程语言和自然语言不同,前者最重要的是让计算机读懂,后者是让人能读懂。如果把代码也看成文章,你必须充分了解自己文字的受众(计算机),才能称得上会写代码。反倒是用什么样的编程语言,不那么关键了,你看各国都有文学大师,对吧。

    如果真的对编程有兴趣,建议如下:
    1. 弄一本C语言入门的,跟着例子学,可能很长一段时间你都在摸黑,熬过去就好了
    2. 同时学习计算机组成原理和数据结构,未来还会有操作系统和网络等等
    3. 根据自己平时的需求写点小代码,比如我最早时候写过随机晚饭吃什么的程序

  • Kunx 学生,伪嵌入式工程师 2015/12/13 精华评论

    我也来答一个;
    1.我觉得书随意,如果你手头上有C primer plus,那就它好了,重点是结合Google来读,关于书 http://blog.jobbole.com/53108/ (我翻了一下C primer plus 5第一章都在说各种历史,第二章才开始Hello,World!,所以感觉读小说挺正常)

    2.如果说没区别就是都是书,一种知识,学得好不好看个人.有区别的说就是你已经开始进阶了,开始有编程的思维了

    3.简单地说,大家都能用(首项+末项)*项数/2计算1到100的和的同时,你能用
    for(int i = 1;i <= 100;i++)
    循环也能得到答案,再进阶一点你能做对了下面这道题(Pointer and Arrays的理解程度):
    int a[10]; 问下面哪些不可以表示 a[1] 的地址?
    A. a+sizeof(int) B. &a[0]+1 C. (int*)&a+1 D. (int*)((char*)&a+sizeof(int))]

    4.听说解数学题会快点

    5.花你的Spare Time学习就可以了,重点还是放在主课程上,祝你考个好大学.

  • 住在可乐瓶里   2015/12/13 精华评论

    简单说下自己的背景吧~小学四年级学了一年basic语言,高中在物理老师兼班主任的指导下开始用C语言作图模拟经典物理公式,类似平抛运动,电子在磁场中的运动轨迹。大学研究生都不是CS专业的,但现在以coding糊口。

    说下我的建议吧!从你的描述来看,你并不是真正喜欢计算机才选这个作为专业的,但对于淹没在题海中的高中生要求知道自己喜欢的专业有些困难。但从我自己的经历看来,不建议你现在就学习一门特定的计算机语言。任何计算机语言都只是人指挥计算机工作的手段,同样的任务,任何一门计算机语言都能通过不同的方式实现。但真正核心的东西是算法,计算机原理。前者是达成任务的方法,后者是让方法更有效率的执行。

    如果你真想在计算机专业上有所作为,建议你把数学基础打扎实了,课外看一些算法和计算机原理之类的书打基础,做到像计算机一样去思考。至于计算机语言的学习,等你真正上大学后再学习都是来得及的。

  • 千年狼   2015/12/13

    混账
    现在没事学这个干嘛?把功课做好,能上985211这都不是事儿
    要是能出国留学那最好了
    你现在顶多就是把语法背熟了,没有项目经验这些鸟用都没有

  • 芜菁   2015/12/13 精华评论

    高一没计算机教育课么?记得会教一门语言吧,以前教的就是C,现在改教Java了?
    话说这类书的正确打开方式不都是直接跳过前面的废话么……
    题主?比较乖 :比较。。。
    呃……看完第一章就开始困惑……也太…着急了吧…
    有些问题不应该是看完整本书,甚至是接受完4年或更长时间计算机相关的高等教育之后才会问的么(大雾)

    1.学C的话,感觉这本挺基础的了……吧,印象中……
    (不像Thinking in系列,更多的强调细节不够系统

    另:虽然都说C是基础,但是还是建议上来直接来个OO的:
    一来其实现在C跟“C++和Java”这些比用的地方还是少(单片机?还有啥地方必须用C?);
    二来如果习惯了C那种面向过程的思维方法,再转成OOP比较麻烦,不如倒着来
    个人建议直接上C++(其实Java语法更优美,异常消息更友好;不过要是第一个学了这个,不排除落下“以后看别的语言就恶心”的毛病- -!)

    2.最开始学语言,更像学文科吧(当成英语语法一样学就行了,最多当作学高中化学,记住规则就好。算法、原理、模式什么的那是之后的事:是用来在你觉得已经玩的挺6的时候,逼你放弃用的,现在不用太在意那些~)- -!

    3.参加计算机二级考试,用一少于一半的时间交卷……并且肯定自己全对。然后认真思考一下为什么有人竟然会对着这么简单的考题抓耳挠腮,他们为什么还非要自己找罪受。用掉一个晚上,以仍找不出答案这个结果,来换取一点优越感- -!

    4.你学会了一门语言最基础的东西,有选择走上不归路的最最基本的前提了(和你之前完全没有任何编程基础的时候比);
    当然也有可能会让你认清计算机这破玩意没大意思:大部分人只能在别人定好的规矩、框架下耍巴。然后把精力放在别的事上,最终成就一番大业(拯救地球什么的?)- -!

    5.随便,有功夫、有兴趣就翻巴翻巴呗(上世纪8、90年代,在那个全民婴幼儿智力平均水平还没有现在高,平常人能接触的最高级的民用电子设备即不是Pad也不是手机,而是电子表和体育老师的电子码表;更没有胎教早教之类乱七八糟玩意的年代。就有不少人小学就能用QB、C之类的语言做做应用题做个电子表,用LOGO语言画个眼镜以及“这样那样的你懂的东西“什么的了——比如楼下貌似就有几位~),能考上普高的这么点东西还不至于对您造成什么负担吧……

    同样,学了也不会带来什么好处,反正您大学如果选了理工科相关专业(甚至有些文科专业)还得从头学一遍- -!

    以上

  • Arkdf   2015/12/14

    看到这个问题,瞬间注册个号。什么都别说了,为什么要走上计算机专业这条不归路

  • 程序员吴小花   2015/12/14

    。。好好学习吧 上了大学再说 考个好学校 比什么都强

  • _ViVincent_ IOS developer 2015/12/14

    不知道你学C语言是要做啥,做工程类项目还是做基础科学工具呢?
    就做软件工程角度而言哦。
    理论上来说,学习软件开发是靠参与一个具体项目的, 过程中多google的,慢慢积累成长。
    高中生很难有项目机会。
    学习一个语言并不能带来什么实质性的帮助,最后你就不知道自己在做什么了。(而且你学C语言,,要参加ACM吗。。。?目的是啥?)
    语言是工具,用来解决问题的。所以先找到自己的目标比较好。
    要成长一个好的Engineer,你需要开阔的眼界、学习力、充足的时间以及资源。
    换个建议也是好好读书,争取考到好的985/211大学里,和志同道合的同学一起做项目,创业也好、做开源也好、参加比赛也好。
    这年代单凭一己之力,多半是难以成就什么大事的。
    你要是因为兴趣所以浪费复习高考的时间去搞这个,,,,就会觉得你主次不分了。

  • 1.这本书适合我学习吗?ps以前听说过c,但从未学习过

    还没学习过C….,先学OOP相关的,C++\JAVA\C# 都好,
    工作好几年了,只有要搞单芯片固件还是啥系统底层构件才会去用到C,碰到ARM 这种的,能用C++就用,能上STL 就搞。当然未来你要走学术研究可以好好深究

    2.学习这本书和学高中的语数外理化生有什么区别吗?

    没,只是你考试不会考

    3.如何体现出我懂了这本书?

    能够看出自己哪里写错了

    4.学完这本书我能使我取得如何的进步?

    从不知道C怎样写,到知道怎样写

    5.现在要花多少时间学c,还是留到高三暑假和大学学习?

    考完高考你是不会想要碰书的…..,现在你课业可以随便就上好大学吗?不能的话,快!去!温!书!

  • 黯然_ 无业游民 2015/12/14

    c primer plus 不是入门书籍,想看他入门太难了。建议还本别的入门书籍吧,或者从python开始学。python入门还是比较简单的。而且对以后也有好处。

  • alexhilton 程序猿 2015/12/14
  • 我呀 看书吃饭等下班 2015/12/15

    1 学好数学 你要有良好的逻辑判断和分析问题的能力。
    2 学好英语 各种书籍资料都是英文的,另外英语语法很重要。
    3 学好语文 你最终还是要写文档的,你最终还是要发Email进行沟通的。
    语言只是工具,重要的是思想。

  • fd5788 程序猿 2015/12/22

    1、建议看《C程序设计语言》(http://book.douban.com/subject/1139336/),这本200页左右的书,能让你很快过一遍而不必陷入过多细节;
    2、其实编程要比数理化更简单;
    3、对于一门语言的掌握程度,可以做做书上的练习题即可。但要想编程能力强的话,还是要学习数据结构与算法;
    4、只能说是系统的学习了C语言,由于C语言是比较难学的语言之一,建议后续看看深入C和C++系列的书,如C专家编程、C陷阱与缺陷等;
    5、编程不是一朝一夕的事,从现在开始,每天抽点时间学一点,然后实践刚学到的,看完一章不妨回顾一下。
    最后,编程语言只是一个工具,不让从比较容易学的语言,如Python,Go开始。
    希望能帮到你。

  • 萌狮 Python 2015/12/23

    我只想说,你们都是大神,高中还有空干别的!

  • esc   2015/12/23

    楼上都好牛掰,本来都不好意思回答,但还是想以表膜拜

  • "null" 学数学的 2015/12/27

    发现一只想学 C 的高中生!
    有点激动…
    1、个人感觉这是一本讲的很细致、很系统的书,书是好书,但是如果你之前没有接触过编程的话不是很推荐这本书。对于自学来说,能看到自己阶段性的进展是很重要的,不然容易学着学着学不下去……当然如果你是那种非常有耐心的人,即使不知道自己学到的东西能做什么但是依然可以坚持学下来,那这本书应该说是很不错的选择~
    2、有啊……你三年的数学课本加起来才多厚……
    3、4、我认识的很多人都会 C,其中不少水平还不错(至少在我看来),有跟我一起做竞赛的,有计算机系或者数学系的教授,但是他们之中买了这本书的人大部分都是放家里供着,偶尔翻翻啥的……你要学的是 C 语言,而不是这本书,任何一本书都只是工具,而不是目标。
    5、这要看你有多少空闲时间以及对学编程有多大的兴趣。我的 C/C++ 就是高中学的。

    至于怎么学,学什么,我高一开始自学 C,某个周末去书店买小说的时候随手拿了一本教材回去(从此走上不归路)= =照着书上的代码敲,然后自己改一改,大概用了一个半学期把基本语法摸清楚了。建议你在学 C 的同时了解一些计算机的基本原理,对于学习 C 会有很大帮助,还有就是一定要写写写代码,光看光想是没有意义的……另外数据结构和算法也可以说是必学的内容,不懂算法的话学了 C 也没多大意义,而算法的实现多数都需要用到各种数据结构。这部分内容可以通过做一些算法题来练习,有兴趣的话可以去参加个 NOIP 什么的。至于算法和数据结构,如果想深入学习,可以看看离散数学和高等数学的书。

    最后,如果你想在大学学计算机的话……学好在校课程,高考并不考虑你会不会 C。(哦对,如果 NOIP 或者 NOI 拿了奖没准可以去试试保送或者自主招生)

    祝顺利~

  •   2016/01/17

    谭浩强的书,c程序设计
    我是算是有些自学的成分,看的这本书,我觉得对于初学者来讲,它是一个带你先进去c语言的一个门,它里面讲解的东西比较简单易懂,好理解,但不适合你依靠它来去正式编写c语言,因为它讲解的不够细致,指针那一块也比较粗糙,但既然是初学,又想自学,我建议你先看一看这本书,对c语言有一个了解,再看比较专业的c语言书籍,会更容易上手。

  • ./zhinengge 卖瓜 2016/01/17

    我就是因为高二自学Python而不好好读书,所以就走上了一条不归路

  • 龙雀 野生程序员 2016/01/24

    1. 不适合,准确的说是c语言不适合,请从python或者java入手。

    2. 没区别,都是基础知识。可能编程相当于初中的数理化?

    3. 会使用变量就说明入门了编程。–《absolute c++》

    4. 看你打算干什么了。你要是打oi,路还很长;要是当个兴趣,那还行。

    5. 我们交大的课是六个星期,每个星期三小时(剩下都是opengl)。我觉得c那点语言特性也就几个周末完事。