如何入门C语言?
我对编程一窍不通,但我对编程很有兴趣,就决定选择从C语言开始!!但不知道如何入门,就想问问大家意见,到外面学是没有时间,就想在家中自学,请问应该如何入门,或者有什么书比较好呢?希望大家能给我些好意见,谢谢 本人也想知道,望高人指点! 很多人一致認為,C語言並不適合作為入門級的程式語言,因為在高階語言裡,C語言難度稍高(特別是它的指標概念),
對於從來沒有學過編程的人,可先從較簡單的高階語言
開始接觸,比如Pascal 或Basic
學了差不多了,再來開始接觸C或C++就很輕鬆了! <C Primer.Plus>还不错,很经典。就是不晓得初学的看不看得懂! 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. 先学一下Basic再进阶吧 多看源代码!多学,多用心 just code on the pc, and you will learn a lot because there will be many problem that you can understand. [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 哪能看这书啊 潭浩强,你知道这个人的书,并看透,就入门了。 我认为你还是从java开始。。因为java相对比较简单。。 多寫程序,多看別人寫的程序 刚开始学应该不要触及图形界面(GUI),着重学习'语言'而不是某种开发工具。 看自考书 o(∩_∩)o... 强烈推荐《C语言程序设计--现代规范》,K.N.King著,吕秀锋译,本书是国外大学的C语言教材,书如其名,很多东西都和现代的编程结合起来,特别是*NIX下的编程 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++对象模型>一书排得很后面,如果早看,可以省多少力气啊!!!) 算法的学习,
一个字:背! (不是只有英语才要求背的)
有上面的底,等日后理解算法思想后,你就提高了。
试着写个哈夫曼算法试试,这玩意写多了,以后自己碰到问题,也能很快找到相应解决算法。
(我自己一开始,也是对别人或书上代码一句句死磕;背多了,就能小块小块地看了;最后,理解算法思想后,虽然也是小块小块地看,但阅读速 度是质的飞跃)
进一步--你要学习他人软件架构,这就需要你强化下软件工程方面知识,对设计模式的理解是必须的。多写多看,以后自己会理解的。 所谓算法思想理解,就是针对一个提出问题,你可以随意用递归,回朔,贪心,动态规划等算法写出来。这个能力是可以用背字诀练出来的。
你要写优化算法,也行啊,学好数学。这不是要求你在大学里把线代,概论,高数考满分,没用的。要学好数学,其实要求你掌握数学分析的能力,找准教材努力学吧。分数是给人看的,能力才是自己的。
--------
要早点收获,就要充分利用时间,多练习。比如平时手指闲着没事,就练练无名指和小姆指的灵活度。因为程序员,首先是一个打字员。 不要为c而c.
期间如果能把汇编学上一学,会理解深刻些。
一般汇编书,你看不懂,这就说明这书写得不好,不是你智商问题。学汇编第一件事,要把分段机制和分页机制搞清楚。这玩意在操作系统教课书里面,你是没法真正理解的。搞清这一点,反过来,就促进了对操作系统的理解了。更重要的是,在程序编写过程中,脑中自然就有印象,自己写得代码经编译后,大概是什么样子,理解它们被映射到内存页中的事实。 (说穿了,也就是基础知识,这意味着你有必要把计算机工课的书系统学习一下)
当然工课的书大都不是很好,国家教委把学生定位很低,所以教材没有把一些本质些东西讲清楚,结果你是越学越糊涂。
所以对于这些书,草草学个大概就可以了,因为书写得深度有限,你是没办法真正理解的。所以要找些其他真正的计算机书来看。
象学汇编,你最好把那本《保护模式下的80386》当参考书,如果书中还看不明白,去看 linux源码吧(说笑~),其实你只要把linux的分段机制搞清楚就很容易了,然后你会发现。。。嘿嘿~
什么局部变量,全部变量,等等问题,难道不是你头痛的吧,计算机到底是如何去组织管理这些代码的,不正是你要思考的问题吗?不择手段去学习这些基本功吧。
这么做,只是为了原本复杂的事物变得简单,更简单些,简单的,才是最美的。 坐而言不如起而行,趕快找本書來研究吧,不懂的可以找人問或是問 Google,這樣子比較有幫助哦~
當然也可以看電子書,但是實體的書籍還是好些,
隨時要查都可以,只是不能夠 Ctrl + F 罷了。