Ⅰ 如何从零开始学编程
1、具备计算机基础及数学基础
首先应该具备一些计算机基础原理及操作的相关知识。从计算机发展和应用的历史来看计算机的数学模型和体系结构等由数学家提出,最早计算机为数值计算而设计。学好计算机要有一定的数学基础,初学者具备高中水平一般就够用了。
2、培养逻辑思维能力
学编程要有一定的逻辑思维能力,逻辑思维能力的培养要长时间的实践锻炼。在学习的过程中培养编程思想,反复实践、观察、分析、比较、总结中逐渐地积累。有些问题通过实践后才能明白,通过实践把老师和书上的知识变成自己的。
3、学习编程思想
学习一门语言或开发工具,除了掌握其语法结构和功能调用,更重要的是学习编程语言的思想。
零基础新手能学会编程。
1、学编程需要不断实践联系
编程起步阶段要经常动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法。
2、养成良好的编程习惯
编程入门不难,但入门后不断学习提高比较难,相对来说是较为漫长的过程。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量,良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
3、学会利用网上资源
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载,所以要利用好网上的学习资源。
4、学编程理论结合实战
要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件后开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。当你发现编到一定程度很难再提高的时候,要巩固计算机科学和数学基础理论弥补短板。经过不断的学习,再努力地实践,编程水平会不断提高。
Ⅱ 鎴戞兂瀛︾紪绋嬨傛垜鐨勬暟瀛﹀熀纭宸鐨勮佸懡锛屽垵涓姣曚笟锛屽仛榛戝㈣佸﹂偅绉嶇紪绋嬭瑷锛熸垜璇ヤ粠閭i噷寮濮嬪晩
1. 濡傛灉浣犳兂鎴愪负榛戝锛岄栧厛闇瑕佸硅$畻鏈烘妧鏈鏈夋繁鍏ョ殑鐞嗚В锛岃屾暟瀛︽槸璁$畻鏈虹戝︾殑鐏甸瓊銆
2. 鎴戝缓璁浣犳寜鐓уぇ瀛﹁$畻鏈虹戝﹁剧▼鐨勬ā寮忔潵鎻愬崌鑷宸辩殑鎶鏈姘村钩锛屼粠鏁板﹀垎鏋愩佺绘暎鏁板﹀紑濮嬪︿範銆
3. 鎺屾彙鏁板﹀熀纭鍚庯紝缁х画瀛︿範C璇瑷鍜孋++锛岃繖涓ら棬璇瑷鏄缂栫▼鐨勫熀纭銆
4. 鎺ヤ笅鏉ワ紝瀛︿範鏁版嵁缁撴瀯鍜岀畻娉曪紝浠ュ強鎿嶄綔绯荤粺锛岃繖浜涢兘鏄璁$畻鏈虹戝︾殑鏍稿績鐭ヨ瘑銆
5. 鍦ㄨ繖浜涘熀纭鐭ヨ瘑鎺屾彙涔嬪悗锛屼綘鍙浠ヨ浆鍚戠綉缁滄柟闈㈢殑瀛︿範锛屼簡瑙i槻鐏澧欍乀CP/IP绛夌綉缁滅煡璇嗐
6. 鍏充簬VB璇瑷锛屼釜浜哄缓璁浣犲彧闇瑕佹帉鎻″熀鏈鐭ヨ瘑鍗冲彲銆傝櫧鐒跺畠鏄涓绉嶉珮绾ц瑷锛屼絾瀹冪殑璁捐℃濇兂鍜屼唬鐮侀庢牸骞朵笉鍒╀簬璁$畻鏈烘妧鏈鐨勬彁楂樸
7. VB涓昏佹槸闈㈠悜Windows杩欎竴鐗瑰畾鎿嶄綔绯荤粺鐨勶紝鑰屼笖鏄瀹屽叏闈㈠悜瀵硅薄鐨勶紝杩欏逛綘璁$畻鏈烘妧鏈鐨勬彁鍗囧苟涓嶅埄銆
Ⅲ 学编程要怎样水平的数学基础
学编程需要一定的数学基础,从计算机发展和应用的历史来看,计算机的数学模型和体系结构等都是由数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,具备高中水平就差不多了。
逻辑思维能力的培养也是学程序设计的重要部分,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。
选择一种合适的入门语言也很重要,面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类:本地开发应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。
掌握编程思想是学习一门语言或开发工具的核心,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道 VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。
多实践、多交流也是提高编程水平的重要途径,掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。
养成良好的编程习惯也很重要,编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
加强计算机理论知识的再学习也是提高编程水平的关键,在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。
上网学编程可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”(http://best.yeah.net/)主要以 VB 和 Delphi;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”(http://pshool.yeah.net/)是专门介绍C、VC、VB、Delphi 等的综合编程网站。
通过不断的学习和实践,编程水平一定会不断提高到一个新高度。
Ⅳ 怎么去学习编程c语言,我没有一点数学基础 还有就是看不懂里面的代码 需要怎样去学 谢谢!
一、C语言是最值得学习的语言
学习C语言,首先要明确地告诉自己:C语言是世界上最值得学习的语言。
如今决定学习任何一门其他语言之前,都要先考察这个语言有什么成功项目吗?唯独C语言没有必要问,因为世界上所有最最重要的的系统中,都必然有C语言的身影。比如操作系统内核、高级语言底层等等。
为什么C最适合担任系统核心?主要原因可能是C语言具有和汇编语言的对应性,一条C语言代码,对有经验的人来说,可以转换为一条或多条汇编代码,也就是说编译结果具有可预测性。C代码不会在被编译时被加上奇奇怪怪的修饰,也不会在二进制兼容性方面带来大问题。这种稳稳当当的语言,一切都在掌握之中,一切荣耀归属于coder,一切错误也归罪于coder。
学习C语言的同时,就自然而然的理解了硬件与操作系统的浅表一层。比如int有几个字节的问题,已经是QQ加群验证是否是程序员的一个标准了(笑),这从侧面说明了学习C语言时确实会关心底层软硬件的实现。C语言简单的基于值类型的数据类型体系(引用靠指针,指针本身也是值类型),保持了和硬件底层的一致性(即内存、缓存、寄存器只能保存值),不会出现其他语言比如C#那样既有值又有引用反而对理解底层实现制造了障碍。
从某些角度上讲,C语言从设计上来说并不是为了让我们更好的写逻辑代码而设计的,它真的是“只能是这样”,没有对错好坏之分。因为计算机体系结构就是这样的、汇编就是这样的,所以C语言大致也只能是这样的,谁也不能随意捏造它。它足够简单,评论它的设计优劣意义不大。
废了这么多口舌,是为了坚定思想,端正态度,只有抱着“最好”的态度,才能排除杂念,勇往直前。时代在进步,某些东西易逝,而另一些东西持久。很多编程大师都用亲身经历告诉你,C语言永远值得用最纯粹的态度去学习。
二、学习C语言的初步路线
我们说学习任何东西,都有先把书读厚,再把书读薄的过程。也就是说,先学习大量知识和细节,然后总结归纳、提纲挈领,就彻底掌握了这门知识。
而学习C语言,一开始就不那么厚 : ) 。大道至简,只需一本:
<img src="https://pic2.mg.com/50/v2-_hd.jpg" data-rawwidth="286" data-rawheight="337" class="content_image" width="286">
赏析一下书中前几个问题:
第1章 正则表达式匹配器
第2章 Subversion中的增量编辑器:像本体一样的接口
第3章 我编写过的最漂亮代码
第4章 查找
可能是知识结构不足,本书后面的例子我读起来有点不清晰。对C语言学习者来说,前几个例子非常值得一读,可以迅速意识到自己的不足并迅速成长。本书建议先找电子版试读。
PS:关于C语言开发环境
1、Windows平台,请使用Dev-C++。不要用Visual Studio,对C语言支持不完整。
2、安装Linux虚拟机,桌面版本的,比如Ubuntu,现在貌似“深度Linux”挺火,没试过。
三、关于进阶
C语言的进阶会遇到两个主要问题:
1、明白基础以后,缺少大量练习。而大量练习本身会非常费时间,因为在顾及语法的同时要顾及逻辑问题,捉襟见肘。这时候的初学者,逻辑抽象能力和语法使用都是半吊子,非常难受。
2、阅读代码方面,C语言的成熟工程代码一般会比较冗长,函数中间夹杂着很多宏和指针操作,我阅读的感觉是读后面忘前面,非常难入手。如果不明白某个函数的功能,强行将其读懂非常费时费力,容易放弃。
这样一来,学完基本知识之后的进阶之路真的非常陡峭。
我个人大胆给出C语言进阶的一个相对缓和的路线:
1、实现链表、可变长数组、哈希表等基本数据结构,实现方便的string结构体。然后大胆的用在自己写的程序中。不要怕写的有BUG,也不要怕效率不高。现代编程中容器是非常关键的武器,没有容器寸步难行。而编写容器时会练到封装、指针、内存分配,都是C语言进阶时极其重要的方面。
2、如果工作学习中用到C语言就再好不过,比如现在很多本科、硕士毕业论文都要用C语言实现,那么这时候抓住机会多练练,是最好的。
3、尝试ACM竞赛题,ACM竞赛和OnLineJudge平台,比如
http://tyvj.cn/
类似有很多,北大、北邮这种大学都有类似的网站,上面不仅有题目,还有算法、有答案、有提示,还能直接在网页上做题。刷题可以获得及时反馈,一旦你AC了3道题,那种成就感可以让你继续下去,哈哈。不过除非你兴趣就是算法本身,那么刷30道题基本就可以了,毕竟这种刷题会猛烈地提高算法能力,但是对架构能力的提升几乎没有任何作用,对大多数人来说不建议刷太多。
4、非常重要的私货:如果除了做练习题以外没有练习机会,那么请把C语言放一下,快速学习Python(首选)、Lua(次选)、JavaScript(或TypeScript更好)等能够立即实现功能效果的语言。学习好的动态语言有两方面好处:
第一:表层来说,能迅速提高逻辑代码的编写能力。用C语言构思半天才能写一点的功能,用动态语言会快速的多,动态语言将我们从内存分配、容器等基本问题中解脱出来,直接实现我们想要的效果。用动态语言实现之后,可以用C语言仿写这些逻辑代码,相当于按图索骥,直达目的。
第二:深层来说,较高级的语言对底层的语言编写有强烈的指导意义。我个人在工作中使用C++用了很长时间,但是总感觉遇到瓶颈无法突破。直到我学习了Python,写了一两个比较复杂的工具,从另一个角度突破了逻辑设计的屏障,才感觉到编程水平有了明显提高。
第三:在掌握了Lua或Python后,再找资料一边学习一边看Lua和Python的C源码,对提高C语言水平有实质性的帮助。
这里举一个简单的例题:一个文件中有很多对ID和字段,这些ID和字段对分别代表另一个文件。而另一个文件内容可能会链接到更深一级的文件。怎样读取这些文件组成一棵树呢?
这个问题对能力达到一定水平的人是基础问题,而对于初学者来说可能是一个门槛。这种问题我的建议是用Python或Lua的表、字典来解决,然后理清思路之后,改写为C代码。