⑴ 如何系统,科学地自学编程知识
事实上要回答你的问题恐怕已经远远超出我的能力范畴之外了。因为对于什么样的学习才算得上“系统”几乎是一个哈姆雷特式的问题——人们很难在这一问题上达成一致。
因此抛出答案几乎只是在引发更多的争议。所以在讨论这个问题的时候,我必须承认下述描述只是我自己的一点小小的体会,只希望能对你有所帮助,这些看法并不“权威”,也不完全“正确”。
一般来说对于计算机科学的学生来说,下述课程是非常关键的:
提醒:学习时注意把握合理的深度,不可太浮于表面,也不可太过拘泥于部分细节,对于初学着重掌握基础内容,能在概念上建立一个合理的认识就可以。真正的学习是在后面的职业生涯中完成的。
一、基础篇(理论与硬件)
这一部分关注的是计算机的基本理论与基本实现。包括硬件结构理论,以及软件与硬件的交互。以理论开篇,在机器语言部分深入,最终在操作系统部分达到高潮。
1、计算机实现计算的原理。这包括门电路是如何实现计算的,时序电路是如何实现存储的,冯诺依曼体系结构是如何将二者结合实现了真正的现实世界的计算机的,以及它是如何反映图灵机这一理论计算模型的。其间会学习布尔逻辑。
2、如何控制计算机硬件。这部分使用的“工具”就是机器语言和汇编语言。我们需要理解机器语言的本质,以及它如何以“汇编语言”这种更容易理解的形式为程序员提供了控制硬件设备的机会。这部分可以学习到很多非常低级但是本质的内容。
3、操作系统是如何工作的。如果你理解了上一部分的计算机硬件相关的问题,那么理解操作系统的工作原理将不会那么困难。另外你将明白操作系统作为硬件和上层软件的中间层次,是如何大大简化了人们对硬件的操作过程的。
二、进阶篇(软件系统)
1、编程语言。这包括结构化编程语言以及面向对象编程语言。因为有很多选择,其实以一门语言开始即可,如果你在前面正确的理解了硬件与机器语言,那么C语言入门真是太简单了,如果你运气不好,觉得C很困难,那么即使是从Python、javascript开始学习也没问题。重点在于理解编程中和语法相关的基本概念,并了解一些简单的算法知识。
2、数据结构与算法。说白了就是如何合理的组织数据,通过其结构特点来简化编程或者提高计算的效率。这里的内容是模式化的,所有人都需要学习无序结构、有序线性结构、树结构、图结构等。另外,排序算法、查找算法必须学好,特别是算法策略如递推、递归、蛮力(穷举)、分治、动态规划等也必须有所实践和了解。切记不必深陷其中,这里是个大坑,你不可能真的“精通”他们。
3、编程语言是如何实现的。这里主要涉及编译原理。当你站在高级编程语言实现者的角度再来认识编程语言本身的时候,许多问题豁然开朗。这会深刻的改变你的编程观。可惜的是即使是很好的学生在这里也会遇到很大的阻力。真正的问题不是这方面理论性有多强,而是教材都很烂——包括国外教材(什么龙书虎书鲸书都根本不是为初学者准备的),而且语焉不详。这导致大部分人都感觉莫名其妙高深莫测。如果你不是有志攀登软件设计的最高峰,可以绕行。否则从表达式运算解析开始,逐步引入变量,类型,控制结构,函数,再到对象,一步步构建出解析器,然后结合前面学习的硬件接口知识,将其转换为低级表示,最后你会发现没有那么可怕。
三、基础领域篇(必备领域知识)
1、互联网络是如何构成的。这部分包括网络的基本知识,主机间通信的原理,转发设备的实现,以及互联网络的构成。这是网络编程所需的基础知识。除了理解低级协议,也要花一些时间了解应用层的协议,特别是 SMTP、POP3、FTP、HTTP 等,重点是了解他们的基本原理,而不是每个细节。因为每个协议都有自己的标准,光 HTTP 协议就够你研究 6 个月以上了。这里注重的是原理。
2、如何管理大量的数据并在其上建立信息系统。数据库是一个很好的例子。包括数据库系统的基本理论,实现原理,以及设计原则。同样,这里不是真的在教你如何构建一个数据库系统,而是在学习他的核心原则,重点是学会如何合理的设计表结构,以及实现效率良好的SQL查询语句。
四、扩展领域篇(特定领域知识)
1、基于特定平台的软件开发。如何在Windows平台、Linux平台、Mac OS平台或者手机、平板、电视机、微波炉上完成开发?这需要学习特定的软件平台提供了哪些编程接口,如何编译并部署,如何调试和测试等知识。这部分就是软件工程师职业生涯中最耗费时间的部分。
2、有效的软件研发是如何实现的。这包括软件结构的设计知识,软件实施流程的管理知识,以及一些细微而繁杂的内容。人们通常用软件工程一词来概括。但事实上软件工程站的角度要更高一些,这里只是涵盖软件工程的一小部分。
五、科技领域篇(研究性知识)
如果你对人工智能、科学计算、图像处理感兴趣,这里还有大片的区域等待你探索。
事实上,上面的描述有些吓人。每一个领域都够耗尽去很长的时间。不过好消息是大部分知识都只要求在理论上理解。真正的耗费时间的部分还是在与编程、编程、编程。不是每个人都会用到数据库系统,也不是每个人都需要懂得汇编语言。但是这些背景知识会对你有帮助。让你不再害怕,对自己更有自信。
如果你希望自己成为一个很棒的开发人员,那么上述知识都是必须的。但是却依然远远不够。
学无止境,计算机科学尤其如此。
⑵ 如何学习软件编程
学习软件编程的方法如下:
1、选一门基础语言,如C或JAVA语言,作为基础编程语言学习。掌握语言的逻辑,学习语法,其实编程实质上就是思路的运用。
2、形成自己的编程风格,这里指的是你的思维风格,代码风格。遇到问题要有自己一套思维方式,解决逗宽编程问题,解决问题,代码要简洁,有注释易懂。
3、软件编程进阶阶段,这个过程需要你学习一些和数学思维谈指枣有关知识。比如数据结构,算法,矩阵等等,这样你的编程水平会提升一个档次。
软件编程简介:
任何机载计算机系统软件的基本性能都包括计算机系统输入语言—软件编程语言。对于不同类型的机载数字计算机,由于其内部语言具有一定的相似性,广泛使用计算机汇编语言作为其编程语言。主要关注软件设计、测试和调试自动化工具的发含拆展,并根本性提高其劳动效率。
在此方面比较典型的是从计算机汇编语言向高级编程语言的过渡,高级编程语言可有效支持设计和跟踪。使用高级编程语言可在较低的软件研发和调试费用前提下提高软件可靠性、减少错误数量,并可在程序翻译阶段快速发现错误。
⑶ 我想学编程,请问该怎么入门
现在抄都是信息化的时代,没有一门好袭的技术是难以在社会之中立足的,
现在的电脑技术飞速增长,每家公司都需要电脑人才,你可以去学习电脑专业,
在这个领域中还是有很大的发展空间的,只要自己好好学习,以后的前景不可限量。
⑷ 缂栫▼濡備綍瀛︿範
瀛︿範缂栫▼鐨勬柟寮忓寘鎷锛氱‘瀹氬︿範鐩鏍囥侀夋嫨缂栫▼璇瑷鍜屽伐鍏枫佸︿範鍩虹鐭ヨ瘑銆佸疄璺靛拰椤圭洰銆佸绘壘璧勬簮鍜岀ぞ鍖恒佹寔缁瀛︿範鍜屽疄璺点
1銆佺‘瀹氬︿範鐩鏍囷細棣栧厛鏄庣‘浣犱负浠涔堟兂瀛︿範缂栫▼浠ュ強浣犵殑瀛︿範鐩鏍囨槸浠涔堛傛槸涓轰簡鍏ラ棬浜嗚В杩樻槸涓轰簡鎺屾彙鐗瑰畾鐨勭紪绋嬭瑷鎴栨妧鑳斤紵鍏蜂綋鐨勭洰鏍囧彲浠ュ府鍔╀綘鍒跺畾瀛︿範璁″垝鍜岄夋嫨閫傚悎浣犵殑瀛︿範璧勬簮銆
2銆侀夋嫨缂栫▼璇瑷鍜屽伐鍏凤細浜嗚В涓嶅悓鐨勭紪绋嬭瑷鍜屽伐鍏凤紝骞堕夋嫨閫傚悎浣犵殑瀛︿範鐩鏍囧拰鍏磋叮鐨勪竴绉嶃備竴浜涘父瑙佺殑缂栫▼璇瑷鍖呮嫭Python銆丣avaScript銆丣ava绛夈備簰鍔ㄥ紑鍙戠幆澧冿紙IDE锛夊父鐢ㄧ殑鏈塚isual Studio Code銆丳yCharm绛夈
瀛﹀ソ缂栫▼鍙浠ヤ粠浜嬩粈涔堝伐浣
1銆佽蒋浠跺伐绋嬪笀锛氫綔涓鸿蒋浠跺伐绋嬪笀锛屼綘鍙浠ュ紑鍙戝拰缁存姢鍚勭嶈蒋浠跺簲鐢ㄣ佺郴缁熷拰骞冲彴銆傝繖鍖呮嫭鍓嶇寮鍙戙佸悗绔寮鍙戙佺Щ鍔ㄥ簲鐢ㄥ紑鍙戠瓑銆
2銆佺綉绔欏紑鍙戣咃細浣滀负缃戠珯寮鍙戣咃紝浣犲彲浠ュ垱寤哄拰瀹氬埗缃戠珯锛岀‘淇濆叾鍔熻兘鍜岀敤鎴蜂綋楠岀殑椤虹晠杩愯屻備綘鍙鑳介渶瑕佹帉鎻Web寮鍙戞妧鏈锛屽侶TML銆丆SS銆丣avaScript绛夈
3銆佹暟鎹绉戝﹀讹細鏁版嵁绉戝﹀跺埄鐢ㄧ紪绋嬪拰缁熻″︾煡璇嗭紝澶勭悊鍜屽垎鏋愬ぇ閲忔暟鎹锛屾彁渚涙礊瀵熷拰瑙e喅鏂规堛備綘鍙鑳介渶瑕佺啛鎮夋暟鎹澶勭悊宸ュ叿鍜岀紪绋嬭瑷锛屽侾ython銆丷銆丼QL绛夈
4銆佷汉宸ユ櫤鑳藉伐绋嬪笀锛氫綔涓轰汉宸ユ櫤鑳藉伐绋嬪笀锛屼綘鍙浠ュ紑鍙戝拰瀹炴柦鍚勭嶄汉宸ユ櫤鑳借В鍐虫柟妗堬紝濡傛満鍣ㄥ︿範妯″瀷銆佽嚜鐒惰瑷澶勭悊銆佽$畻鏈鸿嗚夌瓑銆
5銆佸祵鍏ュ紡绯荤粺宸ョ▼甯堬細宓屽叆寮忕郴缁熷伐绋嬪笀璁捐″拰寮鍙戝湪鐗瑰畾璁惧囨垨绯荤粺涓杩愯岀殑杞浠跺拰纭浠躲傝繖鍙鑳芥秹鍙婂埌宓屽叆寮忓紑鍙戙佺墿鑱旂綉锛圛oT锛夌瓑棰嗗煙銆
6銆佹父鎴忓紑鍙戣咃細浣滀负娓告垙寮鍙戣咃紝浣犲彲浠ュ弬涓庢父鎴忕殑璁捐″拰寮鍙戯紝鍖呮嫭绋嬪簭缂栧啓銆佸浘褰㈣捐°佺墿鐞嗕豢鐪熺瓑銆
姝ゅ栵紝杩樻湁璁稿氬叾浠栭嗗煙闇瑕佸叿澶囩紪绋嬭兘鍔涚殑涓撲笟浜哄+锛屽傜綉缁滃畨鍏ㄥ伐绋嬪笀銆佷汉鏈轰氦浜掕捐″笀銆佹暟鎹鍒嗘瀽甯堢瓑銆傚﹀ソ缂栫▼涓嶄粎鍙浠ュ府鍔╀綘鑾峰緱鍏蜂綋鐨勮亴涓氬矖浣嶏紝杩樿兘鍩瑰吇瑙e喅闂棰樸侀昏緫鎬濈淮鍜屽垱閫犲姏绛夐氱敤鎶鑳斤紝鍦ㄤ笉鍚岄嗗煙灞曞紑鑱屼笟鍙戝睍銆
⑸ 如何学习编程
这么学习编程:学习编程可以从这几个方面入手:1、选择适合的编程语言环境;2、选择适合自己的学习方式;3、保持热情不要轻易放弃;4、在学习的道路上多和程序员交流,寻找良师益友。1、选择适合的编程语言环境对于新手进入编程学习来说,最关键的移步就是要选择自己想要学习的语言。例如编程语言有java、c、c++、vb等等,脚本语言有php,javascript,jsp,asp.net等等。在选择语言的时候建议大家可以选择比较常用的,不要选择冷门,相对来说冷门的学习资源少,很难能够深入研究,最现实的一点就是不利于之后的找工作。
选择好语言之后,还需要选择一个以让我们方便直观地编辑、调试、优化代码的的集成开发环境(即 IDE),这也是非常关键的。例如C-free,VC++6.0等,这个根据自己的设备及使用习惯进行选择。
2、选择适合自己的学习方式选好升滑语言和环境之后我们就要进入正式的棚笑磨学习了,在这一阶段,恰当的学习方法能让我们的学习取得事半功倍的效果。这里最不建议的方法就是直接看书,且看书的过程中也不展开练习,这样学习是脑子会了手不会,而且随着时间的增加,脑子也早忘了。因此编程的学习最重要的就是实践+训练!当前大家普遍的学习方法大致可以分为两种,一种就是自学+视频;一种就是系统地跟着培训机构的老师直播课学习。这两种都是非常建议的。第一种时间比较灵活,想怎么学什么时候学习都可以,直播课学习的话时间不太灵活,但是一旦自律学习起来,成长也是非常明显的。3、保持热情不要轻易放弃在学习的过程中有不少的同学会遇到这种情况:PHP从入门到放弃,C语言从入门到放弃,Java从入门到放弃,Python从入门到放弃……几乎永远在abandon。也不怪这些同学有这样的心理,实在是编程学习并不是一件很容易的事情,尤其是对于零基础的同学来说,因此当你决定考试学习编程的时候一定要保持热情不要轻易放弃。不要急功近利,要静下来学习,始终没有人能几个月从小白变成大神, 学习编程更是如此,需要你不断的练习,编写代码,积累知识,强化思维。我们要始终有一个清晰的目标并保持高度的热情去执行实现这个目标。4、在学习的道路上多和程序员交流,寻找良师益友链斗
在编程学习的道路上我们除了要不断更新自己的知识提升创造力外,还可以通过在专业性网站和社区学习交流,寻找学习路上的良师益友,就跟考研的研友一样一起相互扶持,一起进步。