深入学习C语言的具体步骤
你有很强的目的性,但你也想有更明确的目标。我可以告诉你如何自己找到目标和路线,如何学习。
(3)、计算机专业领域* * *有几个大方向,十几个分方向,每个分方向又有几十个小方向。每个方向的深入学习和熟练不会一蹴而就,彼此也不是完全没有关系,但你现在就要选择一个大方向,深入其中一个小方格(为什么这么早就选择具体的分支方向?后面说)。
(4),下面是计算机的几个大方向(非编程开发的我就不说了):
基本方向:
1,MCU,嵌入式方向
2.网络编程:涉及服务器程序、客户端开发、脚本设计等。
3.系统编程:基本API开发、桌面开发、系统程序开发和服务程序。
4.图形:三维,2D,图像识别和人脸识别。
5.音频:语音识别、音频解码和音频软件。
6.编译原理:编译器设计,脚本解释器,虚拟机,非自然语言翻译系统。
7.应用层开发:使用高级语言开发表层应用。
8.安全:反工程,病毒,反病毒,特洛伊马,反特洛伊马,软件破解,软件打包。
附加方向:
8.人工智能:遗传算法、神经网络、灰色系统等。
9.游戏设计:各种游戏引擎设计和业务逻辑设计等。
⑤你一定要选择基本方向,附加方向只是在基本方向基础上的锦上添花,但是无论你怎么选择,一开始一定要深入一些东西而不是只了解(当然你对自己的要求好像不是很低)。让我列出这个:
数据结构:以下其他理论的基础。
操作系统原理:只有了解操作系统的架构和细节,你才能在以后的工作中对多线程、文件管理、内存管理、指令优先级有正确的理解和应用。
编译原理:可以升华你对计算机编程语言的理解,对未来会出现的各种编译、解释、兼容、移植、优化、并发、并行算法有深入的了解。
数据库系统原理:这是任何一个进入公司的人都必须具备的,也是大型软件开发的基础。
软件工程:这是你在没有足够经验的情况下,保证大型项目正常完成的理论基础。
网络技术:这个是必须的,因为目前几乎没有安装概率高的软件或平台与网络无关。
数学,主要有:离散数学、线性代数、高等数学、计算机图形学、概率论。
以上基础是你成为一个整合各大分支的人(当然不是理论,是理论+实践编码能力)必须要学的。
⑥以上都是大基础,要逐个突破,深入研究。虽然网络时代计算机专业知识爆炸,但是掌握了以上基础之后,你会发现未来任何新的理论和技术都是建立在这些大基础之上的,你会很容易理解。
⑦为什么我一开始不告诉你具体想学什么,怎么按顺序学?因为如果你想掌握那些技能,你可以自己解决,但是如果你因为兴趣而沉迷于一些看得见的小范围技术,毕业后可以找到好工作,工资可能也高,但是你成不了大牛。
现在我要说的是学习顺序。虽然你说不推荐书,但我还是想以书为序。
c语言可以写很多核心的,高级的东西,不仅仅是小东西,但是从你的代码来看,你其实用的是GOTO。我不是说你在那些程序里用goto不好,但是你一定要避免用GOTO,这是错误的来源。如果有什么要写的,说明你的编码技能还有很大的提升空间。
您的学习顺序应该是:
c:做一个超级马里奥,能够阅读文字脚本来更新等级。
C++:写一个2D图形引擎,封装细节,实现面向对象设计和可复用设计,使用设计模式中提到的一些设计模式,从而很好的掌握C++。
MFC:虽然最近MFC技术有所降温,但是你能熟练掌握,证明你的C++OO技术足够精通。严格证明你掌握了MFC是很简单的。你只需要用MFC做一个杀毒引擎就可以了。推荐的书是MFC。
“windows编程”:与MFC不同,它使用的是Windows核心SDK,即API。学完这本书,你可以从操作系统层面掌握win32平台下的机制(其实win64和win32的大部分机制都差不多)。
C#: C #是当代最前沿的计算机科学的一些最先进的语法的集合(虽然执行效率一直被质疑),但是当你学完C#再深入下去,至少可以对计算机语言有更深的理解。如何证明自己学好了C#?也很简单。再写一个随机游戏,比如俄罗斯方块。如果你更多的证明自己呢?用它写一个P2P网络对战游戏。
如果你留心的话,你会发现我说的学习顺序是沿着语言和一些技术的。为什么?因为这些语言和技术涉及到特定的领域技术和计算机理论思想,比如你真的学完C#,不仅仅是指学C#,而是学习各种语言范式,以及现代编程思维(因为很多技术都用在里面,让你一劳永逸)。
以上五步都是基本步骤,没有1-2年应该是不够解决的。
同时,要尽早选择自己感兴趣的方向作为3-5年的长期方向,不要担心过早选择分支方向的损失,因为计算机的很多分支是相通的,只有深入分支方向,才能真正理解很多理论的实际意义。而一旦你在某个分支形成了强大的优势(比如公司里只有你最强),那么你就是一个稀缺人才。
先不说大方向的步骤。你要主要解决我先说的这些基本步骤,同时注意大方向理论结合实际的编码和发展。