D.C.資訊交流網-[綜合論壇]-關閉註冊's Archiver

marco101010 發表於 2007-12-11 21:40

如何入门C语言?

我对编程一窍不通,但我对编程很有兴趣,就决定选择从C语言开始!!但不知道如何入门,就想问问大家意见,到外面学是没有时间,就想在家中自学,请问应该如何入门,或者有什么书比较好呢?希望大家能给我些好意见,谢谢

tony108 發表於 2007-12-17 16:08

本人也想知道,望高人指点!

strinp 發表於 2008-1-5 22:04

很多人一致認為,C語言並不適合作為入門級的程式語言,
因為在高階語言裡,C語言難度稍高(特別是它的指標概念),
對於從來沒有學過編程的人,可先從較簡單的高階語言
開始接觸,比如Pascal 或Basic
學了差不多了,再來開始接觸C或C++就很輕鬆了!

xiaoyaol_99 發表於 2008-1-10 21:50

<C Primer.Plus>还不错,很经典。就是不晓得初学的看不看得懂!

z054602 發表於 2008-1-11 00:37

This is easy,
please take a nice book and practice practice....
Because you just touch program, so reading other's programming skill is very useful to you.
That's my own suggestion.

hakeem1986 發表於 2008-2-6 08:29

先学一下Basic再进阶吧

md123 發表於 2008-2-22 14:40

多看源代码!多学,多用心

linshenghai 發表於 2008-3-6 16:55

just code on the pc, and you will learn a lot because there will be many problem that you can understand.

wodedipan1 發表於 2008-3-11 11:46

[quote]原帖由 [i]xiaoyaol_99[/i] 於 2008-1-10 21:50 發表 [url=http://www.mycould.com/discuz/redirect.php?goto=findpost&pid=6703072&ptid=693887][img]http://www.mycould.com/discuz/images/common/back.gif[/img][/url]
还不错,很经典。就是不晓得初学的看不看得懂! [/quote]
....要能看懂这个 就不用学C++了

初学 C 哪能看这书啊

linshenghai 發表於 2008-3-11 18:54

潭浩强,你知道这个人的书,并看透,就入门了。

Atom 發表於 2008-3-12 17:17

我认为你还是从java开始。。因为java相对比较简单。。

hchack 發表於 2008-3-13 16:46

多寫程序,多看別人寫的程序

威震天 發表於 2008-3-13 18:16

刚开始学应该不要触及图形界面(GUI),着重学习'语言'而不是某种开发工具。

521mm 發表於 2008-3-21 07:45

看自考书 o(∩_∩)o...

joelgm 發表於 2008-6-9 22:57

强烈推荐《C语言程序设计--现代规范》,K.N.King著,吕秀锋译,本书是国外大学的C语言教材,书如其名,很多东西都和现代的编程结合起来,特别是*NIX下的编程

mightya 發表於 2008-6-10 01:48

1.先把打字速度练上去。

2.c语言,c,vb,c++,等等,都一样的,就几条语法规则而已,没什么好怕怕的。不过,基本上会c++的人(从C过来的),java,vb都用得很好,java的库很强大,技术细节全封装里面了;vb提供界面就比较省心了(不过要搞清vb和 bc差别,你就有必要在未来日子里去学下com)

3。语言本身不难学,第2条说了,它难就难在如何使用它。
   所以找些资料来练吧。让自己的大脑尝试从计算机工作机制来思考。
---------------------
4.好了,要成为一个潜力程序员。你需要了解,
  A。开始学习八大算法
     花个4-5年时间练习,这样,无论代码阅读能力还是自己编程能力,都会有很大的帮助。如果以后继续深入并积累的话,编程跟切白菜的难度系数是等同的。
     那些算法牛人,都他妈的,把自己关在密室里,强化出来的。

     数据结构?学习起来并不会花太多时间,因为你只要懂每个结构特性就可以了。算法学习,要找些算法设计的书专门强化一下,这样短期内也可目中无人了。
    不过,由于库的强大或新的软件开发包的傻瓜性增强,对你的算法能力要求低很多了。但不等于你不去了解这些算法思想。


B 。 C语言你学得再牛比也没用,最后还要与操作系统结合起来,进行应用才行!所以这时候,你应该看<软件工程>方面的书了,这样对你制作中小型软件还是有帮助的(大型软件是不可或缺的)。最低程度要对“面向对象”概念有一定认识。
     同理,如果你去搞嵌入式,写操作系统,也要求相应的基本条件。
     比如你打算开发游戏,那么windows gdi32.dll提供的方法,如果是小游戏也是可以对付过去的;不过,你如果学了ms专门提供的 directx sdk来开发,轻松很多了。在linux下,你可以用opengl来开发。

C.上面仅仅是一般应用程序开发;你可能要进行web程序开发,那么,还得掌握另一套sdk.
   无聊时候,就学学汇编,搞搞破解,写写外挂,提升自己的能力。要做到这一点,等于你在对自己施压,去真正理解《计算机的组成》 。操作系统的分段机制和分页机制到底是怎么一回事,游戏中数据包加密又是怎么一回事。。。够有趣吧。


D。每天都在学习!!事实上,很多人搞计算机,就是这个心态。所以不提了,关键,为自己做个长远计划,每天16小时或更多时间去保证目标的点滴完成度。
================
正要学计算机,最好有晚婚打算,学计算机说到底拼得是体力而不是智力。平时练练气功,打打拳,这样的程序员是比较可怕的。等达到系统分析师能力后,你可以松口气了。

(我记得我初学C++时,每天4小时,坚持了一个月,我以为入门了,事实上,之后仍然用不好;网上那本该死的目录集,把<C++对象模型>一书排得很后面,如果早看,可以省多少力气啊!!!)

mightya 發表於 2008-6-10 02:05

算法的学习,
一个字:背! (不是只有英语才要求背的)
有上面的底,等日后理解算法思想后,你就提高了。
试着写个哈夫曼算法试试,这玩意写多了,以后自己碰到问题,也能很快找到相应解决算法。
(我自己一开始,也是对别人或书上代码一句句死磕;背多了,就能小块小块地看了;最后,理解算法思想后,虽然也是小块小块地看,但阅读速 度是质的飞跃)

进一步--你要学习他人软件架构,这就需要你强化下软件工程方面知识,对设计模式的理解是必须的。多写多看,以后自己会理解的。

mightya 發表於 2008-6-10 02:21

所谓算法思想理解,就是针对一个提出问题,你可以随意用递归,回朔,贪心,动态规划等算法写出来。这个能力是可以用背字诀练出来的。

你要写优化算法,也行啊,学好数学。这不是要求你在大学里把线代,概论,高数考满分,没用的。要学好数学,其实要求你掌握数学分析的能力,找准教材努力学吧。分数是给人看的,能力才是自己的。

--------
要早点收获,就要充分利用时间,多练习。比如平时手指闲着没事,就练练无名指和小姆指的灵活度。因为程序员,首先是一个打字员。

mightya 發表於 2008-6-10 12:08

不要为c而c.
    期间如果能把汇编学上一学,会理解深刻些。
    一般汇编书,你看不懂,这就说明这书写得不好,不是你智商问题。学汇编第一件事,要把分段机制和分页机制搞清楚。这玩意在操作系统教课书里面,你是没法真正理解的。搞清这一点,反过来,就促进了对操作系统的理解了。更重要的是,在程序编写过程中,脑中自然就有印象,自己写得代码经编译后,大概是什么样子,理解它们被映射到内存页中的事实。 (说穿了,也就是基础知识,这意味着你有必要把计算机工课的书系统学习一下)

    当然工课的书大都不是很好,国家教委把学生定位很低,所以教材没有把一些本质些东西讲清楚,结果你是越学越糊涂。

   所以对于这些书,草草学个大概就可以了,因为书写得深度有限,你是没办法真正理解的。所以要找些其他真正的计算机书来看。
   象学汇编,你最好把那本《保护模式下的80386》当参考书,如果书中还看不明白,去看 linux源码吧(说笑~),其实你只要把linux的分段机制搞清楚就很容易了,然后你会发现。。。嘿嘿~

  什么局部变量,全部变量,等等问题,难道不是你头痛的吧,计算机到底是如何去组织管理这些代码的,不正是你要思考的问题吗?不择手段去学习这些基本功吧。

这么做,只是为了原本复杂的事物变得简单,更简单些,简单的,才是最美的。

zdon 發表於 2008-6-10 22:14

坐而言不如起而行,趕快找本書來研究吧,不懂的可以找人問或是問 Google,這樣子比較有幫助哦~
當然也可以看電子書,但是實體的書籍還是好些,
隨時要查都可以,只是不能夠 Ctrl + F 罷了。

頁: [1] 2 3 4 5 6 7 8

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.